Chamar cadastro do cliente, atráves do dbgrid!

Delphi

08/09/2010

Sou iniciante na programação delphi, ja faz alguns dias que venho tentando achar uma forma de que:
ao selecionar a linha do registro no formulario de listagem dos clientes no dbgrid, com dois cliques eu queria poder abrir esse registro selecionado no formulario de cadastro para pode editalo.


Resumo da aplicação:

3 Formulários ( TfrPrincipal, TfrCadastro, TfrListaContato)
1 Modulo de dados ( componetes para ligaçao IB )
listagem de dados esta sendo feita com dbgrid.





por hora consegui chamar o formulario de cadastro ao dar dois cliques no dbgrid que esta localizado no tfrlistas contatos, porem , o form de cadastro abre em novo registro, e não como eu queria , ou seja:

ao selecionar a linha do registro no formulario de listagem dos clientes, com dois cliques eu queria poder abrir esse registro selecionado no formulario de cadastro para pode editalo.


obrigado desde já ;D
Anderson Oliveira

Anderson Oliveira

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

08/09/2010

Para fazer a listagem no dbgrid, você está usando o mesmo componente que usa para cadastro, tipo: ibQryCadClientes no de cadastro e listagem? Preciso de mais informações, tipo name do componente ibquery de cadastro e listagem, sql que está usando nos dois componentes.
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

08/09/2010

ERILEY VILAGRANDE BARBOSA
seguinte,
no frCadastro = IBQUERY E DATASOURCEno frListaContatos = IBQUERY E DATASOURCE no md, Ttable e DATA SOURCEdatabase e trasnection  (aba ib)por enquanto estou apenas utilizando um sql para ordenar por nome no dbgrid
e por hora estou utilizando o evendo dbclick do dbgrid
procedure TfrListaContatos.dbgListaDblClick(Sender: TObject);
begin
frCadastro.showmodal;
end;
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

08/09/2010

seguinte,
Selecione o IBquery e copie o conteúdo da propriedade Name e SQL e poste aqui. no frCadastro = IBQUERY E DATASOURCE Selecione o IBquery e copie o conteúdo da propriedade Name e SQL e poste aqui. no frListaContatos = IBQUERY E DATASOURCE Este aqui se não é usado na tela de cadastro, não precisa. no md, Ttable e DATA SOURCE database e trasnection  (aba ib) por enquanto estou apenas utilizando um sql para ordenar por nome no dbgrid
e por hora estou utilizando o evendo dbclick do dbgrid
procedure TfrListaContatos.dbgListaDblClick(Sender: TObject);
begin
frCadastro.showmodal;
end;
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

08/09/2010

ok,

(FRCADASTRO)
NAME
IBCadastro

SQL
select *  from CADASTRO



GOSTEI 0
Eriley Barbosa

Eriley Barbosa

08/09/2010

Faltou o utilizado no formulário da listagem:   Selecione o IBquery e copie o conteúdo da propriedade Name e SQL e poste aqui. no frListaContatos = IBQUERY E DATASOURCE
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

08/09/2010

NAME
IBListaContatos
SQL
select *  from CADASTRO


pois ambos estao utilizando a mesma tabela no banco de dados - tbCADASTRO
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

08/09/2010

Veja que você está com as duas querys exatamente iguias e isso é redundante: IBCadastro SQL
select *  from CADASTRO
IBListaContatos
SQL
select *  from CADASTRO
Se você no frListaContatos ligar o datasource pela propriedade Dataset ao frCadastro.IBCadastro,
o registro que você selecionar no dbgrid será o mesmo que vai aparecer no formulário.
Dai você até pode excluir o IBListaContatos. Se não quiser fazer isso, vai ter de me passar qual é a chave primaria da tabela CADASTRO.
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

08/09/2010

olá amigo, fiz oque vc mensionou, deletei o ibListacontatos, e liguei o datasource com o frCadastro.IBCadastro
mas agora nao puxa nem um registro no grid na hora de compilar =x


a chave primaria da tabela é o codigo


chamado de 'COD'


GOSTEI 0
Eriley Barbosa

Eriley Barbosa

08/09/2010

No onshow do frCadastro, você abriu o IBCadastro? if not IBCadastro.Active then   IBCadastro.Open;
GOSTEI 0
Anderson Oliveira

Anderson Oliveira

08/09/2010

sim fiz isso,

mas e no form FrListaContatos

Como chamo ele no menuprincipal?


GOSTEI 0
Eriley Barbosa

Eriley Barbosa

08/09/2010

Se for chamar pelo menu principal, vai ter de colocar o código no onshow do FrListaContatos: if not frCadastro.IBCadastro.Active then   frCadastro.IBCadastro.Open;  Para chamar o FrListaContatos no menu principal basta digitar: FrListaContatos.ShowModal;
GOSTEI 0
POSTAR