Fórum Software - Venda de Passagens #217078
27/02/2004
0
Amigos,
vejam neste código: Estou querendo salvar a venda da passagem. Lembrando que duas pessoas não podem ocupar a mesma poltrona. Está dando um erro. Mesmo colocando este código aparece a mensagem de poltrona ocupada e está salvando. Vejam:
procedure TControle.BitBtn2Click(Sender: TObject);
var
sai:boolean;
begin
table1.first;
sai:= false;
while sai = false do
begin
if Table1Poltrona.value <> dbedit3.text then
begin
if botao = ´novo´ then
begin
table1.insert;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end else begin
if botao = ´alterar´ then
begin
table1.edit;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end;
end;
end else begin
Application.MessageBox(´Esta poltrona já está ocupada! Escolha outra.´, ´Poltrona Ocupada´, MB_OK+MB_ICONERROR);
sai:= true;
end;
end;
end;
Desde já agradecido!
vejam neste código: Estou querendo salvar a venda da passagem. Lembrando que duas pessoas não podem ocupar a mesma poltrona. Está dando um erro. Mesmo colocando este código aparece a mensagem de poltrona ocupada e está salvando. Vejam:
procedure TControle.BitBtn2Click(Sender: TObject);
var
sai:boolean;
begin
table1.first;
sai:= false;
while sai = false do
begin
if Table1Poltrona.value <> dbedit3.text then
begin
if botao = ´novo´ then
begin
table1.insert;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end else begin
if botao = ´alterar´ then
begin
table1.edit;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end;
end;
end else begin
Application.MessageBox(´Esta poltrona já está ocupada! Escolha outra.´, ´Poltrona Ocupada´, MB_OK+MB_ICONERROR);
sai:= true;
end;
end;
end;
Desde já agradecido!
Diegus
Curtir tópico
+ 0
Responder
Posts
28/02/2004
Thomaz_prg
Antes de tudo, eu aconselharia voce a montar procedimentos quando uma quantidade x de linhas for se repetir algumas vezes, isso facilita nao só no desenvolvimento do sistema, como também na manutenção. (digo isso pelo fato da atribuição do valor dos campos se repetir mais de uma vez de forma idêntica).
O que pode estar acontecendo, é um pequeno erro de lógica, pela forma como foram usados os if..end else... Se você colocar o else, e não tiver outra opção de resposta não há a necessidade de um novo if. se for haver mais uma opção, como é o seu caso, onde há a chamada de um novo if, não há a necessidade de se usar end else begin.
tente desta forma, nao testei mas, está um pouco mais clara.
procedure TControle.BitBtn2Click(Sender: TObject);
var
sai:boolean;
begin
table1.first;
sai:= false;
while sai = false do begin
if Table1Poltrona.value <> dbedit3.text then begin
if botao = ´novo´ then begin
table1.insert;
//inicio da parte, onde poderia ser usada uma procedure
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
//fim
sai:= true;
end else
if botao = ´alterar´ then begin
table1.edit;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end;
end else begin
Application.MessageBox(´Esta poltrona já está ocupada! Escolha outra.´, ´Poltrona Ocupada´, MB_OK+MB_ICONERROR);
sai:= true;
end;
end;
end;
O que pode estar acontecendo, é um pequeno erro de lógica, pela forma como foram usados os if..end else... Se você colocar o else, e não tiver outra opção de resposta não há a necessidade de um novo if. se for haver mais uma opção, como é o seu caso, onde há a chamada de um novo if, não há a necessidade de se usar end else begin.
tente desta forma, nao testei mas, está um pouco mais clara.
procedure TControle.BitBtn2Click(Sender: TObject);
var
sai:boolean;
begin
table1.first;
sai:= false;
while sai = false do begin
if Table1Poltrona.value <> dbedit3.text then begin
if botao = ´novo´ then begin
table1.insert;
//inicio da parte, onde poderia ser usada uma procedure
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
//fim
sai:= true;
end else
if botao = ´alterar´ then begin
table1.edit;
Table1Nome.value := DBComboBox1.Text;
Table1Destino.value :=DBComboBox2.text;
table1poltrona.value := dbedit3.text;
table1datasaida.value:= StrToDate(dbedit4.text);
table1dataretorno.value:=Strtodate(dbedit5.text);
table1valortotal.value:= strtoint(dbedit6.text);
table1qtdparcela.value:= Strtoint(dbedit7.text);
table1valorparcela.value:= strtoint(dbedit8.text);
table1.Post;
sai:= true;
end;
end else begin
Application.MessageBox(´Esta poltrona já está ocupada! Escolha outra.´, ´Poltrona Ocupada´, MB_OK+MB_ICONERROR);
sai:= true;
end;
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)