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?
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
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)