Ireport

5 respostas
L

Gostaria de saber como é que eu faço no ireport fazer um “Print when expression” quando um um valor recebido de um field for != .0

Muitas vezes em meus reports no campo “valor” eu recebo numeros (doubles) == 0.0 e gostaria que quando estes numeros fossem 0.0 ele nao imprimisse.

Alguem me pode ajudar com isso ?

5 Respostas

RagGirl

Ola,

Primeiro vc testa se o Field não é NULO, ai vc converte ele para double, (como vc cita ser seu caso), e testa:
($F{VALOR} == null || $F{VALOR}.doubleValue() == 0) ?
Boolean.FALSE :
Boolean.TRUE

Assim eu estou testando se o valor for nulo ou igual a zero, ai ele não exibe o campo, caso contrário sim.

L

Oi,

ta me dando o seguinte erro :

1. The method doubleValue() is undefined for the type String                 value = (java.lang.Boolean)((((java.lang.String)field_debito.getValue()) == null || ((java.lang.String)field_debito.getValue()).doubleValue() == 0) ?

voce sabe o que pode ser ?
RagGirl

Ola,

vc esta convertendo para Boolean o valor ???
Veja meu exemplo, teste se ele é diferente de nulo, e ai faça o cast para o tipo primitivo do campo, se Double, faça campo.doubleValue(), se For Integer, faça campo.intValue(), enfim, conforme for o tipo do campo. Agora se ele for um String, teste apenas:
($F{VALOR} == null || $F{VALOR}.toString() == 0) ?
Boolean.FALSE :
Boolean.TRUE

Essa é a expressão que vc deve colocar lá, nada mais. Mas vc precisa saber que tipo esse seu campo retorna.

Que versão do iReport vc esta usando ?

L

Este meu campo que estamos tentando usar no ireport é do tipo String. a versão do ireport que estou usando é o 1.2.1. E eu coloquei o codigo exactamente como voce escreveu e esta me dando o seguinte erro :

Errors compiling .\Extracto.jasper!
it.businesslogic.ireport.ReportClassLoader@3923d  net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Incompatible operand types String and int                 value = (java.lang.Boolean)((((java.lang.String)field_debito.getValue()) == null || ((java.lang.String)field_debito.getValue()).toString() == 0) ?                                                                                                      <--------------------------------------------------------->

Os valores ( embora sejam numeros) vem da datasource como strings tambem, e eu gostaria que ele não imprimisse no report todos os Strings que segem iguais a .0

Obrigado

RagGirl

Ola Luis,

se eles retornam como String, faça assim, como o último exemplo qeu repassei, acrescente no caso as “”, qeu faltaram no meu exemplo:

($F{VALOR} == null || $F{VALOR}.toString() == “.0”) ?
Boolean.FALSE :
Boolean.TRUE

Criado 10 de julho de 2006
Ultima resposta 11 de jul. de 2006
Respostas 5
Participantes 2