como carregar campos de uma tabela em um componente DBTEXT

Delphi

09/03/2016

boa tarde

tenho uma tabela de CLIENTES e nela tem um campo CL_CodCidade, esse campo recebe apenas o código da cidade que vem da tabela CODCIDADES(é nessa tabela que eu guardo a cidade e o estado). Durante um cadastro na tela de Clientes o usuário seleciona apenas o código da cidade e o mesmo carrega o nome da cidade e o estado, o detalhe está no memento de fazer uma consulta ou quando abro a tela de Clientes, nessas duas situações o código da cidade aparece até porque esse campo é da tabela de Clientes mas o s campos com o nome e o estado não mostram.

essa imagem mostra a tela aberta apenas para consulta mais sem carregar o nome e o estado da cidade
[img]http://arquivo.devmedia.com.br/forum/imagem/447550-20160309-144908.jpg[/img]


eu tentei esse código, mas n ta dando certo

if FDLerCodCidade.Locate('CI_NUMERO', DBCodCidade.Text, []) then
begin
DBCidade.Caption:= FDLerCodCidadeCI_NOME.Value;
DBUF.Caption:= FDLerCodCidadeCI_ESTADO.Value;
end;

alguém poderia me dar a dica?
Emanuel Gonçalves

Emanuel Gonçalves

Curtidas 0

Respostas

Raimundo Pereira

Raimundo Pereira

09/03/2016

Supomos que sua tabela cidade tenham os seguintes campos
Codigo_Cidade, nome_cidade,sigla_uf

No seu data module a querycidade

No key press ou qualquer outro evento do campo editcodcidade

if editcodcidade.text='' then
begin
showmessage('Acesso negado, informe o código da cidade');
editcodcidade.setfocus;
end
else
begin

dm.querycidade.close;
querycidade.sql.clear;
querycidade.sql.text:='SELECT * FROM SUA_TABLE_CIDADE WHERE Codigo_Cidade='''+editcodcidade.TEXT+'''';
dm.querycidade.open;

if dm.querycidade.recordcont=0 then
begin
showmessage('Cidade não localizada na base de dados!');
editcodcidade.selectall;
editcodcidade.setfocus;
end
else
begin
dbedit_nome_cidade:=dm.querycidade.fielbyname('nome_cidade').asstring;
dbedit_sigla_uf:=dm.querycidade.fielbyname('sigla_uf').asstring;
end;
end;


Não testei o código acima, mais tente, se eu fosse usar a rotina criaria uma função ou uma procedure enxugando o máximo que puder o código.
Mais é isso espero que ajude.
GOSTEI 0
Emanuel Gonçalves

Emanuel Gonçalves

09/03/2016

Estamos quase lá, obrigado P2
GOSTEI 0
Marco Antônio

Marco Antônio

09/03/2016

Emanuel, boa noite.

Abra uma query com as cidades, linka a um DataSource e este aos DBEdits correspondentes ao nome e UF.

A cada change do campo 'Código Cidade' você dá um locate no código informado.

Abc.
GOSTEI 0
Emanuel Gonçalves

Emanuel Gonçalves

09/03/2016

Obrigado.

Resolvi, agradeço aos dois pela ajuda. Foram que grande valia
GOSTEI 0
POSTAR