Estou a elaborar um report usando o Jasper ireports. Já tenho os reports feitos só que agora preciso formatar alguns resultados.
Tenho um field no report que é um double, e preciso formatar ele.
Se fizer apenas no textfield $F{Variavel}, ele surge sem problemas.
Agora se eu quiser multiplicar o field por um valor? Como é que eu faço? É que tudo onde tente precher acaba por dar erros de compilação, e o valor sem formatação não diz nada.
Cara, a única forma que eu consegui evitar esse problema foi trazendo o resultado da conta já no select.
Também gostaria de saber como se faz operações no mardito. :lol:
Vou tentar detalhar mais um pouco…
Estou a usar o jasper ireport 0.4.1.
Tenho um textfield no report, onde no separador text field, em textfield expression tem o field TOTAL referenciado : $F{TOTAL} que é do tipo double.
Isto está a funcionar, só que este valor total assume valores do tipo 0,0045327384638 por exemplo, e eu preciso de o formatar. Preciso de o multiplicar etc.
Se eu fizer edit -> edit xml source, a linha referente a este objecto é:
se eu no objecto alterar o valor
$F{TOTAL}
por
$F{Total}.doubleValue()*2 obtenho os seguintes erros de compilação:
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. doublevalue cannot be resolved or is not a field value = (java.lang.Double)(((java.lang.Double)field_TOTAL.getValue()).doublevalue2); <---------> 2. doublevalue cannot be resolved or is not a field value = (java.lang.Double)(((java.lang.Double)field_TOTAL.getOldValue()).doublevalue2); <---------> 3. doublevalue cannot be resolved or is not a field value = (java.lang.Double)(((java.lang.Double)field_TOTAL.getValue()).doublevalue*2); <---------> 3 errors at net.sf.jasperreports.engine.design.JRJdtCompiler.compileReport(JRJdtCompiler.java:156) at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:149) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:171) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:153) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:398) at java.lang.Thread.run(Unknown Source)
Não queria ser chato, mas infelizmente ainda não percebo muito disto e agradeço a vossa ajuda.
Na verdade é o que eu estou a usar. Só mostrei o código porque já reparei que aqui a malta aqui martela no xml…eu até nem percebo muito (a minha programação ficou no VB…tenho que me actualizar nas tecnologias java) mas quem percebe podia ajudar, e como o ireport permite aceder ao codigo xml…
[quote]
$F{TOTAL}.doubleValue() * 2
é diferente de
$F{TOTAL}.doubleValue * 2 [/quote]
Na verdade antes de responder aqui que não funciona, tentei as duas, daí ter pensado que estaria a trabalhar no sítio errado.
Também já tentei manipular variaveis. Mas devo ter problemas com a sintaxe. Eu preciso que a variavel assuma o valor do field “TOTAL” para depois o trabalhar…mas ainda não consegui
Vou fazer mais umas tentativas…
PS: Este relatório tem subreports lógicamente com passagem de parâmetros. Um desses parametros é uma data…eu achei que passar a data deu trabalho…dassssss
O problema é que o seu ireport nao esta usando o jdk1.5 que tem o autoboxing. Por isso ele da erro, tenta modificar o seu compilador para o compilador do java 1.5, existe esta opcao lá em options>opcoes |Compilador|
[quote=vonlinkerstain]O problema é que o seu ireport nao esta usando o jdk1.5 que tem o autoboxing. Por isso ele da erro, tenta modificar o seu compilador para o compilador do java 1.5, existe esta opcao lá em options>opcoes |Compilador|