Jaspersoft Studio

Alex/89

Mitglied
Guten Morgen zusammen,

Seit Tagen bin ich nun damit beschäftigt, einen String zum Integer zu parsen. Das einzige was mir gelingt, ist es Fehlermeldungen zu erzeugen.

Wenn ich im Internet alles richtig verstanden habe, dann müsste das Feld im "Expression Editor" umgewandelt werden.

1643264709889.png

1643264858633.png

leider klappt es jedoch nicht.

Ich hoffe das mir jemand bei diesem Problem weiterhelfen kann.


Liebe Grüß
Alex
 

Samofan

Aktives Mitglied
Hi Alex,
ist das Feld denn auch ungleich NULL? Was wird auf dem Report angezeigt, wenn du das Parsen des Strings weglässt?
Falls du die Werte aus einer Datenbank bekommst, kannst du auch den Typ im Dataset and Query Dialog angeben.
 

Alex/89

Mitglied
Hallo Samofan,

vielen Dank für deine Antwort.

Die Daten werden aus unserem MRP-System über eine .dat Datei und iReport an Jaspersoft übergeben.
Leider habe ich auf den Bereich keinen Einfluss und muss somit nach einer Lösung in Jaspersoft suchen.


Im Preview wird mir der Wert als "null" angezeigt, da die Daten ja aktuell noch nicht vorhanden sind.
 

Samofan

Aktives Mitglied
Ah ok. Vielleicht hilft es schon zu prüfen, ob das Feld null ist. Probier mal

[CODE lang="java" title="Expression Editor"]
$F{PHOGKS} == null ? "" : Integer.parseInt($F{PHOGKS})
[/CODE]

Falls das Feld nich null ist und du trotzdem den Fehler bekommst, dann ist PHOGKS wahrscheinlich im falschen Format (kann nicht zum Integer geparst werden).
 

Alex/89

Mitglied
Die Abfrage habe ich jetzt eingebaut. Der Fehler taucht zumindest in Jaspersoft nicht mehr auf.

jetzt zickt aber der MRP Report..

Java:
09:44:20 215453 [main] em.print.JPPrintManager.getTemplate(JPPrintManager.java:502) INFO : Processing teststd.lief_umsatz.lief_umsatz.001547287503.dat
09:44:20 215467 [main] rint.JPPrintManager.processAllFiles(JPPrintManager.java:471) ERROR: Error! stack trace follows.
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $F{PHOGKS} == null ? "" : Integer.parseInt($F{PHOGKS})
    at net.sf.jasperreports.engine.fill.JREvaluator.handleEvaluationException(JREvaluator.java:284)
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:392)
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluateEstimated(JRCalculator.java:663)
    at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:249)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1404)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1378)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1194)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:108)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:615)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:433)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:162)
    at net.sf.jasperreports.engine.JasperFillManager.fillToFile(JasperFillManager.java:576)
    at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:979)
    at de.guskoeln.system.print.JPFormPrinter.print(JPFormPrinter.java:396)
    at de.guskoeln.system.print.JPPrintManager.print(JPPrintManager.java:574)
    at de.guskoeln.system.print.JPPrintManager.processAllFiles(JPPrintManager.java:443)
    at de.guskoeln.system.print.JPPrintManager.main(JPPrintManager.java:306)
Caused by: java.lang.NumberFormatException: For input string: "3.180,00"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.base/java.lang.Integer.parseInt(Integer.java:652)
    at java.base/java.lang.Integer.parseInt(Integer.java:770)
    at umsatz_lieferanten_ek_1643272985707_399500.evaluateEstimated(umsatz_lieferanten_ek_1643272985707_399500:338)
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:378)
    ... 15 more
09:44:20 215469 [main] ln.system.print.JPPrintManager.main(JPPrintManager.java:311) ERROR: Problem found (Error evaluating expression for source text: $F{PHOGKS} == null ? "" : Integer.parseInt($F{PHOGKS}))
 
M

Mart

Gast
Java:
roblem found (Error evaluating expression for source text: $F{PHOGKS} == null ? "" : Integer.parseInt($F{PHOGKS}))
es kann incht geparsed werden, der ausdruck
 

Alex/89

Mitglied
Danke auch für deine Antwort @Mart.

Also gibt es da für mich keine Möglichkeit einen String(im Jaspersoft Studio) umzuwandeln und diesen eventuell zu summieren?
 

Jw456

Top Contributor
Caused by: java.lang.NumberFormatException: For input string: "3.180,00"

Intager ist eine Ganzzahl -2147483648 bis 2147483647
Was du hast ist eine Fließkommazahl und nicht mal das denn in java wird der Punkt für das Komma benutzt.

Du versuchst eine Kommazahl in einen "Int" Ganzzahl zu Parsen was natürlich nicht geht.

wenn du mit Kommazahlen rechnen willst dann benutze Float oder Double
 

Ähnliche Java Themen

Neue Themen


Oben