Fórum Erro nos if end else.. #330049
25/09/2006
0
If BD_VENDA_ITENS.RecordCount = 0 then begin Close; end else if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA.Cancel; Close; end else BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; Close;
o que poderia ser ?
vlw t+
Gigatel
Curtir tópico
+ 0Posts
25/09/2006
Gigatel
o erro só dá se eu respoder não, se responder sim passa legal...flw
Gostei + 0
25/09/2006
Gigatel
If BD_VENDA_ITENS.RecordCount = 0 then begin Close; end else if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; Close; end else BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; Close; end;
flw..
Gostei + 0
26/09/2006
Rjun
if BD_VENDA_ITENS.RecordCount = 0 then Close; if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; Close; end else begin BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; Close; end;
Esta faltando um begin após o ELSE.
Gostei + 0
26/09/2006
Gigatel
if BD_VENDA_ITENS.RecordCount = 0 then Close; if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; Close; end else begin BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; Close; end;
Vlw deu certo, más curiosamente teve que ficar assim
If BD_VENDA_ITENS.RecordCount = 0 then begin Close; end else if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; Close; end else begin BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; Close; end;
no seu código mesmo a tabela BD_VENDA_ITENS não tendo nada ele me fazia a pergunta se eu queria concluir a compra, ou seja ele não estava dando o close no form...más vlw...deu certinho t+
Gostei + 0
26/09/2006
Rjun
Gostei + 0
26/09/2006
Gigatel
é o seguinte, esta função fica em um boton onde quando é clicado ele verifica se existe dados em uma tabela, quando num tem nada ele sai sem fazer pergunta, e quando tem alguma coisa no banco de dados ele pergunta que que salvar e sai do form imaginado que o usuário tenha esquecido de salvar, caso não tenha esquecido o programa cancela o procedimento e sai do form .
Gostei + 0
26/09/2006
Rjun
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if (BD_VENDA_ITENS.RecordCount > 0) ConcluiOperacaoAtual(); end; procedure CocluiOperacaoAtual; begin if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; end else begin BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; end; end;
Outra questão. No while você apaga todos os itens. Você não deveria apagar só os da venda atual? Ou você só guarda os itens da venda atual?
Gostei + 0
26/09/2006
Gigatel
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if (BD_VENDA_ITENS.RecordCount > 0) ConcluiOperacaoAtual(); end; procedure CocluiOperacaoAtual; begin if Application.MessageBox(PAnsiChar(´Deseja concluir esta compra ?´), ´Pergunta´, MB_ICONQUESTION + MB_YESNO) <> IDYES then begin BD_VENDA_ITENS.First; while not BD_VENDA_ITENS.Eof do BD_VENDA_ITENS.Delete; BD_VENDA.Cancel; end else begin BD_VENDA.Edit; BD_VENDAGS_VEN_VALOR_TOTAL.Value := label10.Caption; BD_VENDA.Post; end; end;
O programa trabalha com duas tabelas em conjunto uma chamada BD_VENDA e outra chamada BD_VENDA_ITENS, quando dou um insert na tabela ela cria um código ( isto na tabela BD_VENDAS ) e toda vez que insiro um ítem (BD_VENDA_ITENS) um campo recebe o valor dó código gerado, e com isso aplico um filtro onde fica somente na tabela os ítens dakela venda, aí num dá problema, só exclui akeles ítens mesmo...
más vlw a sua dica foi importantissimo, num tinha pensado nesta questão valeu pela ajuda..
..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)