Resultado da Consulta num Combobox
11/12/2005
0
Olá amigos!!!!
Eu havia citado esta questão em uma outra dúvida que tive, colocada no tópico Gravação Usuário. O que eu estou tentando fazer, não sei se é possível, é ao consultar um usuário, mostrar num combobox o código do depto. e o departamento que este atua.
Eu tentei fazer isso:
procedure TfrmCadUsuarios.btnProcurarClick(Sender: TObject);
begin
inherited;
// Pesquisa por código
if rdbtnCodigo.Checked = true then
begin
with dmUsuarios.cdsUsuarios do
begin
close;
commandText := ´select * from USUARIOS ´ +
´ where COD_USER = ´ + edtProcurar.Text;
open;
if not isempty then
begin
cbbxUnidade.Items.Clear;
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
cbbxUnidade.ItemIndex := 0;
...
end;
end;
end;
Desse jeito, qdo digito um código e clico no procurar, os itens da combobox sao apagados (cbbxUnidade.Items.Clear;), deixando apenas o item que foi encontrado, e é exibido o resultado (001 - COMERCIAL), através da linha cbbxUnidade.ItemIndex := 0.
Vamos supor que o objetivo desta consulta seja alterar o depto, aí não há os outros itens. Agora, se não for utilizado nenhum tratamento, não será exibido o resultado, fica em branco, e qdo clica na seta, aparecem todos os itens.
Eu queria que aparecesse todos os itens no combobox, e selecionado apenas aquele associado com o usuário, dando também a possibilidade de escolher outro para fazer uma alteração.
Gostaria de uma opinão de vcs sobre esta questão, se é ou não possível. Espero que tenham entendido minha dúvida.
Um abraço a todos,
Rogério
Eu havia citado esta questão em uma outra dúvida que tive, colocada no tópico Gravação Usuário. O que eu estou tentando fazer, não sei se é possível, é ao consultar um usuário, mostrar num combobox o código do depto. e o departamento que este atua.
Eu tentei fazer isso:
procedure TfrmCadUsuarios.btnProcurarClick(Sender: TObject);
begin
inherited;
// Pesquisa por código
if rdbtnCodigo.Checked = true then
begin
with dmUsuarios.cdsUsuarios do
begin
close;
commandText := ´select * from USUARIOS ´ +
´ where COD_USER = ´ + edtProcurar.Text;
open;
if not isempty then
begin
cbbxUnidade.Items.Clear;
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
cbbxUnidade.ItemIndex := 0;
...
end;
end;
end;
Desse jeito, qdo digito um código e clico no procurar, os itens da combobox sao apagados (cbbxUnidade.Items.Clear;), deixando apenas o item que foi encontrado, e é exibido o resultado (001 - COMERCIAL), através da linha cbbxUnidade.ItemIndex := 0.
Vamos supor que o objetivo desta consulta seja alterar o depto, aí não há os outros itens. Agora, se não for utilizado nenhum tratamento, não será exibido o resultado, fica em branco, e qdo clica na seta, aparecem todos os itens.
Eu queria que aparecesse todos os itens no combobox, e selecionado apenas aquele associado com o usuário, dando também a possibilidade de escolher outro para fazer uma alteração.
Gostaria de uma opinão de vcs sobre esta questão, se é ou não possível. Espero que tenham entendido minha dúvida.
Um abraço a todos,
Rogério
Roger1976
Curtir tópico
+ 0
Responder
Posts
12/12/2005
Adriano Santos
Pelo jeito vc está usando um ComboBox comum, pq não usar um Lookup ? Mais fácil. Vc ´linka´ ele na tabela de departamentos e seu campo na tabela de usuarios, assim poderá alterar normalmente e ainda terá o conteudo da tabela de departamentos.
Responder
12/12/2005
Roger1976
Adriano, eu encontrei a solução, não sei se é a melhor...
No trecho estava assim...
cbbxUnidade.Items.Clear;
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
e agora ficou assim...
cbbxUnidade.Items.Clear; (eu tirei)
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
cbbxUnidade.ItemIndex := FieldByName(´COD_DEPTO´).AsInteger - 1;
Obs.: o -1 pq no combobox o índice começa pelo 0, para que pegue do código 1 em diante...
Eu já tentei usar o dblookupcombobox, mas qdo seleciono um item aparece um campo... Como sou iniciante em delphi, o lookup está relacionado com o componente citado acima? Há algum exemplo que vc conheça?
Kra, valeu pela atenção...
Rogério
No trecho estava assim...
cbbxUnidade.Items.Clear;
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
e agora ficou assim...
cbbxUnidade.Items.Clear; (eu tirei)
cbbxUnidade.Items.Add(FieldByName(´COD_DEPTO´).AsString + ´ - ´ + FieldByName(´DEPTO´).AsString);
cbbxUnidade.ItemIndex := FieldByName(´COD_DEPTO´).AsInteger - 1;
Obs.: o -1 pq no combobox o índice começa pelo 0, para que pegue do código 1 em diante...
Eu já tentei usar o dblookupcombobox, mas qdo seleciono um item aparece um campo... Como sou iniciante em delphi, o lookup está relacionado com o componente citado acima? Há algum exemplo que vc conheça?
Kra, valeu pela atenção...
Rogério
Responder
Clique aqui para fazer login e interagir na Comunidade :)