casas decimais fixas
Olá galera do comum problema que esta me matando ja fiz quase tudo, vamo lá
preciso colocar uma mascara fixa para o campo com duas casas decimas de forma que nao arredonte o valor
por exemplo :
valores como 5
e mostrado no relatorio como 5
e deveria ser 5,00
o codigo que eu uso esta abaixo
QR_BASE.Caption := formatfloat('00.00',(StrToFloat(qr_val_us.Caption) * (dmBase.qAuxLoc1.FIELDBYNAME('DOLAR_COMERCIAL').AsCurrency)));
QRVAL_II.Caption := formatfloat('00.00',(StrToFloat(QR_BASE.Caption) * 0.60)); help, valeu
QRVAL_II.Caption := formatfloat('00.00',(StrToFloat(QR_BASE.Caption) * 0.60)); help, valeu
Gustavo Matos
Curtidas 0
Respostas
Thiago Pedro
28/07/2010
Amigo, só para compreender a sua interrogação.
Você quer conseguir fazer isso no tratamento ou dentro do componente de edição ?
Você quer conseguir fazer isso no tratamento ou dentro do componente de edição ?
GOSTEI 0
Gustavo Matos
28/07/2010
A ai Tiago valeu pelo apoio...
Entao do usando ai o quick report
este codigo passa pelo print do detail
GOSTEI 0
Thiago Pedro
28/07/2010
Tente tratar da seguinte maneira:
FormatFloat('###,###,##0.00', Valor);
FormatFloat('###,###,##0.00', Valor);
GOSTEI 0
Gustavo Matos
28/07/2010
entao mano quando faço isso que vc me falo
acontece ter uma mensangem de erro
de ponto flutuante nao valido
dae o relatorio nao print
ta foda
GOSTEI 0
Thiago Pedro
28/07/2010
Você tem que ver se este valor que você está pegando e/ou formatando realmente é número real.
Tente substituir essas linhas de código, e tente pegar o valor por exemplo, por um ShowMessage.
Vê se você consegue isso!
Tente substituir essas linhas de código, e tente pegar o valor por exemplo, por um ShowMessage.
Vê se você consegue isso!
GOSTEI 0
Gustavo Matos
28/07/2010
Valeu pela intençao brother
vou fazer o teste e escrevo aki
mas como faço pra trasforma em real no caso de nao for real
porque eu ja usei o codigo que voce passo e deu erro de ponto flutuante nao valido...
GOSTEI 0
Gustavo Matos
28/07/2010
no caso ai thiago ja tentei formatfloat para a label com displayformat nesse fielbyname('dolar_cormecial')
e nao deu certo continuo arredondando o valor
como 5.00
para 5
dai tentei usar
strtofloat na label com ffnumber mas tambem deu erro de ponto flutuante nao valido.....
dai tentei tratar a virgula do valor para ponto e vice versa sem sucesso
com stringreplace
GOSTEI 0
Thiago Pedro
28/07/2010
Pegue a string completa que você está teoricamente converter para real (float) e coloque corretamente ela aqui!
Se sua string for: 5.000.000
coloque aqui: 5.000.00
Se sua string for: 5.000.000
coloque aqui: 5.000.00
GOSTEI 0
Eriley Barbosa
28/07/2010
Vamos lá, experimente trocar os QrLabel's por QrExpression e no seu evento onPrint tente fazer o calculo:
Value := FloatToStr(StrToFloat(qr_val_us.Caption)) * (dmBase.qAuxLoc1.FIELDBYNAME('DOLAR_COMERCIAL').AsFloat));
Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0.60)); Dê uma olhada como está a configuração do sistema operacional para o separador de milhar e o separador decimal, para o separador de milhar deve ser usado.(Ponto) e para o separador decimal deve ser usado,(Virgula). Com estas configurações que informei acima a linha: Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0.60)); Ficaria Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0,60)); Em cada QrExpression coloque na propriedade Mask a mascara #,##0.00 Atenciosamente Eriley
Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0.60)); Dê uma olhada como está a configuração do sistema operacional para o separador de milhar e o separador decimal, para o separador de milhar deve ser usado.(Ponto) e para o separador decimal deve ser usado,(Virgula). Com estas configurações que informei acima a linha: Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0.60)); Ficaria Value := FloatToStr(StrToFloat(QR_BASE.Caption) * 0,60)); Em cada QrExpression coloque na propriedade Mask a mascara #,##0.00 Atenciosamente Eriley
GOSTEI 0