GARANTIR DESCONTO

Fórum casas decimais fixas #382329

28/07/2010

0

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
 
Gustavo Matos

Gustavo Matos

Responder

Posts

28/07/2010

Thiago Pedro

Amigo, só para compreender a sua interrogação.
Você quer conseguir fazer isso no tratamento ou dentro do componente de edição ?
Responder

Gostei + 0

28/07/2010

Gustavo Matos

A ai Tiago valeu pelo apoio... Entao do usando ai o quick report este codigo passa pelo print do detail  
Responder

Gostei + 0

28/07/2010

Thiago Pedro

Tente tratar da seguinte maneira:

FormatFloat('###,###,##0.00', Valor);
Responder

Gostei + 0

28/07/2010

Gustavo Matos

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  
Responder

Gostei + 0

28/07/2010

Thiago Pedro

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!
Responder

Gostei + 0

28/07/2010

Gustavo Matos

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...
Responder

Gostei + 0

28/07/2010

Gustavo Matos

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
Responder

Gostei + 0

29/07/2010

Thiago Pedro

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
Responder

Gostei + 0

29/07/2010

Eriley Barbosa

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      
Responder

Gostei + 0

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

Aceitar