Fórum Arredondamento do Tipo Moeda #326739

02/08/2006

0

Olá pessoal, tudo bem? Espero que sim.

Vou já postar duas dúvidas aqui.

Uma delas, até dei uma olhada pelo fórum, mas não consegui entender direito.

Tenho um campo do tipo currency. No Firebird coloco como Numeric 8,2. E nas propriedades do ClientDataSet também coloco currency pra true.

Funciona perfeitamente, por exemplo, se eu coloco algum número com vírgula, tipo 6,50, ele transforma pra R$ 6,50.

Mas se eu coloco 6,00 ele transformar só pra 6. Gostaria que ficasse 6,00 mesmo, ou que eu colocasse 6 ele transformarsse pra 6,00. Tenho q mudar alguma propriedade pra fazer isso ou só usando algum código?


Aersoftware

Aersoftware

Responder

Posts

02/08/2006

Marcelo_mileris

Talvez se vc alterar o [b:af29e76094]DisplayFormat[/b:af29e76094] dele para [b:af29e76094]#0.00[/b:af29e76094] dê certo


Responder

Gostei + 0

03/08/2006

Aersoftware

Não funcionou Marcelo. A única coisa que mudou foi que, colocando isso, o R$ some. Mas mesmo assim não consigo colocar ,00.


Responder

Gostei + 0

03/08/2006

Paullsoftware

esperimente assim:

Escreva esse código no evento OnGetText do field desejado, selecionando ele através do Fields Editor do seu dataset...
if Sender.Value <> null then
Text := FormatFloat(´#,,0.00´,Sender.Value);

espero ter ajudado :wink:


Responder

Gostei + 0

03/08/2006

Paullsoftware

esperimente assim: Escreva esse código no evento OnGetText do field desejado, selecionando ele através do Fields Editor do seu dataset...
if Sender.Value <> null then
Text := FormatFloat(´#,,0.00´,Sender.Value);
espero ter ajudado :wink:


esqueci, para mostrar o [b:2429d1d60d]R$[/b:2429d1d60d] basta você incluir ele antes do FormatFloat assim:
if Sender.Value <> null then
Text := ´R$ ´ + FormatFloat(´,,0.00´,Sender.Value);



Responder

Gostei + 0

03/08/2006

Aersoftware

Valeu paullsoftware.

Funcionou perfeitamente.. abraços. :D


Responder

Gostei + 0

03/08/2006

Aersoftware

Ops, deu um erro.. hehe..

Se eu insiro um registro, quando eu coloco o valor no campo e saio dele, o valor some, mas grava. Se eu salvar o registro, na visualização aparece, e depois quando eu entro pra ´editar´ o registro também aparece. Só quando insiro que nao aparece.

Tive que fazer uma pequena adaptação no código pq quando rodo o programa dá erro no ´Null´, dizendo que é:

[Error] UDmDados.pas(854): E2003 Undeclared identifier: ´null´


Aí fiz assim (tb pra nao dar erro quando eu nao tiver nenhum registro.

  if DmDados.ClientEdicoesNacionais.RecordCount <> 0 then
    if Sender.Value <> ´´ then
      Text := ´R$ ´ + FormatFloat(´,,0.00´,Sender.Value);



Outro erro que dá, quando eu tenho por exemplo ´R$ 6,90´, aí quero só ´R$ 6,00´, nao consigo apagar o ´,90´ e deixar o R$ 6, pq dá erro, acho que é por causa do ´R$´, o erro é:

´R$ 6 is not a valid BDC value´



Responder

Gostei + 0

04/08/2006

Marco Salles

su uma perguntinha amigo AerSoftware , antes de manipular os evento ongettext e onsetText , faça o seguinte.

1)va no FieldsEditor do ClientDataset 2)e selecione o campo ... 3)No Objeto inspector do campo , tem uma propriedade currency 4)Coloque -a para true. Na maioria das vezes resolve



Responder

Gostei + 0

04/08/2006

Paullsoftware

[quote:fea598ee1d=´Marco Salles´]
1)va no FieldsEditor do ClientDataset 2)e selecione o campo ... 3)No Objeto inspector do campo , tem uma propriedade currency 4)Coloque -a para true. Na maioria das vezes resolve
[/quote:fea598ee1d]

bem lembrado marcos, isso mesmo, se vc está usando tipo de dados float, decimal, ou compativel... é somente mudar currency para TRUE!!


Responder

Gostei + 0

04/08/2006

Aersoftware

Colegas Marco Salles e paullsoftware,

Eu já tinha modificado essa propriedade do campo pra True. E como falei, com números com vírgula ele funciona, mas se o número é redondo, ele tira o ´,00´, que eu gostaria de deixar.

Será que esse código não funcionaria talvez no evento OnExit do componente que digito o valor?


Responder

Gostei + 0

04/08/2006

Marco Salles

Tenho um campo do tipo currency. No Firebird coloco como Numeric 8,2. E nas propriedades do ClientDataSet também coloco currency pra true.


eu não tinha notado....

[b:70149e9931]é com esta sua configuraçãoe regionais ?????[/b:70149e9931]


Responder

Gostei + 0

05/08/2006

Aersoftware

Esta tudo normal, Marco.

Tanto que ele funciona perfeitamente se deixar somente a propriedade Currency como True.

Qualquer número com vírgula ele exibe normal, com o R$ na frente. Só que um número inteiro, ele come o ´,00´, exibido só o R$ e o número, mesmo que eu digite o ,00, ele nao assume.


Responder

Gostei + 0

09/08/2006

Marco Salles

voce tem algum evento OnDrawColumnCell na Grid :?: :?:


Responder

Gostei + 0

09/08/2006

Aersoftware

[quote:6fb11b4ad8=´Marco Salles´]voce tem algum evento OnDrawColumnCell na Grid :?: :?:[/quote:6fb11b4ad8]

Tenho sim, Marco.

Tenho um evento pra zebrar a grid.

Só que não exibo esse campo na Grid. Só listo nela o Nome. Tenho dois forms, um de visualização e outro de cadastros. E no de visualização eu exibo os dados em um Label.


Responder

Gostei + 0

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

Aceitar