DBGrid

Delphi

03/12/2003

Olá

Como faço para na minha tela de pesquisa, quando eu der dois cliques em cima de algum resultado, ele abra a tela de cadastro mostrando o cadastro do ítem em que cliquei.

Vlw


Franck.c

Franck.c

Curtidas 0

Respostas

Douglas Bitencourt

Douglas Bitencourt

03/12/2003

a sua tela de cadastro tem dbEdits para representar os campos da tabela?
que tipo de componente está usando para ligar a tabela (Ado, BDE...)?

nos testes que fiz aki, apenas selecionei o registro no dbgrid e no form de pesquisa coloquei dbEdits com sua propriedade detasource apontando para a tabela e campos em questão, e o registro selecionado vem inteiro,
cada campo em seu dbEdit.

espero ter ajudado.

[]s

Douglas.


GOSTEI 0
Franck.c

Franck.c

03/12/2003

não...naum é assim..vou explicar mais detalhado... eu tenho uma tabela chamada esquema. No form de pesquisa (FPesqEsquema) tem um edit e um dbgrid. depois de fazer a pesquisa, clicando em cima do registro encontrado eu quero q abra a tela do cadastro (FCadEsquema) com o registro específico q foi clicado. A Pesquisa já está toda correta. Só falta fazer essa parte de dar dois cliques em cima do resgitro e ele ir para q tela de cadastro.

Por Favor, me ajudem é urgente!!!!


GOSTEI 0
Franck.c

Franck.c

03/12/2003

o nome da minha tabela é Esquema e eu uso paradox


GOSTEI 0
Douglas Bitencourt

Douglas Bitencourt

03/12/2003

tenta o seguinte:

selecione o dbGrid no form FPesqEsquema
no evento OnDblClick do dbGrid digite...
FPesqEsquema.showModal; (ou somente Show)
fica mais ou meno assim...

procedure FPesqEsquema.dbGridDblClick(Sender: TObject);
begin
  frmCadastrar.Show; //ou ShowModal
end;


testa ae e avisa se funcionou.

[]s Douglas.


GOSTEI 0
Franck.c

Franck.c

03/12/2003

não funciono nenhuma das duas maneiras :(


GOSTEI 0
Douglas Bitencourt

Douglas Bitencourt

03/12/2003

quando vc clica 2 vs no registro não abre o form desejado?

cole aqui o código que vc usou...


GOSTEI 0
Franck.c

Franck.c

03/12/2003

abre, mas eu preciso q quando abrir fike no registro q eh cliquei na tela de pesquisa


GOSTEI 0
Franck.c

Franck.c

03/12/2003

application.createform(tFCadEsquema,FCadEsquema);
FCadEsquema.show;


GOSTEI 0
Douglas Bitencourt

Douglas Bitencourt

03/12/2003

bom,

o que fiz aki e funciono foi colocar no form que abre, dbEdits que se relacionam com a tabela que to pesquisando e no form de pesquisa coloquei um botão de comando para abrir o form.
então ao selecionar o registro e clicar no botão o registro aparece automaticamente.
tb usei paradox.
tb testei no evento OnCellClick do dbGrid e funcionou.
testei o botao e tb funciono.
e os 2 clicks tb.

verifique se a propriedade Options/dgRowSelect esta setada como true.


GOSTEI 0
Franck.c

Franck.c

03/12/2003

tá ativado, mas tu sabe como faz o que eu kero?


GOSTEI 0
Douglas Bitencourt

Douglas Bitencourt

03/12/2003

bom, eu acho que entendi.
quando vc seleciona o reg vai para o cadastro do reg selecionado.

eu conheço esta forma que te passei, e uma que quando seleciona na tela de pesq fecha a tela de pesq e volta pro cad com o reg que foi selecionado.

no mais, não sei mais.


GOSTEI 0
Franck.c

Franck.c

03/12/2003

Alguém pode me ajudar???????


GOSTEI 0
Cabreu.jr

Cabreu.jr

03/12/2003

no form de cadastro coloque uma query tipo
´select * from Esquema where codesquema = :codesquema´
no on dblclick da grid passe o parametro para query e abra o form.

vai ficar algo como:

with queryCadastro do
begin
close;
parambyname(´CodEsquema´).value := querypesquisaCodEsquema.value;
open;
end;
FCadEsquema.showmodal;


GOSTEI 0
Franck.c

Franck.c

03/12/2003

não ta funcionando...eu vo coloca o que é cada coisa, os nomes para não ter problema.

Tela do Cadastro
===========
Name: FCadEsquema
Tabela: dtm.esquema
Itens da tabela: Codigo , Marca , Modelo , Caixa , Prateleira , CD Nº

Tela de Pesquisa
===========
Name: FPesqEsquema
Tabela para pesquisa em ordem alfabética pelo Modelo: query1
DataSource: DataSouce1
Tabela Original: dtm.esquema
DBGrid: DBGrid1
Edit: Edit1

Lembrando: Quando estiver fazendo uma pesquisa, dando dois cliques em cima de algum ítem do DBGrid, ele abra a tela de Cadastro exatamente no iténs em que cliquei.

Por favor, isso já está virando um debate... :)


GOSTEI 0
Cabreu.jr

Cabreu.jr

03/12/2003

Franck, me manda o fonte por e-mail q eu resolvo e t mando d volta. na certa deve ter algum detalhe esquecido.

cabreu.jr@ig.com.br
Claudio


GOSTEI 0
Franck.c

Franck.c

03/12/2003

Vlw pela ajuda...mas já consegui!


GOSTEI 0
Vfulan

Vfulan

03/12/2003

Comigo acontece o seguinte: quando dou dois cliques no dbgrid ele exibe o formulário mas volta o foco para o DBGrid. Isto pode ser evitado usando SHOWMODAL ao invés de SHOW. O problema está quando se quer usar SHOW pois isso pode ser necessário para evitar mensagens de erro em outras partes do programa como CANNOT MAKE A VISIBLE WINDOW MODAL.


GOSTEI 0
Danielclubedelphi

Danielclubedelphi

03/12/2003

Se vc estivesse usando o mesmo acesso ao dado estaria tudo resolvido... pq quando vc filtrasse algo o ponteiro no banco apontaria para o mesmo registro.

Como vc ta filtrando uma vez e abrindo a tabela de novo, eu sugiro que pegue esse valor quando der esse clique numa variavel global e quando fechar o formulario de pesquisa atualize sua tabela na formulario de cadastro com uma procedure ou coisa assim construindo o filtro com o valor que tinha recebido.

Naum uso tabelas e naum sei te ajudar como filtra-las.


GOSTEI 0
POSTAR