nicolasbraz Postado Novembro 4, 2009 Denunciar Share Postado Novembro 4, 2009 Eu tenho um formulario de consulta que esta ligado por um DataSource e IbQuery. E o de cadastro que é ligado por um DataSource e IbDataset. Gostaria de que quando eu fize-se a consulta eu desse um duplo clique no registro da consulta e eu fosse para a tela de cadastro em modo de edição. É possivel ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pompeu Postado Novembro 4, 2009 Denunciar Share Postado Novembro 4, 2009 Olá 'nicolasbraz'Sim é possível ... como é seu formulário de pesquisa ? você usa um DBGrid para visualizar os registros ? qual a versão do Delphi que usa ?Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Novembro 4, 2009 Autor Denunciar Share Postado Novembro 4, 2009 Olá 'nicolasbraz'Sim é possível ... como é seu formulário de pesquisa ? você usa um DBGrid para visualizar os registros ? qual a versão do Delphi que usa ?AbraçosDelphi 2007 sim são visualizados em um DBGrid. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pompeu Postado Novembro 4, 2009 Denunciar Share Postado Novembro 4, 2009 'nicolasbraz' Clique sobre o DBGrid e no event OnDblClick você pode atribuir as condições para que quando você der um duplo clique sobre o registro você pode pedir para a tela de consulta fechar e habilitar o modo de edição do formulário de cadastro. Segue exemplo abaixo:Tela de consultaprocedure TParentescosSelecionar.DBGrid1DblClick(Sender: TObject);begin Formulario_de_Consulta.Close; //Caso você use comando SQL para editar, eu recomendo você armazenar o campo que tenha a chave primária para localizar o registro a ser editado ex: Update From tabela Where id = variavelend;Lembrando que é um pouco difícil orientar sobre como fazer já que não estou vendo a forma que você está programando, creio que esse exemplo sirva de referência e qualquer coisa poste aíAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Novembro 4, 2009 Autor Denunciar Share Postado Novembro 4, 2009 Botão pesquisar do formulario de consulta.procedure TFrmConFerramentas.BotaoPesquisarClick(Sender: TObject); begin if (DateEdit1.Date > dateEdit2.Date) then begin showMessage('Não é possivel pesquisar quando a data inicial for maior que a data final'); end else begin dmdados.sqlconferramentas.Close; dmdados.sqlconferramentas.ParamByName('datainicial').AsDate:=DateEdit1.Date; dmdados.sqlconferramentas.ParamByName('datafinal').AsDate:=DateEdit2.Date; dmdados.sqlconferramentas.ParamByName('controle').AsString:='%'+Edit1.Text+'%'; dmdados.sqlconferramentas.ParamByName('nome').AsString:='%'+editnome.Text+'%'; dmdados.sqlconferramentas.ParamByName('ferramenta').AsString:='%'+editferramenta.Text+'%'; dmdados.sqlconferramentas.ParamByName('nomeobra').AsString:='%'+EditObra.Text+'%'; dmdados.sqlconferramentas.Open; end; end; Código do DbGrid procedure TFrmConFerramentas.DBGrid1DblClick(Sender: TObject); var registro:integer; begin registro := dmdados.SqlConFerramentasFER_CODIGO.Value; if not assigned (frmFerramentas) then begin application.createForm( TfrmFerramentas, frmFerramentas); frmFerramentas.show; end else abort; dmdados.ibFerramentas.Edit; dmdados.IbFerramentasFer_codigo.value := registro; frmferramentas.TbConsulta.TabVisible:=false; frmferramentas.TbCadastro.TabVisible:=true; frmferramentas.dbedit2.SetFocus; end;Tentei isso mas deu errado, ele abre o primeiro registro da tabela e altera o codigo dele. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pompeu Postado Novembro 5, 2009 Denunciar Share Postado Novembro 5, 2009 'nicolasbraz'Estou meio sem tempo mas vou analizar seu codigo hj e tento postar hj ainda okAbraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pompeu Postado Novembro 6, 2009 Denunciar Share Postado Novembro 6, 2009 (editado) Tente isso ...Código do DbGrid procedure TFrmConFerramentas.DBGrid1DblClick(Sender: TObject); var registro:integer; begin registro := dmdados.SqlConFerramentasFER_CODIGO.Value; if not assigned (frmFerramentas) then begin application.createForm( TfrmFerramentas, frmFerramentas); frmFerramentas.show; end else abort; dmdados.ibFerramentas.Locate('FER_CODIGO', registro, []); dmdados.ibFerramentas.Edit; dmdados.IbFerramentasFer_codigo.value := registro; frmferramentas.TbConsulta.TabVisible:=false; frmferramentas.TbCadastro.TabVisible:=true; frmferramentas.dbedit2.SetFocus; end;O que está acontecendo é que você não está localizando o registro antes de editá-lo, creio que desta forma irá funcionarAbraço Editado Novembro 6, 2009 por Pompeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nicolasbraz Postado Novembro 9, 2009 Autor Denunciar Share Postado Novembro 9, 2009 Cara muito obrigado mesmo o código que você postou está perfeito. Só houve um erro meu, era na hora de chamar o form no caso que o form já estive-se aberto ele não acontecia nada, agora abaixo vou colocar o código funcionando redondo. procedure TFrmConFerramentas.DBGrid1DblClick(Sender: TObject); var registro:integer; begin registro := dmdados.SqlConFerramentasFER_CODIGO.Value; if not assigned (frmFerramentas) then begin application.createForm( TfrmFerramentas, frmFerramentas); frmFerramentas.show end else frmferramentas.show; dmdados.ibFerramentas.Locate('FER_CODIGO', registro, []); dmdados.ibFerramentas.Edit; dmdados.IbFerramentasFer_codigo.value := registro; frmferramentas.TbConsulta.TabVisible:=false; frmferramentas.TbCadastro.TabVisible:=true; frmferramentas.dbedit2.SetFocus; end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nicolasbraz
Eu tenho um formulario de consulta que esta ligado por um DataSource e IbQuery.
E o de cadastro que é ligado por um DataSource e IbDataset.
Gostaria de que quando eu fize-se a consulta eu desse um duplo clique no registro da consulta e eu fosse para a tela de cadastro em modo de edição.
É possivel ?
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.