[delphi-br] Ajuda com Filtro para abrir formulario..
Boa noite senhores, me desculpe fazer duas perguntas mas eu estou precisando de uma grande ajuda, 1- Tenho uma aplicação de filtro de agenda medica onde tem um form inicial onde e informdo o nome do medico através de um dbedit onde e informado o nome do medico e um Edit que e informado a data, e um botão que chama um formulário com um grid com as consultas do dia, após chamar a primeira vez o grid vem em branco apos fechar e chamar a segunda vez pelo botão ele abre com a consulta, o codigo do botão e o seguinte: procedure TFrmCons.SpeedButton1Click(Sender: TObject); Var EdtMedico :Integer; EdtData:String; begin FrmConsultaMedico.ShowModal; FrmConsultaMEdico.ADOQuery1.Close; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] :=Edmedico.Text; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := EdData.Text; frmConsultaMedico.ADOQuery1.Open; end; 2 - Neste mesmo Grid inseri um função no evento OnDbClick, para chamar o formulário de Prontuário medico, após click duplo ele abre o form com o registro selecionado no grid, mas se fecho o formulario e seleciono o registro ele abre com o mesmo selecionado anteriormente o código e o seguinte: procedure TFrmConsultamedico.DBGrid1DblClick(Sender: TObject); begin DadosMedico.AdConsulta1.Locate('Medico',AdoQuery1.fieldbyname('codigo').asInteger,[]); FrmModMedicoConsulta.Showmodal; end; Como devo fazer nestes casos ? Desde já agradeço a atenção de todos. Danilo Moura
RES: [delphi-br] Ajuda com Filtro para abrir formulario..
Opa, tudo certo? Seguinte, você está chamando o formulário 2 com ShowModal, isso quer dizer que sistema irá esperar os processos serem executados no formulário 2, para depois passar pelo código que existe abaixo dele. Faça assim e deve funcionar ok. Var EdtMedico :Integer; EdtData:String; begin FrmConsultaMEdico.ADOQuery1.Close; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] :=Edmedico.Text; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := EdData.Text; frmConsultaMedico.ADOQuery1.Open; FrmConsultaMedico.ShowModal; Aconselho você a criar parâmetros no formulário 2, para evitar código manipulando o formulário de outro formulário, por exemplo: No formulário 2: Public VMedido : Integer; VData : TDateTime; No FormShow (ou em qualquer outro evento do segundo formulário): FrmConsultaMEdico.ADOQuery1.Close; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] :=VMedico; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := VData; frmConsultaMedico.ADOQuery1.Open; No primeiro formulário, o código ficaria reduzido a: Var EdtMedico :Integer; EdtData:String; begin FrmConsultaMedico.VMedido := EdtMedido; FrmConsultaMedico.VData := EdtData; (aqui o edtdata deve seguir um typecast ou ser do tipo date) FrmConsultaMedico.ShowModal; Quanto a segunda duvida: Não existe nenhum tipo de enablecontrols/disablecontrols no FrmModMedicoConsulta né? Tente fechar e abrir novamente o dataset, caso o resultado seja positivo poste aqui para que possamos melhorar isso. Até mais. Vitor. _ De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de dssmoura Enviada em: quinta-feira, 14 de janeiro de 2010 21:36 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Ajuda com Filtro para abrir formulario.. Boa noite senhores, me desculpe fazer duas perguntas mas eu estou precisando de uma grande ajuda, 1- Tenho uma aplicação de filtro de agenda medica onde tem um form inicial onde e informdo o nome do medico através de um dbedit onde e informado o nome do medico e um Edit que e informado a data, e um botão que chama um formulário com um grid com as consultas do dia, após chamar a primeira vez o grid vem em branco apos fechar e chamar a segunda vez pelo botão ele abre com a consulta, o codigo do botão e o seguinte: procedure TFrmCons.SpeedButton1Click(Sender: TObject); Var EdtMedico :Integer; EdtData:String; begin FrmConsultaMedico.ShowModal; FrmConsultaMEdico.ADOQuery1.Close; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] :=Edmedico.Text; frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := EdData.Text; frmConsultaMedico.ADOQuery1.Open; end; 2 - Neste mesmo Grid inseri um função no evento OnDbClick, para chamar o formulário de Prontuário medico, após click duplo ele abre o form com o registro selecionado no grid, mas se fecho o formulario e seleciono o registro ele abre com o mesmo selecionado anteriormente o código e o seguinte: procedure TFrmConsultamedico.DBGrid1DblClick(Sender: TObject); begin DadosMedico.AdConsulta1.Locate('Medico',AdoQuery1.fieldbyname('codigo').asIn teger,[]); FrmModMedicoConsulta.Showmodal; end; Como devo fazer nestes casos ? Desde já agradeço a atenção de todos. Danilo Moura [As partes desta mensagem que não continham texto foram removidas]
Re: RES: [delphi-br] Ajuda com Filtro para abrir formulario..
Boa noite vitor , seguinte a primeira duvida foi resonvida , pela sua primeira sugestão matou o problema, agora quanto ao segundo voce perguntou "Não existe nenhum tipo de enablecontrols/disablecontrols.." desculpe minha ignorancia mas eu não sei do qeu se trata essas funções, voce disse tambem "ente fechar e abrir novamente o dataset" no caso como seria aplicado esta função ? Obrigado pela atenção. Danilo Moura --- Em delphi-br@yahoogrupos.com.br, "Vitor Yahoo" escreveu > > Opa, tudo certo? > > Seguinte, você está chamando o formulário 2 com ShowModal, isso quer dizer > que sistema irá esperar os processos serem executados no formulário 2, para > depois passar pelo código que existe abaixo dele. > > Faça assim e deve funcionar ok. > > > > Var > EdtMedico :Integer; > EdtData:String; > begin > > FrmConsultaMEdico.ADOQuery1.Close; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] > :=Edmedico.Text; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := > EdData.Text; > frmConsultaMedico.ADOQuery1.Open; > FrmConsultaMedico.ShowModal; > > > > Aconselho você a criar parâmetros no formulário 2, para evitar código > manipulando o formulário de outro formulário, por exemplo: > > > > No formulário 2: > > > > Public > > VMedido : Integer; > > VData : TDateTime; > > > > No FormShow (ou em qualquer outro evento do segundo formulário): > > > > FrmConsultaMEdico.ADOQuery1.Close; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] :=VMedico; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := VData; > frmConsultaMedico.ADOQuery1.Open; > > > > No primeiro formulário, o código ficaria reduzido a: > > > Var > EdtMedico :Integer; > EdtData:String; > begin > > FrmConsultaMedico.VMedido := EdtMedido; > > FrmConsultaMedico.VData := EdtData; (aqui o edtdata deve seguir um typecast > ou ser do tipo date) > > FrmConsultaMedico.ShowModal; > > > Quanto a segunda duvida: > > > > Não existe nenhum tipo de enablecontrols/disablecontrols no > FrmModMedicoConsulta né? Tente fechar e abrir novamente o dataset, caso o > resultado seja positivo poste aqui para que possamos melhorar isso. > > > > Até mais. > > Vitor. > > > > > > _ > > De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em > nome de dssmoura > Enviada em: quinta-feira, 14 de janeiro de 2010 21:36 > Para: delphi-br@yahoogrupos.com.br > Assunto: [delphi-br] Ajuda com Filtro para abrir formulario.. > > > > > > Boa noite senhores, me desculpe fazer duas perguntas mas eu estou precisando > de uma grande ajuda, > > 1- Tenho uma aplicação de filtro de agenda medica onde tem um form inicial > onde e informdo o nome do medico > > através de um dbedit onde e informado o nome do medico e um Edit que e > informado a data, e um botão que chama > > um formulário com um grid com as consultas do dia, após chamar a primeira > vez o grid vem em branco apos fechar > > e chamar a segunda vez pelo botão ele abre com a consulta, o codigo do botão > e o seguinte: > > procedure TFrmCons.SpeedButton1Click(Sender: TObject); > Var > EdtMedico :Integer; > EdtData:String; > begin > FrmConsultaMedico.ShowModal; > FrmConsultaMEdico.ADOQuery1.Close; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtMedico'] > :=Edmedico.Text; > frmConsultaMedico.ADOQuery1.Parameters.ParamValues['EdtData'] := > EdData.Text; > frmConsultaMedico.ADOQuery1.Open; > end; > > 2 - Neste mesmo Grid inseri um função no evento OnDbClick, para chamar o > formulário de Prontuário medico, após > > click duplo ele abre o form com o registro selecionado no grid, mas se fecho > o formulario e seleciono o > > registro ele abre com o mesmo selecionado anteriormente o código e o > seguinte: > > procedure TFrmConsultamedico.DBGrid1DblClick(Sender: TObject); > begin > DadosMedico.AdConsulta1.Locate('Medico',AdoQuery1.fieldbyname('codigo').asIn > teger,[]); > FrmModMedicoConsulta.Showmodal; > end; > > Como devo fazer nestes casos ? > > Desde já agradeço a atenção de todos. > > Danilo Moura > > > > > > [As partes desta mensagem que não continham texto foram removidas] >