Problemas com IF THEN ELSE
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
Curtidas 0
Respostas
Massuda
15/05/2005
Estou com este velho problema...
...
veja a função completa ...
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.procedure T_FormContas.Button2Click(Sender: TObject); begin if Query1.RecordCount <> 0 then ...
GOSTEI 0
Rjun
15/05/2005
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;
GOSTEI 0
Gandalf.nho
15/05/2005
Se vc só quer ver se há registros na query, use IsEmpty no lugar de RecordCount.
GOSTEI 0
Gigatel
15/05/2005
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...
GOSTEI 0
Delphi32
15/05/2005
Ficaria assim:
Até!
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é!
GOSTEI 0
Gigatel
15/05/2005
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+
GOSTEI 0