Campos Monetários !!!! Como devo fazer ?

Delphi

21/01/2004

Pessoal ,

Tenho uma base de dados em access 3 campos monetários onde :

Valor_de_Compra
Valor_comercial
Valor_Estoque

Tenho dois campos inteiros onde :

Margem de lucro e Quantidade.

Gostaria que no evento onexit de <<Margem de lucro>>

Fizesse o seguinte :

VARIAVEL := Valor_de_Compra * Margem de lucro / 100 ; // calcular porcentagem de venda.

E ainda : VARIAVEL := Valor_de_Compra + VARIAVEL; // Resuldo p/ VALOR COMERCIAL.

COMO VOU FAZER SENDO QUE ESTOU USANDO DBEDITS PARA :
VALOR DE COMPRA, VALOR COMERCIAL E MARGEM DE LUCRO !

DEVO TRANSFORMAR OS DBEDITS DE strTofloat ?

Fiz assim e ta dando erro...:

procedure TFrmPrincipal.DBEdit24Exit(Sender: TObject);
begin
if (DmCV.QryProduto.State in [dsEdit,dsInsert])and (DBEdit16.Text <>´´) Then
begin
Valor_A := StrToFloat(DBEdit16.Text);
Valor_B := StrToFloat(DBEdit24.Text);
Resultado := Valor_A * Valor_B/100;
Resultado := Valor_A + Resultado;
DBEdit28.Text := FloatToStr(Resultado);
RxDBCalcEdit2.SetFocus;
end;
end;


Jonasaf

Jonasaf

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

21/01/2004

porque nao funciona? da erro ou soh nao funciona satisfatoriamente?

tente ao inves de StrToFloat, StrToCurr...
ele transforma em valor monetario...
quem sabe


GOSTEI 0
Macario

Macario

21/01/2004

Verifique se a variavel Resultado é do tipo double


e vc pode usar

procedure TFrmPrincipal.DBEdit24Exit(Sender: TObject);
begin
if (DmCV.QryProduto.State in [dsEdit,dsInsert])and (DBEdit16.Text <>´´) Then
begin
Resultado := DBEdit16.value*DBEdit24.value/100;
Resultado := Valor_A + Resultado;
DBEdit28.value := Resultado;
RxDBCalcEdit2.SetFocus;
end;
end;


GOSTEI 0
Jonasaf

Jonasaf

21/01/2004

Verifique se a variavel Resultado é do tipo double e vc pode usar procedure TFrmPrincipal.DBEdit24Exit(Sender: TObject); begin if (DmCV.QryProduto.State in [dsEdit,dsInsert])and (DBEdit16.Text <>´´) Then begin Resultado := DBEdit16.value*DBEdit24.value/100; Resultado := Valor_A + Resultado; DBEdit28.value := Resultado; RxDBCalcEdit2.SetFocus; end; end;


Como declaro Resultado como double.. eu declarei essa variavel global jutno com as outras... sendo que elas estao em REAL... !

o campo monetários e ascurrency.. do access..


GOSTEI 0
Macario

Macario

21/01/2004

ficaria assim

procedure TFrmPrincipal.DBEdit24Exit(Sender: TObject);
[color=red:40832cad53]var Resultado : double[/color:40832cad53]
begin
if (DmCV.QryProduto.State in [dsEdit,dsInsert])and (DBEdit16.Text <>´´) Then
begin
Resultado := (DBEdit16.value*DBEdit24.value)/100;
Resultado := DBEdit16.value+ Resultado;
DBEdit28.value := Resultado;
RxDBCalcEdit2.SetFocus;
end;
end;


qualquer duvida estou no msn


GOSTEI 0
Rômulo Barros

Rômulo Barros

21/01/2004

É mais fácil utilizar um campo calculado invisível para isso e, em seguida, adicionar o valor dele no campo q vc quer......


GOSTEI 0
POSTAR