formatar uma string para um formato de moeda no relatório jasper
Eu tenho uma string com algum valor numérico.
Eu quero formatá-lo de uma forma em que centenas são separados por vírgulas e o número está tendo $ cifrão antes dele.
por exemplo. 12345 deve ser formatado para US $ 12.345,00
Eu tentei o código abaixo sem cifrão:
new java.text.DecimalFormat(#,##0.00).format.(myString)
e o abaixo com um cifrão:
new java.text.DecimalFormat($ #,##0.00).format.(myString)
No entanto, ambos estão dando erro.
Qual é o caminho certo para alcançar este formato?
Esta é uma parte do jasper report jrxml onde eu quero evitar "null" no relatório e, assim, inserir o código abaixo:
<textField isBlankWhenNull="false" isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="1350" y="0" width="150" height="30"/>
<textElement/>
<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{myString}!=null?new java.text.DecimalFormat(#,##0.00).format.($F{myString}):"Unavailable"]]></textFieldExpression>
</textField>
Onde myString resulta de uma consulta e é declarado em jrxml como:
<field name="myString" class="java.lang.String"/>
MyString anterior foi declarado como BigDecimal, mas o operador de comparação? = Não estava funcionando.
Se o valor da moeda não estiver disponível, quero imprimir "indisponível" no relatório em vez do padrão "nulo". Senão, quero que o número seja formatado corretamente como descrito acima.
Como resolver esse problema?
Obrigado pela leitura.