2016-04-24 5 views
-1

Ich habe ein Problem mit diesem Code unten. Es ist eine Operation mit fünf Bedingungen. Wenn es zur vierten Bedingung ($F{field}.equals("text here4")) geht, liest es die Linie: $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220), und stellt sogar für fünften Zustand zur Verfügung.jasper report error condition error Fehler

$F{field}.equals("text here1") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(360) 
:$F{field}.equals("another text here2") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(390) 
:$F{field}.equals("text here3") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(190) 
:$F{field}.equals("text here4") 
? $F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(290) 
:$F{total}.doubleValue()*Double.valueOf(100)/Double.valueOf(220) 

Wenn ich JasperiF verwenden:

new JasperIf(). 
jif($F{cond}.equalsIgnoreCase("")).jthen("!") 
.jelseif($F{cond}.equalsIgnoreCase(""), "!") 
.jelseif($F{cond}.equalsIgnoreCase(""), "!") 
.jelse("") 

ich die Fehlermeldung anzeigt: Jaspis, wenn der Typ nicht auf eine Art gelöst werden können

+0

Was ist 'JasperIf'? –

+0

ich lese es hier [link] (https://raymondhlee.wordpress.com/2012/10/06/if-else-in-jasper-reports-expressions/) und ich dachte, es war eine Jaspis-Berichtssyntax. Entschuldigung – user3224701

Antwort

0

Ist Ihr Zustand nur für den fünften Zustand ausgeführt wird? Wenn ja:

Können Sie bitte Ihre $F{field} für zusätzliche Leerzeichen überprüfen? Überprüfen Sie auch das verwendete Wort in .equals("check this") auf Groß-/Kleinschreibung.

+0

eine klare Idee zu haben: '$ F {Feld} .equals (" Text hier1 ") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (360) : $ F {Feld} .equals ("ein anderer Text hier2") ? $ F {gesamt} .doubleValue() * Double.valueOf (100) /Double.valueOf (390) : $ F {Feld} .equals ("Text here3") ? $ F {gesamt} .doubleValue() * Double.valueOf (100) /Double.valueOf (190) : $ F {Feld} .equals ("Text here4") ? $ F {gesamt} .doubleValue() * Double.valueOf (100) /Double.valueOf (290) : $ F {Feld} .equals ("Text hier5") ? $ F {total} .doubleValue() * Double.valueOf (100) /Double.valueOf (220) : "null" ' Aber dieses funktioniert nicht, liest nicht die fünfte Bedingung – user3224701

+0

ist es möglich, dass $ F {Feld} kann null sein? Wenn ja, musst du auch mit dieser Bedingung umgehen. sonst wird es nicht funktionieren. –

+0

ich löste es Jungs, nur die Stellen zwischen dem wahren Code (?) Und falschen Code (:) ich danke Ihnen für Ihre Zeit – user3224701