Somar campos
Colegas me embananei todo, não sei nem o que fiz, alguem pode me ajudar?
Coloquei 5 edit’s para somar valores e ter o resultado em um 6 edit
Obs1 me desculpe-me mais sou iniciante estou tentando aprender
Obs2 pode ser feito com dbedit&8217;s com os valores já determinado na tabela?
Veja como eh a lógica do meu programa
Edit2+edit4+edit5+edit6+edit7=edit8
Veja uma dica que peguei
procedure TF_pesquisa.Edit8Exit(Sender: TObject);
begin
try
edit2 := strtofloat(Trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit4 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit5 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit6 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit7 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit8 := edit2 + edit4 + edit5 + edit6 + edit7
edit8.text := floattostr(edit8);
end;
end.
Veja como eu tenho
var
ValorString: String;
begin
if dbEdit3.text = ´´ then
dbedit3.text := ´0.00´
else
begin
valorstring := CopiaDireita(dbEdit3.Text, ´ ´);
valorstring := BuscaTroca(ValorString, ´,´, ´´);
dbedit16.text:=formatfloat(´R$ #,,,00.00´,strtofloat(copy(dbedit3.text,4,length(dbedit3.text)))+strtofloat
(copy(dbedit10.text,4,length(dbedit10.text)))+strtofloat(copy(dbedit12.text,4,length(dbedit12.text)))+strtofloat
(copy(dbedit14.text,4,length(dbedit14.text)))+strtofloat(copy(dbedit18.text,4,length(dbedit18.text))));
end;
So que dessa forma a cada produto que eu seleciono se o valor for diferente ele assume a soma total com o preço do ultimo produto selecionado
Ex:
Produto1 = 3,00
Produto2 = 2,50
Produto3 = 1,50
Produto4 = 3,00
Produto5 = 2,00
Total =10,00 (ele assume o ultimo valor 2,00 para os produtos anteriores e me da o resultado de 10,00 o que estou fazendo de err
Obrigado
Coloquei 5 edit’s para somar valores e ter o resultado em um 6 edit
Obs1 me desculpe-me mais sou iniciante estou tentando aprender
Obs2 pode ser feito com dbedit&8217;s com os valores já determinado na tabela?
Veja como eh a lógica do meu programa
Edit2+edit4+edit5+edit6+edit7=edit8
Veja uma dica que peguei
procedure TF_pesquisa.Edit8Exit(Sender: TObject);
begin
try
edit2 := strtofloat(Trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit4 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit5 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit6 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
try
edit7 := strtofloat(trim(edit8.text))
except
showmessage(´isto não é um número válido´);
end;
edit8 := edit2 + edit4 + edit5 + edit6 + edit7
edit8.text := floattostr(edit8);
end;
end.
Veja como eu tenho
var
ValorString: String;
begin
if dbEdit3.text = ´´ then
dbedit3.text := ´0.00´
else
begin
valorstring := CopiaDireita(dbEdit3.Text, ´ ´);
valorstring := BuscaTroca(ValorString, ´,´, ´´);
dbedit16.text:=formatfloat(´R$ #,,,00.00´,strtofloat(copy(dbedit3.text,4,length(dbedit3.text)))+strtofloat
(copy(dbedit10.text,4,length(dbedit10.text)))+strtofloat(copy(dbedit12.text,4,length(dbedit12.text)))+strtofloat
(copy(dbedit14.text,4,length(dbedit14.text)))+strtofloat(copy(dbedit18.text,4,length(dbedit18.text))));
end;
So que dessa forma a cada produto que eu seleciono se o valor for diferente ele assume a soma total com o preço do ultimo produto selecionado
Ex:
Produto1 = 3,00
Produto2 = 2,50
Produto3 = 1,50
Produto4 = 3,00
Produto5 = 2,00
Total =10,00 (ele assume o ultimo valor 2,00 para os produtos anteriores e me da o resultado de 10,00 o que estou fazendo de err
Obrigado
Wagner
Curtidas 0
Respostas
Marcelo
05/11/2003
Oi,,, acho que posso te ajudar...
Veja o procedimento abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
try
Edit6.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit6.Text := FloatToStr( StrToFloat( Edit6.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit6.Text := FormatFloat( ´R$ #,,,00.00´, StrToFloat( Edit6.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;
Ela funciona, mas para que seja possivel, os 6 primeiros objetos inseridos no form terao que ser TEdit´s .
Valeu?
at+vr...
Veja o procedimento abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
try
Edit6.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit6.Text := FloatToStr( StrToFloat( Edit6.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit6.Text := FormatFloat( ´R$ #,,,00.00´, StrToFloat( Edit6.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;
Ela funciona, mas para que seja possivel, os 6 primeiros objetos inseridos no form terao que ser TEdit´s .
Valeu?
at+vr...
GOSTEI 0
Wagner
05/11/2003
Como sou iniciante, pra variar não entendi muito bem, então fiz dessa forma:
Coloquei para para cada evento onexit do meu edit coloquei sua dica, acontece que os valores ficam zerados e nao acrescenta nada na soma total o que eu estou fazendo de erradao?
var
i : Integer;
begin
try
edit2.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit8.Text := FloatToStr( StrToFloat( Edit2.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit8.Text := FormatFloat( ´R$ #,,,0.00´, StrToFloat( Edit2.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;
Coloquei para para cada evento onexit do meu edit coloquei sua dica, acontece que os valores ficam zerados e nao acrescenta nada na soma total o que eu estou fazendo de erradao?
var
i : Integer;
begin
try
edit2.Text := ´0´;
for i := 0 to 5 do
if Components[i] is TEdit then
Edit8.Text := FloatToStr( StrToFloat( Edit2.Text ) + StrToFloat( TEdit( Components[i] ).Text ));
Edit8.Text := FormatFloat( ´R$ #,,,0.00´, StrToFloat( Edit2.Text ));
except
ShowMessage( ´Exite algum valor invalido...´ );
end;
end;
GOSTEI 0
Wagner
05/11/2003
Fiz dessa forma que voce explicou mais os campos estam assumindo os valores (0) zerados veja bem se voce entendeu como eu queria
dbedit1 + dbedit2 + dbedit3 + dbedit4 + dbedit5 = dbedit6
valor1 3,00 dbedit1
valor2 4,00 dbedit2
valor3 3,00 dbedit3
valor4 3,00 dbedit4
valor5 1,00 dbedit5
valor6 14,00 dbedit6
Uso paradox e o tipo de campo dos meus valores N e nao $ (sera isso que esta errado?)
Ajude-me mais uma vez por favor
dbedit1 + dbedit2 + dbedit3 + dbedit4 + dbedit5 = dbedit6
valor1 3,00 dbedit1
valor2 4,00 dbedit2
valor3 3,00 dbedit3
valor4 3,00 dbedit4
valor5 1,00 dbedit5
valor6 14,00 dbedit6
Uso paradox e o tipo de campo dos meus valores N e nao $ (sera isso que esta errado?)
Ajude-me mais uma vez por favor
GOSTEI 0
Carlos Bernardo
05/11/2003
Meu , não é porque vce começa a cópia a partir da 4 posição, tente usar 1 em vez de quatro.
GOSTEI 0