DBLookupComboBox
Desculpe-me todos, mas já pesquisei (pesquisar) o termo em questão e foi-me retornado diversas msg postas/respondida, porém nenhuma atendeu à minha questão. Por isso solicito a gentileza dos amigos para o seguinte problema:
Sou iniciante na linguagem DELPHI e a minha maior dificuldade é encontrar material, traduzido para o português, que descreva, minuciosamente, as funções e os componentes do DELPHI.
No momento estou iniciando o desenvolvimento de um aplicativo e, de cara, estou “num beco sem saída” pelo fato de não saber usar, corretamente, o componente DBLookUpComboBox.
Em um form, inseri um DBLookUpComboBox baseado em uma Table que contém 4 campos: idEspecie; nEspecie; Gestação e vUtil. Quando escolho um item, por exemplo Bovino, gostaria que os campos (valores) Gestação e vUtil fossem inseridos nos DBEdit_Ges e DBEdit_vu, respectivamente.
Como fazer isso?
Sem mais para o momento, antecipadamente agradeço.
Sou iniciante na linguagem DELPHI e a minha maior dificuldade é encontrar material, traduzido para o português, que descreva, minuciosamente, as funções e os componentes do DELPHI.
No momento estou iniciando o desenvolvimento de um aplicativo e, de cara, estou “num beco sem saída” pelo fato de não saber usar, corretamente, o componente DBLookUpComboBox.
Em um form, inseri um DBLookUpComboBox baseado em uma Table que contém 4 campos: idEspecie; nEspecie; Gestação e vUtil. Quando escolho um item, por exemplo Bovino, gostaria que os campos (valores) Gestação e vUtil fossem inseridos nos DBEdit_Ges e DBEdit_vu, respectivamente.
Como fazer isso?
Sem mais para o momento, antecipadamente agradeço.
Ananias Duarte
Curtidas 0
Respostas
Gandalf.nho
04/10/2004
Crie um campo Lookup no seu componente DataSet (TTable?) para cada um dos campos associados ao campo chave e o DBLookupCombo ao selecionar o valor do campo chave, automaticamente irá atualizar os outros
GOSTEI 0
Ananias Duarte
04/10/2004
ai meu Deus, que vergonha!
Desculpem a minha ignorância, mas não consegui entender a sua msg.
O que eu preciso é usar os dados (valores) que estão no campo ´gestação´ e ´vidautil´ do registro retornado pelo DBLookUpComboBox. Por isso é que gostaria que esses valores fossem inseridos nos respectivos Edits.
Desculpem-me se não me expressei bem.
obrigado
Desculpem a minha ignorância, mas não consegui entender a sua msg.
O que eu preciso é usar os dados (valores) que estão no campo ´gestação´ e ´vidautil´ do registro retornado pelo DBLookUpComboBox. Por isso é que gostaria que esses valores fossem inseridos nos respectivos Edits.
Desculpem-me se não me expressei bem.
obrigado
GOSTEI 0
Gandalf.nho
04/10/2004
Você sabe o que é um campo Lookup? É um campo que puxa informação de outra tabela. Por ex: crie um no seu Table vinculado ao campo nEspecie de outro Table e o DBlookupCombo deve ter como origem o mesmo table usado para buscar o dado do campo. Quando você puxar o campo ID, automaticamente atribuirá o nome tb.
GOSTEI 0
Ananias Duarte
04/10/2004
Valeu, amiga gaúcha. Muito obrigado pelas dicas, porém continuo sem resolver o meu problema. :oops:
abraços
abraços
GOSTEI 0
Aroldo Zanela
04/10/2004
Colega,
Você pode utilizar também o evento OnDataChange do DataSource que está ligado ao dbLookUpComboBox, verificar o estado do DataSet e fazer a atribuição se estiver em dsEdit ou dsInsert.
Adicione mais detalhes e se possível um fragmento do código para que possamos trabalhor sobre o mesmo.
Você pode utilizar também o evento OnDataChange do DataSource que está ligado ao dbLookUpComboBox, verificar o estado do DataSet e fazer a atribuição se estiver em dsEdit ou dsInsert.
Adicione mais detalhes e se possível um fragmento do código para que possamos trabalhor sobre o mesmo.
GOSTEI 0
Ananias Duarte
04/10/2004
Ola pessoal, bom dia!
Caro Aroldo, atendendo à sua solicitação descrevo, a seguir, como faça para cria um DBLookupComboBox no ACCESS. veja:
No MS Access, o correspondente ao DBLookupcombobox teria a seguinte estrutura:
Coluna0 = IdEspecie
Coluna1 = nEspecie
Coluna2 = Gestacao
Coluna3 = vUtil
Tabela de origem = Tab_Especie
Tabela-destino = Tab_Animal
Campo-destino = IdEspecie
Configuração da apresentação da combo_Especie = 0cm;3cm;0cm;0cm, isto é: apenas a coluna1 seria visível ao usuário, porém, internamente, a combo_Especie teria a seguinte aparência:
Em dois controles (Edits) faço constar os dados referentes a gestação e vUtil, da seguinte maneira:
Na propriedade Origem do Controle do Edit1, digito o seguinte: combo_Espécie.column(2)
Na propriedade Origem do Controle do Edit, digito o seguinte: combo_Espécie.column(3)
Como funciona?
Suponha que o usuário escolha a opção 3 (bovino). No campo idEspecie da tab_animal será gravado = 3. O edit1 conterá 270 e o Edit2 conterá 150.
Fazer isso no DELPHI, usando do DBLookUpComboBox é que ta DOSE!!!
Ficaria imensamente agradecido pela ajuda.
abraços
Caro Aroldo, atendendo à sua solicitação descrevo, a seguir, como faça para cria um DBLookupComboBox no ACCESS. veja:
No MS Access, o correspondente ao DBLookupcombobox teria a seguinte estrutura:
Coluna0 = IdEspecie
Coluna1 = nEspecie
Coluna2 = Gestacao
Coluna3 = vUtil
Tabela de origem = Tab_Especie
Tabela-destino = Tab_Animal
Campo-destino = IdEspecie
Configuração da apresentação da combo_Especie = 0cm;3cm;0cm;0cm, isto é: apenas a coluna1 seria visível ao usuário, porém, internamente, a combo_Especie teria a seguinte aparência:
IdEspecie nEspecie Gestacao vUtil 1 Ovino 150 100 2 Caprino 150 100 3 Bovino 270 150 4 Bubalino 270 150
Em dois controles (Edits) faço constar os dados referentes a gestação e vUtil, da seguinte maneira:
Na propriedade Origem do Controle do Edit1, digito o seguinte: combo_Espécie.column(2)
Na propriedade Origem do Controle do Edit, digito o seguinte: combo_Espécie.column(3)
Como funciona?
Suponha que o usuário escolha a opção 3 (bovino). No campo idEspecie da tab_animal será gravado = 3. O edit1 conterá 270 e o Edit2 conterá 150.
Fazer isso no DELPHI, usando do DBLookUpComboBox é que ta DOSE!!!
Ficaria imensamente agradecido pela ajuda.
abraços
GOSTEI 0
Ananias Duarte
04/10/2004
Minha gente, que é isso!....
Ninguem se habilita?!
Será que o ´meu problema´ é tal banal que não merece a atenção dos profissionais do DELPHI?
abraços
Ninguem se habilita?!
Será que o ´meu problema´ é tal banal que não merece a atenção dos profissionais do DELPHI?
abraços
GOSTEI 0
Horus
04/10/2004
Não sei qual banco de dados você tá usando. Eu uso o Firebird.
Eu faço assim:
1. Coloco uma query no form selecionando os campos de pesquisa na tabela de pesquisa que eu quero extrair os dados.
2. Coloco um dblookupcombobox no form.
3. Vou no object inspector e defino a propriedade datasource, datafield de acordo com a tabela de destino.
4. Defino as propriedades listsource, listfield, keyfield de acordo com a tabela de pesquisa.
5. No evento oncloseup do dblookupcombobox eu digo que :
campo_da_tabela_de_destino := campo_da_tabela_de_pesquisa
Posso inserir algumas condições se for o caso e depois também, se for o caso salvar as alterações.
Espero ter ajudado.
Eu faço assim:
1. Coloco uma query no form selecionando os campos de pesquisa na tabela de pesquisa que eu quero extrair os dados.
2. Coloco um dblookupcombobox no form.
3. Vou no object inspector e defino a propriedade datasource, datafield de acordo com a tabela de destino.
4. Defino as propriedades listsource, listfield, keyfield de acordo com a tabela de pesquisa.
5. No evento oncloseup do dblookupcombobox eu digo que :
campo_da_tabela_de_destino := campo_da_tabela_de_pesquisa
Posso inserir algumas condições se for o caso e depois também, se for o caso salvar as alterações.
Espero ter ajudado.
GOSTEI 0
Ananias Duarte
04/10/2004
Caro Horus, obrigado pela participação.
Peço desculpas por não ter-me feito entender, pois, ao que parece, vc não entendeu o problema.
O que vc disse, já é feito!
O que eu quero é ´capturar´ os [u:ba4e3b5b12]valores[/u:ba4e3b5b12] da coluna ´[b:ba4e3b5b12]gestação[/b:ba4e3b5b12]´ e da coluna ´[b:ba4e3b5b12]vUtil[/b:ba4e3b5b12]´ e, apenas, colocá-los em dois Edits e não gravá-los em uma tabela.
abraços e +1x obrigado
Peço desculpas por não ter-me feito entender, pois, ao que parece, vc não entendeu o problema.
O que vc disse, já é feito!
O que eu quero é ´capturar´ os [u:ba4e3b5b12]valores[/u:ba4e3b5b12] da coluna ´[b:ba4e3b5b12]gestação[/b:ba4e3b5b12]´ e da coluna ´[b:ba4e3b5b12]vUtil[/b:ba4e3b5b12]´ e, apenas, colocá-los em dois Edits e não gravá-los em uma tabela.
abraços e +1x obrigado
GOSTEI 0
Aroldo Zanela
04/10/2004
Colega,
No [b:1ab955804a]OnDataChange [/b:1ab955804a]do [b:1ab955804a][color=red:1ab955804a]DataSource[/color:1ab955804a][/b:1ab955804a]:
O que eu quero é ´capturar´ os valores da coluna ´gestação´ e da coluna ´vUtil´ e, apenas, colocá-los em dois Edits
No [b:1ab955804a]OnDataChange [/b:1ab955804a]do [b:1ab955804a][color=red:1ab955804a]DataSource[/color:1ab955804a][/b:1ab955804a]:
Edit1.Text := tbXcolunaA.AsString; Edit2.Text := ...
GOSTEI 0
Ananias Duarte
04/10/2004
Grande Moderador... Valeu.
Não tenho o DELPHI aqui. Vou testar isso em casa.
Tô entendendo q ´X´ é o nome da Tabela-fonte do DBLookupcombobox, no meu caso a Tab_Especie e ´A´ é a coluna A da combo?!
Desculpe a pergunta, pois no Access as colunas são numerados a partir do ZERO: coluna0, coluna1, ...
Muito obrigado. Amanhã conto se deu certo.
bye bye
Não tenho o DELPHI aqui. Vou testar isso em casa.
Tô entendendo q ´X´ é o nome da Tabela-fonte do DBLookupcombobox, no meu caso a Tab_Especie e ´A´ é a coluna A da combo?!
Desculpe a pergunta, pois no Access as colunas são numerados a partir do ZERO: coluna0, coluna1, ...
Muito obrigado. Amanhã conto se deu certo.
bye bye
GOSTEI 0
Ananias Duarte
04/10/2004
olá pessoal.
Agradeço a ajuda recebida e, em especial, ao Aroldo pela dica que se tornou o ´gatilho´ da solução que encontrei. É certo que deve existir outra maneira de resolver a questão, porém foi assim que resolvi o meu problema com o DBLookUpComboBox.
O [b:8a1f7ba007]DBLookUpComboBox[/b:8a1f7ba007]:
Tenho um DBLookUpComboBox baseado em uma tabela que possui quatro campos:
id_especie;
especie;
gestacao; e
vutil.
O [b:8a1f7ba007]PROBLEMA[/b:8a1f7ba007]:
Preciso que os dados (valores) que estão nas colunas (campos) [u:8a1f7ba007]gestação [/u:8a1f7ba007]e [u:8a1f7ba007]vutil [/u:8a1f7ba007] fossem copiados/inseridos em dois edits (edit_gest e edit_vutil).
[b:8a1f7ba007]COMO FAZER ISSO[/b:8a1f7ba007]?
Após horas e horas de tentativas e fracassos, eis que surge um único acerto: a dercoberta da propriedade FIELDS! Essa propriedade, ao que parece, trata-se de um ARRAY, logo a sua manipulação fica fácil.
Veja como ficou o código que captura os valores das colunas [u:8a1f7ba007]gestação [/u:8a1f7ba007]e [u:8a1f7ba007]vutil [/u:8a1f7ba007].
procedure TForm_User.DS_EspecieDataChange(Sender: TObject; Field: TField);
begin
ctrl_gestacao.text:=tb_Especie.Fields[2].AsString;
ctrl_vutil.text:=tb_Especie.Fields[3].AsString;
end;
Veja que usei o evento [b:8a1f7ba007]DataChange [/b:8a1f7ba007]do [b:8a1f7ba007]DataSource[/b:8a1f7ba007] que contém a Tab_Especie (tabela fonte do DBLookUpComboBox).
abraços e obrigado
Agradeço a ajuda recebida e, em especial, ao Aroldo pela dica que se tornou o ´gatilho´ da solução que encontrei. É certo que deve existir outra maneira de resolver a questão, porém foi assim que resolvi o meu problema com o DBLookUpComboBox.
O [b:8a1f7ba007]DBLookUpComboBox[/b:8a1f7ba007]:
Tenho um DBLookUpComboBox baseado em uma tabela que possui quatro campos:
id_especie;
especie;
gestacao; e
vutil.
O [b:8a1f7ba007]PROBLEMA[/b:8a1f7ba007]:
Preciso que os dados (valores) que estão nas colunas (campos) [u:8a1f7ba007]gestação [/u:8a1f7ba007]e [u:8a1f7ba007]vutil [/u:8a1f7ba007] fossem copiados/inseridos em dois edits (edit_gest e edit_vutil).
[b:8a1f7ba007]COMO FAZER ISSO[/b:8a1f7ba007]?
Após horas e horas de tentativas e fracassos, eis que surge um único acerto: a dercoberta da propriedade FIELDS! Essa propriedade, ao que parece, trata-se de um ARRAY, logo a sua manipulação fica fácil.
Veja como ficou o código que captura os valores das colunas [u:8a1f7ba007]gestação [/u:8a1f7ba007]e [u:8a1f7ba007]vutil [/u:8a1f7ba007].
procedure TForm_User.DS_EspecieDataChange(Sender: TObject; Field: TField);
begin
ctrl_gestacao.text:=tb_Especie.Fields[2].AsString;
ctrl_vutil.text:=tb_Especie.Fields[3].AsString;
end;
Veja que usei o evento [b:8a1f7ba007]DataChange [/b:8a1f7ba007]do [b:8a1f7ba007]DataSource[/b:8a1f7ba007] que contém a Tab_Especie (tabela fonte do DBLookUpComboBox).
abraços e obrigado
GOSTEI 0
Aroldo Zanela
04/10/2004
Colega,
Outras formas:
Outras formas:
procedure TForm1.Table1AfterScroll(DataSet: TDataSet); | begin +---------------+ try | V Edit1.Text := DataSet.FieldValues[´Last_Name´]; Edit2.Text := DataSet.Fields[1].Value; Edit3.Text := DataSet.FieldByName(´acct_nbr´).AsString; except // Exceção silenciosa end; end;
GOSTEI 0
Ananias Duarte
04/10/2004
Num falei?!!
Tudo se resume em [b:d68732fb66]conhecer [/b:d68732fb66] as funções e funcionalidadeS de cada [b:d68732fb66]propriedade, método, instrução, função[/b:d68732fb66], etc. da linguagem e, para isso,só existe um caminho: estudar. Agora... para quem não sabe inglês...
Valeu Aroldo.
ah, quando vc indicaria o uso do TRY/EXCEPT? seria em qualquer construção BEGIN/END?
ABRAÇOS
Tudo se resume em [b:d68732fb66]conhecer [/b:d68732fb66] as funções e funcionalidadeS de cada [b:d68732fb66]propriedade, método, instrução, função[/b:d68732fb66], etc. da linguagem e, para isso,só existe um caminho: estudar. Agora... para quem não sabe inglês...
Valeu Aroldo.
ah, quando vc indicaria o uso do TRY/EXCEPT? seria em qualquer construção BEGIN/END?
ABRAÇOS
GOSTEI 0
By_gandalf
04/10/2004
voce podeira tambem colocar 2 DBEdits no form e setar as propriedades DataSource e DataSet, e deixar o campo desabilitado,,, assim que ele mudar o ponteiro da tabela no dblookupcombobox automaticamente o dbedit mudará. Essa é a melhor forma eu acho, sendo que não precisa colocar código nenhum...
Abraços
Abraços
GOSTEI 0
Ananias Duarte
04/10/2004
putz!! essa é d+. vou testar.
valeu
abraços
valeu
abraços
GOSTEI 0