Erro ShowMessage

07/12/2003

1

Como fazer para interceptar o erro, emitir uma menssagem e sair do procedimento quando, as datas não forem preenchidas ou a data inicial for maior que a data final?
Estou usando esta consulta:


procedure TfrmConsulta.SpeedButton1Click(Sender: TObject);
begin

qOSnull.Close;
qOSnull.SQL.Clear;
qSomanull.Close;
qSomanull.SQL.Clear;

qOSnull.SQL.Add(´Select OS, Codigo, Aparelho, Marca, Entrada, Orcamento, Saida, DtaExe, Tecnico, Maodeobra, Comissao, Totalpecas, TotalGeral From tlbOrdemServ Where Aparelho Like :Apa And Entrada Between :Data1 And :Data2´);
qSomanull.SQL.Add(´Select Sum(tlbOrdemServ. Maodeobra) As Servico, Sum(tlbOrdemServ.Comissao) As Cota, Sum(tlbOrdemServ.Totalpecas) As Pecas, Sum(tlbOrdemServ.TotalGeral) As Total From tlbOrdemServ Where Aparelho Like :Apa And Entrada Between :Data1 And :Data2´);
qOSnull.Parameters.ParamByName(´Apa´).Value:=´¬´+Edit1.Text+´¬´;
qOSnull.Parameters.ParamByName(´Data1´).Value:=MaskEdit1.Text;
qOSnull.Parameters.ParamByName(´Data2´).Value:=Maskedit2.Text;
qSomanull.Parameters.ParamByName(´Apa´).Value:=´¬´+Edit1.Text+´¬´;
qSomanull.Parameters.ParamByName(´Data1´).Value:=MaskEdit1.Text;
qSomanull.Parameters.ParamByName(´Data2´).Value:=Maskedit2.Text;
qOSnull.Open;
qSomanull.Open;
speedbutton1.Flat:=true;
end;


Responder

Posts

07/12/2003

Adilsond

if Trim(MaskEdit1.Text) = ´/ /´ then
begin
MaskEdit1.SetFocus;
Raise Exception.Create(´Informe a data inicial.´);
end;
if Trim(MaskEdit2.Text) = ´/ /´ then
begin
MaskEdit2.SetFocus;
Raise Exception.Create(´Informe a data final.´);
end;
try
StrToDate(MaskEdit1.Text);
except
MaskEdit1.SetFocus;
Raise Exception.Create(´Data inicial inválida.´);
end;
try
StrToDate(MaskEdit2.Text);
except
MaskEdit2.SetFocus;
Raise Exception.Create(´Data final inválida.´);
end;
if StrToDate(MaskEdit2.Text) < StrToDate(MaskEdit1.Text) then
begin
MaskEdit1.SetFocus;
Raise Exception.Create(´Data inicial menor que a data final.´);
end;
coloque aqui o seu código


Responder

08/12/2003

Sparch

Achei o codigo bastante interessante, postei-o novamente somente com a formatação...

if Trim(MaskEdit1.Text) = ´/ /´ then
 begin
   MaskEdit1.SetFocus;
   Raise Exception.Create(´Informe a data inicial.´);
 end;

if Trim(MaskEdit2.Text) = ´/ /´ then
 begin
   MaskEdit2.SetFocus;
   Raise Exception.Create(´Informe a data final.´);
 end;

try
  StrToDate(MaskEdit1.Text);
  except
  MaskEdit1.SetFocus;
  Raise Exception.Create(´Data inicial inválida.´);
end;

try
  StrToDate(MaskEdit2.Text);
  except
  MaskEdit2.SetFocus;
  Raise Exception.Create(´Data final inválida.´);
end;

if StrToDate(MaskEdit2.Text) < StrToDate(MaskEdit1.Text) then
 begin
    MaskEdit1.SetFocus;
    Raise Exception.Create(´Data inicial menor que a data final.´);
 end;
//coloque aqui o seu código



Responder