duvida Dados da DBGrid para o combobox

Delphi

Banco de Dados

07/12/2018

Eu tenho uma DBGrid1 e alguns campos Edit , tabela conectada por meio de Datasource >ClientDataSet>Provider,Datamodule(Adquery e Adconection)
no evento DbGridClickCell existem estas linhas:
// TABELA CLIENTE
EdtCodCli.Text := CdsCli.FieldByName('CODIGO_CLIENTE_PK').AsString;
EdtNomeCli.Text := CdsCli.FieldByName('NOME_CLIENTE').AsString;
MskCpfCli.Text := CdsCli.FieldByName('CPF').AsString;
EdtEndCli.Text := CdsCli.FieldByName('ENDERECO').AsString;
MskTelCli.Text := CdsCli.FieldByName('TELEFONE').AsString;
MskCepCli.Text := CdsCli.FieldByName('CEP').AsString;
//TABELA CIDADES
cbCidadesCli.Text := CdsCli.FieldByName('NOME_CIDADE').AsString;

// TABELA ESTADOS
cbEstadosCli.Text := CdsCli.FieldByName('NOME_ESTADO').AsString;

no ClientDataSet e Collums do DBGrid foram adicionados os campos manualmente, os dados da tabela cliente exibem normalmente nos campos text
mas os campos dos combobox nao aparecem, nos eventos dos combobox estão com esses comandos:

cbCidadesCli.Clear;
DMBanco.AdqryDM.Close;
DMBanco.AdqryDM.SQL.Clear;
DMBanco.AdqryDM.SQL.Add('SELECT ID_CIDADE, NOME_CIDADE FROM TBCIDADE WHERE ID_UF=:ID_UF');
DMBanco.AdqryDM.ParamByName('ID_UF').AsInteger := Cod_UF;
DMBanco.AdqryDM.Open;
while (not DMBanco.AdqryDM.Eof) do
begin
cbCidadesCli.Items.Add(Format('%.2d', [DMBanco.AdqryDM.FieldByName('ID_CIDADE').AsInteger]) + ' ' +
DMBanco.AdqryDM.FieldByName('NOME_CIDADE').AsString);
DMBanco.AdqryDM.Next;
end;
cbCidadesCli.ItemIndex := 0;
cbCidadesCli.Enabled := not DMBanco.AdqryDM.IsEmpty;

sera que é isso que não esta mandando os valores dos fields no combobox?
Thiago

Thiago

Curtidas 0

Respostas

Fernando Wahl

Fernando Wahl

07/12/2018

Boa tarde Thiago, como vai?

Cara pelo que entendi, quando vc coloca dessa forma ali para carregar os dados no combobox ele não carrega, o que vc pode fazer nesse caso é criar uma query em tempo de execução, colocar o select dentro dele e fazer ele retornar um valor, esses valores vc usa colcoa em uma stringlist, só então carrega dentro do Combobox.

//aqui vc carrega os dadso que vc precisa..
vQrySelect.Close;
with vQrySelect.SQL do
begin
Clear;
Add(' select ............... '); //Aqui vc coloca o seu select...
Add('.............................');
Add('.............................');
end;
vQrySelect.Open;


//Aqui vc colcoa dentro da string list:
while not vQrySelect.Eof do
begin
vIndice := vQrySelect.FieldByName('xxxxxx').AsString;
end;

a variavel "vIndice" é um string lista que deve descarregar os dados dentro do seu Combobox.


Ja tentou usar DbLookUpListBox? Ele é bpom tbm e acho que irria ajudar, mas tem que ver se vc consegue colocar um select dentro dele.

Qualquer coisa coloca ai o seu código e vamos vendo o que acontece.

Abraços.
GOSTEI 0
POSTAR