DBComboBox ou ComboBox?
Olá!
Tenho uma tela de consultar produtos onde eu realizo filtros utilizando grupo, subgrupo e fabricante.
Para fazer os filtros estou utilizando combobox para cada um (grupo, subgrupo e fabricante).
Preciso carregar os ComboBox com os respectivos dados toda vez que realizo uma consulta, para não ter que carregar toda a tabela de Gurpo, subgrupo..., para realizar os filtros.
Utilizo o seguinte comando:
...
CarregaSQL;
cbGrupo.Clear;
cbSubGrupo.Clear;
cbFabricante.Clear;
DM.qryProduto.Last;
while not DM.qryProduto.Bof do begin
if cbGrupo.Items.IndexOf(DM.qryProdutogpdesc.AsString) = -1 then
cbGrupo.Items.Add(DM.qryProdutogpdesc.AsString);
if cbSubGrupo.Items.IndexOf(DM.qryProdutosgdesc.AsString) = -1 then
cbSubGrupo.Items.Add(DM.qryProdutosgdesc.AsString);
if cbFabricante.Items.IndexOf(DM.qryProdutofbdesc.AsString) = -1 then
cbFabricante.Items.Add(DM.qryProdutofbdesc.AsString);
DM.qryProduto.Prior;
end;
Mas dessa forma fica lento para carregar os comboboxes quando o retorno são muitos registros.
Tentei utilizar o DBCombobox, seria a melhor opção, mas ele só me lista o registro atual, selecionado, não lista todos os registros para eu escolher para filtrar.
Alguém poderia me dar uma ajuda?
Tenho uma tela de consultar produtos onde eu realizo filtros utilizando grupo, subgrupo e fabricante.
Para fazer os filtros estou utilizando combobox para cada um (grupo, subgrupo e fabricante).
Preciso carregar os ComboBox com os respectivos dados toda vez que realizo uma consulta, para não ter que carregar toda a tabela de Gurpo, subgrupo..., para realizar os filtros.
Utilizo o seguinte comando:
...
CarregaSQL;
cbGrupo.Clear;
cbSubGrupo.Clear;
cbFabricante.Clear;
DM.qryProduto.Last;
while not DM.qryProduto.Bof do begin
if cbGrupo.Items.IndexOf(DM.qryProdutogpdesc.AsString) = -1 then
cbGrupo.Items.Add(DM.qryProdutogpdesc.AsString);
if cbSubGrupo.Items.IndexOf(DM.qryProdutosgdesc.AsString) = -1 then
cbSubGrupo.Items.Add(DM.qryProdutosgdesc.AsString);
if cbFabricante.Items.IndexOf(DM.qryProdutofbdesc.AsString) = -1 then
cbFabricante.Items.Add(DM.qryProdutofbdesc.AsString);
DM.qryProduto.Prior;
end;
Mas dessa forma fica lento para carregar os comboboxes quando o retorno são muitos registros.
Tentei utilizar o DBCombobox, seria a melhor opção, mas ele só me lista o registro atual, selecionado, não lista todos os registros para eu escolher para filtrar.
Alguém poderia me dar uma ajuda?
Vagner Almeida
Curtidas 0
Respostas
Bruno Leandro
21/06/2012
tenta usar o componente TDBLookupComboBox e na propriedade ListSource coloque o datasource dos dados que serao exibidos ListField o campo que será exibido.
GOSTEI 0
Vagner Almeida
21/06/2012
Informei somente os campos que você especificou, não funcionou, nem habilita o campo.
GOSTEI 0
Vagner Almeida
21/06/2012
Certo, fiz testes e deu certo. Lista todos dos dados de um campo especifico.
Há algum jeito de dados repetidos não entrar na lista?
Há algum jeito de quando eu estiver selecionando, não ficar passando no grid?
Há algum jeito de dados repetidos não entrar na lista?
Há algum jeito de quando eu estiver selecionando, não ficar passando no grid?
GOSTEI 0
Deivison Melo
21/06/2012
Eu particularmente gosto de usar o ComboBox e popular através de um loop nas informações desejadas!
Poste sua dúvida exata da forma que quer que eu ou alguém do fórum poderá ajudar vc!
Abraço e boa sorte em seus códigos!
Poste sua dúvida exata da forma que quer que eu ou alguém do fórum poderá ajudar vc!
Abraço e boa sorte em seus códigos!
GOSTEI 0
Vagner Almeida
21/06/2012
Eu particularmente gosto de usar o ComboBox e popular através de um loop nas informações desejadas!
Poste sua dúvida exata da forma que quer que eu ou alguém do fórum poderá ajudar vc!
Abraço e boa sorte em seus códigos!
Poste sua dúvida exata da forma que quer que eu ou alguém do fórum poderá ajudar vc!
Abraço e boa sorte em seus códigos!
já fiz isso lá no topo!
GOSTEI 0