Jump to content
Fórum Script Brasil
  • 0

Trabalhar com valor monetário


MagoDanger

Question

Olá pessoal, estou precisando criar uma tela de vendas, aonde os produtos vão receber valores, será feito a soma e no final dar o resultado total da compra...

Isso já está pronto, porém estou tendo problema com o seguinte, meu cliente quer que o valor seja monetário porém não deverá levar o R$).

Por exemplo, hoje após toda a soma o valor total fica R$ 1.580,00 ele quer que fique apenas 1.580,00

tentei fazer alteração aqui mas por algum motivo não está dando certo.

O que fiz: (Obs.: Banco de dados ACCESS)

Alterei no banco de dados os campos de MONETARIO para NUMÉRICO

Depois a programação, fiz assim:

var
soma1: Double;
begin
soma1 := 0;
begin
  soma1 := soma1 + dm.q_vendas_detal.Fieldbyname('valor_final').Value;
  dm.q_vendas_detal.Next;
  v_total1.Caption := FloatToStrF(soma1,ffgeneral , 15,2);
  dbe_quant2.text := '0';
  dbe_desconto2.text := '0';
  dbe_venc_garantia.clear;
  v_total.text := v_total1.caption;
end; end;

Porém nesse caso, o valor final se for 5000,00 fica apenas 5000... se for 10,00 fica 10....

tentei usar também o ffNumber, mas o problema continua...

Alguém pode me ajudar?

Obrigado. Abraços.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Pessoal, eu fui fazendo uns testes aqui até que de uma forma deu certo... será que vou ter problemas futuros trabalhando dessa forma:

Os campos da tabela passei para o tipo de dados TEXTO

Depois fiz a formatação dos dados assim:

Edit1.text := FormatFloat('###,###,#0.00',valor);
depois como a opção acima dava erro porque formatava dessa forma: 1.000,00 Fiz o seguinte:
Edit1.text := FormatFloat('#######0.00',valor);

Dessa forma consegui ter o resultado 1000,00

Bom, ficou da forma como meu cliente desejava, acredito que não tenha problema em guardar esses dados em um campo TEXTO... tem?

Obrigado. Abraços!

Link to comment
Share on other sites

  • 0

procedure TForm1.Button1Click(Sender: TObject);
var valor : real;
begin
   SysLocale.MiddleEast := true;
   Edit1.BiDiMode := bdRightToLeft; // alinha o valor a direita

   valor := 5000;
   Edit1.text := FormatFloat('0.00',valor);

   CurrencyEdit1.DisplayFormat := '0.00;-0.00'; // aceita valores positivos e negativos
   CurrencyEdit1.Value := valor
end;

OBS: no banco de dados use campo tipo float ou double, pois isso independe de como voce vai mostar na tela

se voce usar tipo texto vai ter que ficar convertendo o valor para poder calcular

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...