Dificuldade na comparação no Ireport

16 respostas
Norse

Bem pessoal estou tentado remodelar um relatório que esta no Crystal Reports pra Ireport.
Eu criei uma nova variavel e preciso que ela faça o seguinte:

Faça a comparação entre os campos e retone o valor da variável $F{sigla_unidade} se alguma das condições do campo $F{origem} forem satisfeitas e se não for retorne o campo $F{unidade}.

$F{origem}.intValue() == 3 ? $F{origem}.intValue() == 4 ? $F{origem}.intValue == 5 ? $F{sigla_unidade}: $F{unidade}

Segue o código Crystal:

if {origem} = 3 or {origem} =4 or{origem} = 5 then

{sigla_unidade}

else

ToText ({unidade},’##’ )

16 Respostas

juniorsatanas

e so isso o codigo ?

ManoJava

Bom dia

Siga essa sintaxe:

$F{ORIGEM}.equals(3) ? 
&&
$F{ORIGEM}.equals(4) 
&&
$F{ORIGEM}.equals(5) 
    $F{SIGLA_UNIDADE} :
    $F{UNIDADE}:
""

Att.

Norse

ManoJava:
Bom dia

Siga essa sintaxe:

$F{ORIGEM}.equals(3) ? 
&&
$F{ORIGEM}.equals(4) 
&&
$F{ORIGEM}.equals(5) 
    $F{SIGLA_UNIDADE} :
    $F{UNIDADE}:
""

Att.

Tentei mas não deu certo, na realidade esto querendo fazer isto direto no Ireport.

Se $F{ORIGEM}.equals(3) ou F{ORIGEM}.equals(4) ou $F{ORIGEM}.equals(5) então $F{SIGLA_UNIDADE} senão $F{UNIDADE}.

Acho que agora me fiz entender melhor.
Agora não sei qeu comando usar para fazer isto.
Se alguem souver como favor ajudar?

ManoJava

Mas a sintaxe que te passei é pra fazer direto no ireport mesmo, vc vai na Text Field Expression e digita essa sintaxe, que quando seu campo atender a condição irá imprimir uma coisa, quando nao atender será a segunda opção.

Att

erico_kl
tenta isso

tenta isso

g4j

Se $F{ORIGEM}.equals(3) ou F{ORIGEM}.equals(4) ou $F{ORIGEM}.equals(5) então $F{SIGLA_UNIDADE} senão $F{UNIDADE}

é igual a

($F{ORIGEM}.equals(3) || F{ORIGEM}.equals(4) || $F{ORIGEM}.equals(5)) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}

EDIT: Coloque isso no lugar do valor do Field

ManoJava

Blz, como o amigo disse anteriormente apenas substitua o && por || com a mesma sintaxe que te passei, ok.

Norse

erico_kl:
($F{ORIGEM}.equals(3) || $F{ORIGEM}.equals(4) || $F{ORIGEM}.equals(5)) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}
tenta isso

A exepressão foi validada. Mas a ocompilar e executar gerou o seguinte erro.

Erros de compilação .\RelatMicroComputadoresPorOrgao.jasper.

Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 2 >= 2 at java.util.Vector.elementAt(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI.getTextViewForTab(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI.calculateTabHeight(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI.calculateMaxTabHeight(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateTabRects(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.calculateLayoutInfo(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(Unknown Source) at java.awt.Container.layout(Unknown Source) at java.awt.Container.doLayout(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validateTree(Unknown Source) at java.awt.Container.validate(Unknown Source) at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 2. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 3. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 4. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getOldValue()).equals(3) || ((java.lang.Integer)field_origem.getOldValue()).equals(4) || ((java.lang.Integer)field_origem.getOldValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getOldValue()) : ((java.lang.Integer)field_unidade.getOldValue()));//$JR_EXPR_ID=12$ <----> 5. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getOldValue()).equals(3) || ((java.lang.Integer)field_origem.getOldValue()).equals(4) || ((java.lang.Integer)field_origem.getOldValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getOldValue()) : ((java.lang.Integer)field_unidade.getOldValue()));//$JR_EXPR_ID=12$ <----> 6. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getOldValue()).equals(3) || ((java.lang.Integer)field_origem.getOldValue()).equals(4) || ((java.lang.Integer)field_origem.getOldValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getOldValue()) : ((java.lang.Integer)field_unidade.getOldValue()));//$JR_EXPR_ID=12$ <----> 7. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 8. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 9. The method equals(Object) in the type Integer is not applicable for the arguments (int) value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(3) || ((java.lang.Integer)field_origem.getValue()).equals(4) || ((java.lang.Integer)field_origem.getValue()).equals(5)) ? ((java.lang.String)field_sigla_unidade.getValue()) : ((java.lang.Integer)field_unidade.getValue()));//$JR_EXPR_ID=12$ <----> 9 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:591) at java.lang.Thread.run(Unknown Source)

ManoJava

Confira se o tipo do campo esta igual ao dos dados que vc quer comparar!

Norse

[quote=Norse]

erico_kl:
($F{ORIGEM}.equals(3) || $F{ORIGEM}.equals(4) || $F{ORIGEM}.equals(5)) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}
tenta isso

g4j

Pare que você está usando java 1.4 cara.

repare no erro:

  1. The method equals(Object) in the type Integer is not applicable for the arguments (int)

tente assim:

($F{ORIGEM}.equals(new Integer(3)) || F{ORIGEM}.equals(new Integer(4)) || $F{ORIGEM}.equals(new Integer(5))) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}

Norse

g4j:
Pare que você está usando java 1.4 cara.

repare no erro:

  1. The method equals(Object) in the type Integer is not applicable for the arguments (int)

tente assim:

($F{ORIGEM}.equals(new Integer(3)) || F{ORIGEM}.equals(new Integer(4)) || $F{ORIGEM}.equals(new Integer(5))) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}

Ainda continua dando erro. Esotu utilizando Java1.4 por causa de compatibilidade com outros aplicativos que ao fazer a atualização não funcionaram.

Eu estarei verificando o erro, pelo memos a expressõa esta validade no Ireport.

Na realidade cmo falei criei uma Nova Variável com o nome Unidade qeu o tipo de classe dela é java.lang.String e nela coloqeui a expressão:

($F{ORIGEM}.equals(new Integer(3)) || F{ORIGEM}.equals(new Integer(4)) || $F{ORIGEM}.equals(new Integer(5))) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}

M

g4j

E qual o erro ?

ManoJava

Vejo que vc criou uma varável tipo String para receber um tipo int, não era erro de conversão de tipo que tava dando antes ?

Norse

g4j:
Norse:

Ainda continua dando erro. Esotu utilizando Java1.4 por causa de compatibilidade com outros aplicativos que ao fazer a atualização não funcionaram.

Eu estarei verificando o erro, pelo memos a expressõa esta validade no Ireport.

Na realidade cmo falei criei uma Nova Variável com o nome Unidade qeu o tipo de classe dela é java.lang.String e nela coloqeui a expressão:

($F{ORIGEM}.equals(new Integer(3)) || F{ORIGEM}.equals(new Integer(4)) || $F{ORIGEM}.equals(new Integer(5))) ? $F{SIGLA_UNIDADE} : $F{UNIDADE}

M

E qual o erro ?

Bom dia.

Ainda continuo com algumas dificuldades no Ireport.

Segue o erro reportado.

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. String cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getValue()).String : ((java.lang.Integer)field_unidade.getValue()).langString);//$JR_EXPR_ID=12$ <----> 2. langString cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getValue()).String : ((java.lang.Integer)field_unidade.getValue()).langString);//$JR_EXPR_ID=12$ <--------> 3. String cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getOldValue()).String : ((java.lang.Integer)field_unidade.getOldValue()).langString);//$JR_EXPR_ID=12$ <----> 4. langString cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getOldValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getOldValue()).String : ((java.lang.Integer)field_unidade.getOldValue()).langString);//$JR_EXPR_ID=12$ <--------> 5. String cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getValue()).String : ((java.lang.Integer)field_unidade.getValue()).langString);//$JR_EXPR_ID=12$ <----> 6. langString cannot be resolved or is not a field value = (java.lang.String)((((java.lang.Integer)field_origem.getValue()).equals(new Integer(3)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(4)) || ((java.lang.Integer)field_origem.getValue()).equals(new Integer(5))) ? ((java.lang.String)field_sigla_unidade.getValue()).String : ((java.lang.Integer)field_unidade.getValue()).langString);//$JR_EXPR_ID=12$ <--------> 6 errors at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:193) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:591) at java.lang.Thread.run(Unknown Source)

g4j

Pode postar o fonte .jrxml?

Criado 5 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 16
Participantes 5