Tratar campo null no iReport[RESOLVIDO]

Pessoal boa tarde,

Criei um relatorio no ireport, mas gostaria de tratar alguns campos, tipo quando chamo o relatorio se tiver o campo null, gostaria de substituir por algum valor

Ex: se o campo Data tiver NULL substituia por “----”, se for Valor tiver NULL subsituia por 0,0.

Isso e um relatorio de pagamento, eu iria imprimir todas as parcelas do cliente pagas e nao-pagas, e nas não pagas ele imprime null.

Toda dica será muito bem vinda.

Obrigado a todos

Opa,

Cara eu sempre marco a opção: Blank When Null dessa forma quando for nullo ele imprime em branco…
No seu caso pode ser uma saida, eu nunca utilizei de outra forma…

Valews!

http://wolmirgarbin.wordpress.com

2 curtidas

Ou isso, ou usar um operador ternário:

$F{teuCampo} != null ? $F{teuCampo} : "----" Sacou?

é uma boa, caso vc queira evitar os null no relatório.

vc pode tb editar o textfield para aceitar uma expressão, como por exemplo, if else:

da até para usar um isEmpty() por ali.

att,

[quote=leoramos]Ou isso, ou usar um operador ternário:

$F{teuCampo} != null ? $F{teuCampo} : "----" Sacou?[/quote]

leoramos, o participante mais rápido do guj hehehe.

att,

1 curtida

Obrigado wolmirGarbin.

Este procedimento é mais certo, vou utilizar-lo

Obrigado mesmo…

Pessoal obrigado pela ajuda…

não sabia dessa funcao do ireport…

Obrigado deu certo aki…

haiehauiuhe nego vai achar que não faço nada da vida :stuck_out_tongue:

PessoALL,

Sei que o tópico é antigo, mas estou enfrentando um problema aqui e não sei como resolver, pois tô começando agora com IReport…

O problema acontece quando o valor militar.militarTurma.dtConclusao vem nulo do banco… Ocorre o seguinte erro e ele não gera o relatório:

15:40:56,625 INFO  [STDOUT] Error retrieving field value from bean : militar.militarTurma.dtConclusao

Esse é meu textField… Inclusive eu estou passando true no isBlankWhenNull!

<textField isBlankWhenNull="true">
				<reportElement x="482" y="164" width="68" height="16"/>
				<textElement verticalAlignment="Middle">
					<font fontName="Times New Roman" size="9" isBold="true"/>
				</textElement>
				<textFieldExpression class="java.lang.String"><![CDATA[new SimpleDateFormat("dd/MM/yyyy", new Locale("pt","Br")).format($F{militar.militarTurma.dtConclusao})]]></textFieldExpression>
			</textField>

Toda ajuda será bem vinda!