duvida Dados da DBGrid para o combobox

07/12/2018

0

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

Responder

Posts

07/12/2018

Fernando Wahl

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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar