Fórum Problemas com IF THEN ELSE #281722

15/05/2005

0

Estou com este velho problema...analizem...tenho uma parte do programa que vai analizar se existe informações gravadas no BD se existir, aparece uma pergunta onde nesta pergunta posso optar por sim ou não e no sim ele imprimir um DOC e pressionando o botão de NAO para por ali mesmo...isto se tiver algo no banco de dados, más caso naum tenha ele analiza um edit onde vai validar uma data caso o campo esteja vazio uma menssagem e setfocus neste edit, isto se naum tiver data, caso contrário ele vai para a próxima validação, más estou mesmo com problema neste primeiro trecho...veja a função completa ...



procedure T_FormContas.Button2Click(Sender: TObject);
begin
  if Query1.RecordCount <> 0 then
  begin
  if Application.MessageBox(´Já foram geradas parcelas para este documento, deseja imprimi-las ?´ , ´Imprimir.´, MB_ICONQUESTION
    + MB_YESNO) = IDYES then
    ZReport1.Preview;
  if eddata.Text =´  /  /    ´ then Showmessage (´É requerido que o campo data esteja preenchido´)
  else
  if Label13.Caption = ´Não´ then showmessage(´Atenção !!! Crédito bloqueado.´)
  else
  begin
  Table2.Refresh;
  Query1.Open;
  if edvalor.text = ´´ then GeraErroValorTotal(Sender)
  else
  Geraparcelas(Sender);
  end;
  end;
end;


Valeu t+





Gigatel

Gigatel

Responder

Posts

16/05/2005

Massuda

Estou com este velho problema... ... veja a função completa ...
procedure T_FormContas.Button2Click(Sender: TObject);
begin
  if Query1.RecordCount <> 0 then
...
Não entendo muito de BD, mas pelo que me lembro, não é uma boa idéia usar RecordCount em uma query; em muitos casos, retorna zero mesmo a query tendo retornado dados. Use a função SQL COUNT no lugar do RecordCount.


Responder

Gostei + 0

16/05/2005

Rjun

Acho que seu código não esta correto. Pelo que você descreveu, o correto seria :

procedure T_FormContas.Button2Click(Sender: TObject); 
begin 
  if Query1.RecordCount <> 0 then 
  begin 
    if Application.MessageBox(´Já foram geradas parcelas para este documento, deseja imprimi-las?´ , ´Imprimir.´, MB_ICONQUESTION + MB_YESNO) = IDYES then 
      ZReport1.Preview; 
  end
  else
  begin
    if eddata.Text =´  /  /    ´ then 
      Showmessage (´É requerido que o campo data esteja        preenchido´) 
    else if Label13.Caption = ´Não´ then 
       showmessage(´Atenção !!! Crédito bloqueado.´) 
    else 
    begin 
      Table2.Refresh; 
      Query1.Open; 
      if edvalor.text = ´´ then 
        GeraErroValorTotal(Sender) 
      else 
        Geraparcelas(Sender); 
    end; 
  end; 
end; 



Responder

Gostei + 0

16/05/2005

Gandalf.nho

Se vc só quer ver se há registros na query, use IsEmpty no lugar de RecordCount.


Responder

Gostei + 0

16/05/2005

Gigatel

Acho que seu código não esta correto. Pelo que você descreveu, o correto seria :
procedure T_FormContas.Button2Click(Sender: TObject); 
begin 
  if Query1.RecordCount <> 0 then 
  begin 
    if Application.MessageBox(´Já foram geradas parcelas para este documento, deseja imprimi-las?´ , ´Imprimir.´, MB_ICONQUESTION + MB_YESNO) = IDYES then 
      ZReport1.Preview; 
  end
  else
  begin
    if eddata.Text =´  /  /    ´ then 
      Showmessage (´É requerido que o campo data esteja        preenchido´) 
    else if Label13.Caption = ´Não´ then 
       showmessage(´Atenção !!! Crédito bloqueado.´) 
    else 
    begin 
      Table2.Refresh; 
      Query1.Open; 
      if edvalor.text = ´´ then 
        GeraErroValorTotal(Sender) 
      else 
        Geraparcelas(Sender); 
    end; 
  end; 
end; 



Valeu deu certinho agora...

Agora como ficaria na função o caso do RecordCount ?


blz... valeu...


Responder

Gostei + 0

16/05/2005

Delphi32

Ficaria assim:

procedure T_FormContas.Button2Click(Sender: TObject); 
begin 
  if not Query1.IsEmpty then 
  begin 
    if Application.MessageBox(´Já foram geradas parcelas para este documento, deseja imprimi-las?´ , ´Imprimir.´, MB_ICONQUESTION + MB_YESNO) = IDYES then 
      ZReport1.Preview; 
  end 
  else 
  begin 
    if eddata.Text =´  /  /    ´ then 
      Showmessage (´É requerido que o campo data esteja        preenchido´) 
    else if Label13.Caption = ´Não´ then 
       showmessage(´Atenção !!! Crédito bloqueado.´) 
    else 
    begin 
      Table2.Refresh; 
      Query1.Open; 
      if edvalor.text = ´´ then 
        GeraErroValorTotal(Sender) 
      else 
        Geraparcelas(Sender); 
    end; 
  end; 
end;


Até!


Responder

Gostei + 0

16/05/2005

Gigatel

begin if not Query1.IsEmpty then begin Deixa eu explicar...tenho 2 tabelas uma ligada a outra ..quando dou o insert na tabela a segunda tabela fica vazia, aí tenho um botão que gera iformações para esta 2º table é imprime, quando clico no botão novamente caso tenha alguma informação na tabela ela só pergunta se quer imprimir...com esta função parece que verifica a tabela toda, ou seja com a tabela em modo de insert a função já pergunta se quer imprimir em vez de gerar as informações...mais valeu mesmo, se tiver uma outra idéia, estou abertoa qualquer sujestão que melhore meu sistema ....muito obrigado mesmo...t+



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar