Obter informações em Consulta DbGrid

29/01/2013

3

Boa Noite,

BD: Firebird
Componentes : Zeos (Query, UpdateSQL, Data Source)
Delphi 2010
Usando Data Module

Estou com um aplicação parada por causa desta duvida.
Estou desenvolvendo uma aplicação onde dentro do formulario de cadastro do Funcionario tem um campo cargo, por exemplo, que deve pegar informações da tabela cargo criada.
A ideia inicial seria colocar um botão e um DBText, onde ao clicar no botao ele abriria outro form com um campo para consulta e um dgbrid. ao consulta, localizar e selecionar no dbgrid, clicando no botao fecharia o form de consulta e o DBText receberia a informação no caso o cargo selecionado.

P.S.: É possivel um DBText funcionar desta forma?

Desde ja agradeço a ajuda na solução desta duvida
Responder

Posts

29/01/2013

William

Colega vc pode carregar esses cargos em um TCombobox ou TDBLookupComboBox gera menos trabalho.

Mas também pode usar um outro form para consultar os cargos.
Responder

29/01/2013

Flavio Silva

Bom dia wllfl,

É dessa forma com você falou o meu sistema.

Dentro do form Funcionario existe um buttom que ao ser clicado abrirá uma janela com um dgbrid contendo todos os cargo cadastrados, e um DBText que receberia o resultado desta consulta.

no entanto, o que busco é se existe a possibilidade deste DbText exibir, por exemplo, o cargo que foi selecionado na janela de consulta e como fazer.

Quando ao Combobox e DBlookupcombobox eu só queria usa-lo com uma alternativa se o mesmo DBText nao puder exibir desta forma.

Obrigado.
Responder

29/01/2013

William

Bom, então vamos fazer dessa forma usando o form:

No frmCadastro vc coloca um botão chamando o frmPesquisa, pode ser:
frmPesquisa = TFrmPesquisa.Create(nil);
frmPesquisa.showModal;

Vc terá que passar valores de um form para o outro, sendo assim vc seleciona o cargo desejado e no botão do frmPesquisa vc codifica algo parecido com isso:
frmCadastro.DBEdit.text = ZQueryConsulta.fieldByName('cargo').asString;
ou
ZQueryCadastro.fieldByName('cargo').asString; = ZQueryConsulta.fieldByName('cargo').asString;
frmPesquisa.Close;


Basicamente é essa a idéia, usei nomes de campos e componentes aleatórios vc adapata para a sua necessidade.
Qualquer dúvida posta aí novamente...
Responder

29/01/2013

Flavio Silva

Muito Obrigado deu Certo....
Responder

29/01/2013

Flavio Silva

Bom realmente esta funcionando e exibindo a informação no formulario, porem percebi uma coisa mesmo eu clicando no form de consulta no cargo que preciso, porem ele só exibi no cadastro 1 que é o gerente. posso clicar no 300, mas só exibi o numero 1
Responder

29/01/2013

William

Vc seleciona um cargo no DBGrid do frmConsulta e no DBText fo frmCadastro é preenchido com outro cargo?
Responder

29/01/2013

Flavio Silva

Vc seleciona um cargo no DBGrid do frmConsulta e no DBText fo frmCadastro é preenchido com outro cargo?


isso!

tenho atualmente 4 cargo cadastrados na tabela cargo.
Independente de qualquer um que eu selecione e clique no botao, insere o codigo 1 que é gerente.
Responder

29/01/2013

William

A sua tabela do frmCadastro está em modo de edição?
Como está trabalhando com componente ligado direto ao DataSet?
Responder

29/01/2013

Flavio Silva

A sua tabela do frmCadastro está em modo de edição?
Como está trabalhando com componente ligado direto ao DataSet?


A forma como estou trabalhando, sempre que vou testar o campo cargo, clico no navigator como se fosse inserir um novo cadastro.

Quando ao componentes estou usando o ZEOS

TZConnection
Assim estou usando o TZQuery > TZUpdateSQL > DataSource

no form Consulta coloquei um TZQuery para Consulta, porem, nele só tem o SQL da seguinte forma "SELECT * FROM CARGO"
Responder

29/01/2013

William

Flavio o ponto chave é esse componente TZQuery do frmConsulta, mesmo ele contendo apenas uma instrução SQL simples.

É desse dataset q vc vai pegar o valor q será carregado no DBEdit, se o nome dele é TZQuery então quando vc selecionar um registro no DBGrid o valor será refletido para propriedade fieldByName:

TZQuery.FieldByName('cargo').AsString


Teste colocando esse código no evento OnClick do DBGrid:
ShowMessage('Valor do campo cargo: ' + TZQuery.FieldByName('cargo').AsString);


Clique no registro q vc quiser no DBGrid, deverá ser exibido uma mensagem com valor do campo cargo.
Responder

30/01/2013

Flavio Silva

Ok. A partir da orientação que voce me passou ja da para me virar aqui.

Obrigado
Responder