バージョンを選択する必要がある場合、最も安定しているのはどれですか?
いろいろなバージョンでレポートしてみました。iReport (任意のバージョン)からはすべて正常に動作しますが、Javaクラスからコンパイルしようとすると(メインレポートは正常にコンパイルされますが、サブレポートはコンパイルされないため、 JasperCompileManagerは「subreport.jasper 」を見つけられません)
JasperDesign jasperDesign = JRXmlLoader.load("C://report/reportPI.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
だから私はそれらをiReport 2.0.7でコンパイルして使用しました。
その他は、 4.5.1や4.7.0などのiReportの上位バージョンでコンパイルされたファイルです。
この行でクラッシュ
JasperReport jasperReport =(JasperReport) JRLoader.loadObject("C:\\report/reportPI.jasper");
戻る
cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field
net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type
net.sf.jasperreports.engine.JRParagraphContainer in instance of
net.sf.jasperreports.engine.base.JRBaseParagraph
フォーラムでは、jar の問題であると述べ、他のフォーラムでは設計エラーであると述べました。しかし、私の場合、jarですべてを試したので、それは別のものです。
実際、私は(テストによって)解決策を見つけましたが、少し複雑です。iReport 2.0.7とiReport 4.5.1で設計したメイン レポート(多くのバンドと多くのサブレポートを含む) を使用してサブレポートをコンパイルし、最初のコードでメイン レポートをコンパイルします。
それは機能しますが、OneSubreport の下で多くのサブレポートを実行したい場合です。同じ問題に戻ります。
質問としてはかなり詳細だと思いますが、必要です
すべての状況が機能する安定したバージョンを誰かが持っている場合は、助けてください
さらにテストした後..
を使用して、ファイル内の subreport.jrxml をコンパイルしようとしました
JasperDesign jasperDesign1 = JRXmlLoader.load("C://report/report74.jrxml");
JasperCompileManager.compileReportToFile(jasperDesign1, "C://report");
しかし、応答Access denied to save
。