[IREPORTS][RESOLVIDO] Como mudo para zero o valor de um campo quando o mesmo é null

7 respostas
T

Opa pessoal eu tenho um campo que está recebendo este comando abaixo

new java.lang.Float( ($F{PROV}.floatValue()) -($F{INSS}.floatValue()) )

Porém o F_INSS está null. Existe como eu mudar ele para zero quando for null sem usar o sql?
Vlw

7 Respostas

R

tente:
No iReport…

na propriedades do seu Field $F{PROV}.floatValue()
na aba Campo Texto , Modelo Padrão clique no btn Criar

T+

T

Opa, O modelo padrão já tava configurado mas não afeta em nada isso.
Acho que não expliquei direito.
Tipo o que o campo está recebendo é algo como valor_de_prov - NULL ai assim ele retorna null
Queria saber se tem como fazer algo pro f_inss ser igual a zero caso null (algo parecido com o nvl do plsql) porém sem usar o plsql
ai assim eu teria valor_de_prov - 0
Alguma idéia?
Vlw

R

faz um if pra verificar se ta null ou nao
tipo algo assim

if (if_inss == null){
         f_inss = 0;
    } else{
         f_inss = 1;
    }

nao sei se eh bem isso q vc quer , qualquer coisa posta o cod ai
fica mais facil pra entender ok

T+

A

Bom…

Tem uma opção (propriedade) no field que é “blank when null”, mas acho que não vai ser adequado para tua situação.

Eu não testei isso, mas de repente pode funcionar:

Me avisa se funcionou ou não!

Abraços!

T

Opa… era praticamente isso mesmo que eu queria… mas…
deu erro
"The operator == is undefined for the argument type(s) float,null"
Teria como contornar isso?

A

Lembrei que não posso verificar se float é igual a nula, porque por padrão, a inicialização de uma variável dentro de um método do tipo float é 0

por exemplo:

public class TesteValor {

    public static void main(String[] args) {
        float f;
        System.out.println(f);
    }
}

Isso aqui gera um erro de compilação, pois a variável não foi inicializada, e como eu disse, o padrão de inicialização de um float é 0.

Você já tentou pegar doubleValue() no lugar de float? Não sei se vai aplicar a sua regra de negócio, mas é uma tentativa!

Só mais uma tentativa, tenta assim:

new java.lang.Float( ($F{PROV}.floatValue()) -($F{INSS} == null ? 0 : $F{INSS}.floatValue()) )

Abraços!

T

Opa Cara essa linha resolveu

Poxa. Vlw mesmo.
Obrigado por ter resolvido!!!

Criado 17 de dezembro de 2008
Ultima resposta 17 de dez. de 2008
Respostas 7
Participantes 3