Problemas com a Formatação (FormatFloat)

Delphi

12/12/2007

Olá pessoal,

Estou fazendo o seguinte para salvar os dados em minha tabela do campo de valor que é [b:33be68b9c2]Numeric (5,2)[/b:33be68b9c2] tipo assim eu gravo para salvar, assim exemplo:

[b:33be68b9c2]126,96[/b:33be68b9c2] e ele salva no banco de dados assim:
[b:33be68b9c2]12.696,00[/b:33be68b9c2], mas mostra no DbGrid assim:
[b:33be68b9c2]12696[/b:33be68b9c2].

Eu uso o Delphi 7 e Firebird,

Bom,

eu faço o seguinte para vocês entederem o que eu quero:

Eu falo quantas parcelas quero e quais valor e apartir de tal vencimento e ai eu gero as parcelas vizualizando em um DbGrid e uso um MemoryData (RxLib) para mostrar os dados, esse são os dados do botão que faz gerar as parcela e mostrar no grid:

[b:33be68b9c2]
TblPar = RxMemoryData
TxtVen = Edit da data de vencimento
TxtPar = Edit da quantidade de parcelas a gerar
TxtVAL = Edit do valor das parcelas
[/b:33be68b9c2]

procedure Tfrmcadlan.SpbGeParClick(Sender: TObject);
var a, prazo : integer; data : TDate;
begin
   if ( not tblPar.Active ) then tblPar.Open else tblPar.EmptyTable;

   data  := StrToDate( txtVen.Text );

   prazo := 30;

   for a := 1 to StrToInt( txtPar.Text ) do
   begin
      with tblPar do
      begin
         Insert;
         Fields[00].AsInteger  := a;
         Fields[01].AsDateTime := data;
         Fields[02].AsCurrency := StrToFloat( txtVal.Text );
         Post;
      end;
      data := ( data + prazo );
   end;

end;


E esse é os dados do botão de salvar, onde está a mascara!

procedure Tfrmcadlan.spbsalClick(Sender: TObject);
var vCod, vNom : String;
edit : Integer;
begin
   with vcpo do
     begin
        clear;
        add (´Aluno´);
        add (´Historico´);
        add (´Valor´);
        add (´Vencimento´);
        add (´Emissao´);
        Add (´Tipo´);
     end;
   tblPar.First;
   while ( not tblPar.eof ) do
   begin
      with vvlr do
      begin
         clear;
         add (#39 + TxtCod.Text + 39);
         Add (39 + tblPar.Fields[00].DisplayText + 39);
         Add (39 + FormatFloat(´,,0.00´, tblPar.Fields[02].AsFloat) + 39);
         add (39 + FormatDateTime (´mm/dd/yyyy´, tblPar.Fields[01].AsDateTime ) + 39);
         add (39 + FormatDateTime (´mm/dd/yyyy´, StrToDate ( TxtEmi.Text ) ) + 39);
         Add (39 + Edit1.Text + 39)
      end;
      incluirregistro (´Lancamento´, vcpo, vvlr);       
      tblPar.Next;
   end;
   vCod := txtCod.Text;
   vNom := txtAlu.Text;
   inherited;
   tblPar.close;
end;


Bom alguém sabe como me ajudar?


Robinhocne

Robinhocne

Curtidas 0

Respostas

Fabiano Góes

Fabiano Góes

12/12/2007

procedure Tfrmcadlan.SpbGeParClick(Sender: TObject);
var a, prazo : integer; data : TDate;
begin
   if ( not tblPar.Active ) then tblPar.Open else tblPar.EmptyTable;

   data  := StrToDate( txtVen.Text );

   prazo := 30;

   for a := 1 to StrToInt( txtPar.Text ) do
   begin
      with tblPar do
      begin
         Insert;
         Fields[00].AsInteger  := a;
         Fields[01].AsDateTime := data;
         // alteração no valor dividindo por 100
         Fields[02].AsCurrency := StrToFloat( txtVal.Text ) / 100;
         Post;
      end;
      data := ( data + prazo );
   end;

end;



GOSTEI 0
Robinhocne

Robinhocne

12/12/2007

mas nessa parter está tudo ok, o problema é aqui:



 Add (#39 + FormatFloat(´,,0.00´, tblPar.Fields[02].AsFloat) + 39); 



GOSTEI 0
Itepi

Itepi

12/12/2007

tente assim :
Add (#39 + FormatFloat(´,0.00´, tblPar.Fields[02].AsFloat) + 39); 



GOSTEI 0
Itepi

Itepi

12/12/2007

e ai robinhocne resolveu?


GOSTEI 0
Robinhocne

Robinhocne

12/12/2007

Desculpe amigo [b:bfda842a2b]itepi[/b:bfda842a2b] pois estive meio ausente hoje do pc, bom tentei da maneira que você me passou e nada também!

Ele mostra tudo junto ele não separa por virgula:

Cara eu tenho um exemplo disso aqui para vc vizualizar e poder me ajudar mais nisso!
Adciona meu msn ai

robinhocne@hotmail.com

ai eu te passo esse exemplo para vc e ai comunicamos melhor via msn.

Obrigado!


GOSTEI 0
POSTAR