1

レポートの作成に JasperSoft Studio 5.1.0 を使用しています。これは私が今まで使っていたライブラリです

  • commons-beanutils-1.8.3.jar commons-collections.jar commons-digester-1.7.jar commons-javaflow-20060411.jar commons-logging-1.1.3.jar groovy-all-1.7.5.jar itext-2.1. 7.jar jasperreports-5.1.0.jar

パラメータを使用しようとしていますが、JasperSoft Studio でプレビューを表示してもエラーは表示されませんが、Java プログラムから印刷しようとすると、次のようなエラーが表示されます。

net.sf.jasperreports.engine.fill.JRExpressionEvalException: 式の評価中にエラーが発生しました: ソース テキスト: 新しい java.lang.Integer(1)

実行されるアクションのためにプログラムで使用するコードは次のようなものです

try
{
   String NamaFile = "src/Laporan Penawaran.jasper";
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   Connection konek = Koneksi.getKoneksi();
   HashMap hash = new HashMap();
   hash.put("param1",no_tender.getText());

   File file = new File(NamaFile);
   JasperReport jasperReport = (JasperReport) JRLoader.loadObject(file.getPath());
   JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, hash,konek);
   JasperViewer.viewReport(jasperPrint);
} catch(Exception ex) {
   System.out.println(ex);
}

ジャスパーファイルにエラーがあるのではないかと思っていますが、すべてのフィールドを消去して静的テキストのみを使用しようとすると、エラーがまだ存在します。私はどうしたらいいですか?

4

3 に答える 3

1

さて、私は groovy-all をバージョン 2 に更新しようとしています。その後はまったく問題なく、スムーズに動作します :)

注: ライブラリごとに特定のバージョンを使用していることを確認してください。何らかの形で新しいバージョンがレポートに常に一致するとは限りません。

于 2013-08-05T23:19:46.690 に答える
0

私のための修正: フィールドのタイプを java.math.BigInteger から java.math.BigDecimal に変更しました

于 2016-08-31T08:30:29.820 に答える
-1

以下は、問題を特定できたスタック トレース全体です。

net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
    Source text : new java.lang.Integer(1)
    at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:782)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:384)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:358)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:458)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnHeader(JRVerticalFiller.java:502)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:284)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:932)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
    at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:651)
    at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
    at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:203)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
    Source text : new java.lang.Integer(1)
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:308)
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluateEstimated(JRCalculator.java:582)
    at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:181)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1234)
    at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1208)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1577)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:149)
    ... 8 more
Caused by: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/BytecodeInterface8
    at ReconciliationDetail_UnclearedTxn_ChecksAndPayments_Count_1450338812203_279237.evaluateEstimated(calculator_ReconciliationDetail_UnclearedTxn_ChecksAndPayments_Count_1450338812203_279237:272)
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluateEstimated(JREvaluator.java:295)
    ... 14 more
**Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.BytecodeInterface8**
    at java.lang.ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 16 more

FIXは私のために働いた

  • すべてのレポート/サブレポートの言語プロパティを から"groovy"に更新したところ"Java"、修正されました。
  • 回避策のように見えますが、欠落しているクラスを含むライブラリを更新することをお勧めしjasperreports-5.1.2.jarます。
于 2015-12-17T08:04:14.720 に答える