Fórum Como apresentar registro selecionado no dbgrid? #417938

02/06/2012

0

Ola pessoal, estou a alguns dia procurando a solução para este problema, mas não consegui nada.

Bom, tenho um form com uma busca que me retorna alguns registros e desejo clicar neste registro e abrir no registro no form de cadastro, porem como utilizo um ClientDataSet ligado a um AdoQuery devido a ter mestre/Detalhe, e a pesquisa ligada a outro AdoQuery, quando faco isso ele me retorna o primeiro registro...

Procurei por ai, e parece que tem que fazer um Locate ou Select, ainda nao sei

Alguém me ajuda!!!

Ah, minha pesquisa é composta por:

procedure TFrmPesqLajes.EdtBuscaChange(Sender: TObject);
Var
a: String;
begin
if RbCodigo.Checked then
Begin
a:= Select * From Clientes where Codigo like + QuotedStr( % + edtBusca.Text + %) +
order by Codigo;
end;
With DMPesq.QryClientes do
Begin
Close;
SQL.Clear;
SQl.Add(a);
Open;
end;
Danilo Cordeiro

Danilo Cordeiro

Responder

Posts

03/06/2012

Marco Salles

Se o cursor Dos dados (aquela setinha pequne preta no canto esquerdo da Grid) esta apontando para um registro
vc tem todas as informações que vc precisa .. Não entendi vc dizer que tem que fazer um

Procurei por ai, e parece que tem que fazer um Locate ou Select, ainda nao sei

????
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

Como faço a busca em uma Query diferente da que esta ligada ao cadastro ele não aponta o registro com a setinha, segue imagem!!!

Links.
Data module. https://lh6.googleusercontent.com/-Z4lNMuNGyTjoDi8i182emh1nzVqU-Ic_Sip231rmr8JpjkJGD5CANCyuYnplkPnTdhSX_8dok0
DmPesquisa. https://lh4.googleusercontent.com/Mv8SKGqzh-pRrZ2Rv0EOGoFwVB8sWu87q6SC-J25434-52PwehCH82hWdU5k2zeRrgduckEYNMo
Cadastro. https://lh4.googleusercontent.com/Iewy3CTT7BFxOTObPS0-m1cSTLXkfaxopsMhcMSD-YeyI7wj_AHlfU8ulIoYH7fyzRe9nV1ra1g
Busca. https://lh5.googleusercontent.com/rRPBhfQUUkMvFtbciaV-ecP7YklD_6d6zoW9M-s0e6bG49ztdkSL8Yhe2ynaMpRya1wSQSq_2WI

Olha ai.
Responder

Gostei + 0

03/06/2012

Marco Salles

qual o link correto da inagem ???
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

A imagem da busca e esta
https://lh5.googleusercontent.com/rRPBhfQUUkMvFtbciaV-ecP7YklD_6d6zoW9M-s0e6bG49ztdkSL8Yhe2ynaMpRya1wSQSq_2WI
veja que não aparece seta. pois não uso FindNearest para fazer a pesquisa!!
Responder

Gostei + 0

03/06/2012

William

Colega pelo visto vc está trabalhando com Mestre/Detalhe, minha pergunta é:

De qual tabela vc quer visualizar os dados, Mestre ou Detalhe?

Quanto ao filtro se vc já ligou corretamente os campos no ClientDataSet então não tem quer executar Select na tabela Detalhe.
Responder

Gostei + 0

03/06/2012

Marco Salles

A imagem da busca e esta
https://lh5.googleusercontent.com/rRPBhfQUUkMvFtbciaV-ecP7YklD_6d6zoW9M-s0e6bG49ztdkSL8Yhe2ynaMpRya1wSQSq_2WI
veja que não aparece seta. pois não uso FindNearest para fazer a pesquisa!!


não abre no meu browser o link

https://lh5.googleusercontent.com/rRPBhfQUUkMvFtbciaV-ecP7YklD_6d6zoW9M-s0e6bG49ztdkSL8Yhe2ynaMpRya1wSQSq_2WI
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

é um mestre detalhe. esta assim.
mestre: Tab. Clientes
Detalhe: Tab. lajesForro, LajesPiso, lajesTrelicada

a tabela que faço a busca e desejo exibi-la é a mestre - Clientes.

ou seja, o mestre/Detalhe ta funcionando direitinho... a questão é que o cadastro esta ligado em um CdsClientes que esta ligado a um dataSetProvider que esta ligado a um AdoQueryClientes devido ao uso de mestre/Detalhe e a pesquisa esta ligada em outro a um outro AdoQueryPesquisaClientes..
Responder

Gostei + 0

03/06/2012

William

Danilo se vc só quer exibir dados da Tabela Cliente simplesmente use o Locate no próprio ClientDataSet de cadastro.

Infelizmente também não consegui abrir suas imagens.
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

Segue imagem:
[IMG]http://img811.imageshack.us/img811/215/pesquisan.jpg[/IMG]
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

Como faço para usar o Locate?
Responder

Gostei + 0

03/06/2012

William

ClientDataSetClientes.Locate(<Nome_campo>, <Edit_dispara_consulta>, [loCaseInsensitive, loPartialKey]);
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

Amigo, voce naum teria o TeamWiever ai não, pra voce da uma olhada e me ajuda?
Responder

Gostei + 0

03/06/2012

Marco Salles

Segue imagem:
[IMG]http://img811.imageshack.us/img811/215/pesquisan.jpg[/IMG]


Vc quer clicar no dbgrid e ir para um outro formuãrio Cadastro , onde deve aparecer o Mestre
que no caso é este registro e o detalhe referente a este ???

????


pa_ O Locate é mais lento se não houver indices

como vc esta utilizando clientdataset melhor utilizar o setkey e criar indices em rumtime
para grande range de dados
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

i, agora complico, num entendo nada disto que tu falou... vo ter que estuda bastante ainda...
Responder

Gostei + 0

03/06/2012

Danilo Cordeiro

a respeito do detalhe, não o utilizo na pesquisa..
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar