Fórum Arredondamento do Tipo Moeda #326739
02/08/2006
0
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
Curtir tópico
+ 0Posts
02/08/2006
Marcelo_mileris
Gostei + 0
03/08/2006
Aersoftware
Gostei + 0
03/08/2006
Paullsoftware
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:
Gostei + 0
03/08/2006
Paullsoftware
if Sender.Value <> null then Text := FormatFloat(´#,,0.00´,Sender.Value);
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);
Gostei + 0
03/08/2006
Aersoftware
Funcionou perfeitamente.. abraços. :D
Gostei + 0
03/08/2006
Aersoftware
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´
Gostei + 0
04/08/2006
Marco Salles
Gostei + 0
04/08/2006
Paullsoftware
bem lembrado marcos, isso mesmo, se vc está usando tipo de dados float, decimal, ou compativel... é somente mudar currency para TRUE!!
Gostei + 0
04/08/2006
Aersoftware
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?
Gostei + 0
04/08/2006
Marco Salles
eu não tinha notado....
[b:70149e9931]é com esta sua configuraçãoe regionais ?????[/b:70149e9931]
Gostei + 0
05/08/2006
Aersoftware
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.
Gostei + 0
09/08/2006
Marco Salles
Gostei + 0
09/08/2006
Aersoftware
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)