Fórum Formatar BDText´s #49311

10/02/2005

0

Como formato um DBText para valores monetários, tipo mostrar ao menos 2 casas decimais sempre ou 3 ... nao precisa o sinal de R$ ?


Tuskinhu

Tuskinhu

Responder

Posts

10/02/2005

Renato_sp

Defini o campo do tipo numeric (12,2) e no delphi coloca a propriedade do TField como currency para true que o proprio delphi poe a mascara
R$ 0,00, espero ter ajudado..

Falow

Renato/SP


Responder

Gostei + 0

10/02/2005

Tuskinhu

Nao entendi como fazer.. vou colocar como eu estou usando...
DBExpress ( SqlConnection -> SQLQuery -> DataProvider -> CliDataSet -> DataSource )

Destes somente o DataSource esta na tela da consulta e o resto em um data module...

Aqui como eu uso o código:

  try
    Bd.CtoCDS.Close;
    with BD.CtoQry do
    begin
      Close;
      SQL.Clear;
      SQL.Text := ´Select CTO.SERIE, CTO.EMISSAO, ...´
    end;  // Qry
    Bd.CtoCDS.Open;
  except
    on E: Exception do
    begin
      MsgError(´Erro na consulta de dados do conhecimento.´ + #1313 +
               ´SQL: ´ + Bd.CtoQry.SQL.Text + 1313 +
               ´Erro compilador: ´ + E.Message );
    end;
  end;


Onde encaixo essas mudanças?? NO caso o nome do campo q eu quero aplicar é TOTAL_PRESTACAO para que saia com 2 casas.


Responder

Gostei + 0

11/02/2005

Fsflorencio

O Renato_SP disse para alterar no fieldlist da query a propriedade currency do field que vc deseja alterar.

Se vc não quiser que apareça o símbolo monetário, vc pode colocar na propriedade EditFormat e DisplayFormat do TField o seguinte: #,0.00 que ele vai ficar formatado com duas casas decimais.


Responder

Gostei + 0

11/02/2005

Renato_sp

É isso ae... fsflorencio, acho que a melhor forma de se fazer isso é como definimos !!! tanto com R$ ou nao... é o mais pratico...
:D

Renato / SP


Responder

Gostei + 0

11/02/2005

Rodolpho123

Lembrando que a propriedade [b:0b26b4ed2a]Currency[/b:0b26b4ed2a] lê o a formatação monetária do Windows, e a DisplayFormat fica [b:0b26b4ed2a]fixa[/b:0b26b4ed2a] no código. Caso um dia a moeda mude de formato, o [b:0b26b4ed2a]DisplayFormat[/b:0b26b4ed2a] vai ter que mudar tmb....


Responder

Gostei + 0

11/02/2005

Tuskinhu

mas os TFields nao aparecem pra mim, pq o comando SQL só é executado em runtime, e nao em design, e eu nao sei como se adiciona em runtime,, se vc puder me colocar um exemplo..


Responder

Gostei + 0

11/02/2005

Gandalf.nho

Use FieldByName para se referir aos Fields em tempo de execução e setar suas propriedades


Responder

Gostei + 0

11/02/2005

Tuskinhu

acho que o carnaval me deixou lento... nao consegui achar como colocar as configuracoes...

vc pode me dar o exemplo?

DataModule: BD
ClientDataSet:CtoCDS

ai eu usaria Bd.CtoCDs.FieldByName(´Total_Prestacao´)....

dai eu nao consegui mais nada...


Responder

Gostei + 0

11/02/2005

Afarias

BD.CtoCDs.FieldByName(´Total_Prestacao´).Currency := True;

ou

BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;


T+


Responder

Gostei + 0

11/02/2005

Tuskinhu

AFarias:

BD.CtoCDs.FieldByName(´Total_Prestacao´).Currency := True;
Erro: Undeclared Identifier : ´Currency´

ou

BD.CtoCDs.FieldByName(´Total_Prestacao´).DisplayFormat := ´R$ ,#0.00´;

Erro: Undeclared Identifier : ´DisplayFormat´

Deram erros os 2!


Responder

Gostei + 0

11/02/2005

Afarias

Deve ser por causa do tipo de campo (TField)

não são todos eles q tem essas propriedades -- por exemplo, campos ´texto´ (TStringField) não tem.


T+


Responder

Gostei + 0

11/02/2005

Rodolpho123

Tuskinhu, tente fazer isto no evento [b:287da49f0f]AfterOpen[/b:287da49f0f] do seu Cds:

TFloatField( DataSet.FieldByName.(´SEUCAMPO´) ).DisplayFormat := ´R$ #,0.00´;
ou
TFloatField( DataSet.FieldByName.(´SEUCAMPO´) ).Currency := True;



Responder

Gostei + 0

11/02/2005

Tuskinhu

Rodolpho123, valeu mesmo !!! Funcionou como eu desejava !!!

Obrigado a vc e ao AFarias pela ajuda !!!!


Abraços!!!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar