Ich bin ziemlich vertraut mit Jasperstudio 6.3.0 und bin in der Lage, andere Berichte von Java ohne Probleme zu laufen. Funktioniert gut. Ich kann jedoch keinen Bericht erstellen, der Unterberichte enthält. Ich habe hier auf Stackoverflow Lösungen gefunden, die aber immer noch nicht funktionieren. In meiner Lösung lade ich die Berichte in eine Tabelle für die Speicherung und ziehe die Unterberichte und den Hauptbericht aus der Datenbank und kompiliere die jrxml. Alles funktioniert gut bis dahin und dannRufen Sie Jasper Unterberichte in Java
net.sf.jasperreports.engine.JRException: Ressource nicht gefunden bei: subInvoiceSummary.jasper. Fehler in runReport: Ressource nicht gefunden unter: subInvoiceSummary.jasper. bei net.sf.jasperreports.repo.RepositoryUtil.getResourceFromLocation (RepositoryUtil.java:153) bei net.sf.jasperreports.repo.RepositoryUtil.getReport (RepositoryUtil.java:112) bei net.sf.jasperreports.engine. fill.JRFillSubreport.loadReport (JRFillSubreport.java:398) bei net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport (JRFillSubreport.java:365) bei net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport (JRFillSubreport.java:427) unter net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate (JRFillSubreport.java:341) unter net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate (JRFillElementContainer.java:381) unter net.sf.jasperreports.engine.fill.JRFillBand.evaluate (JRFillBand.java: 500) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand (JRVerticalFiller.java:2022) bei net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail (JRVerticalFiller.java:748) bei net.sf. jasperreports.engine.fill.JRVerticalFiller.fillReportStart (JRVerticalFiller.java:255) unter net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport (JRVerticalFiller.java:115) unter net.sf.jasperreports.engine.fill. JRBaseFiller.fill (JRBaseFiller.java:580) unter net.sf.jasperreports.engine.fill.BaseReportFiller.fill (BaseReportFiller.java:396) unter net.sf.jasperreports.engine.fill.JRFiller.fill (JRFiller. java: 90) bei net.sf.jasperreports.engine.JasperFillManager.fill (JasperFillManager.java:456) bei net.sf.jasperreports.engine.JasperFillManager.fillRe Port (JasperFillManager.java:863)
Ich habe viele Permutationen ausprobiert, aber ohne Erfolg. Ich habe auch versucht, den Code für jasperreports einzutragen, um den oben gezeigten Stack zu verfolgen, aber es gibt so viele .jar-Abhängigkeiten und Versionen von Abhängigkeiten, die ich nach zwei Tagen nicht in meinem Projekt kompilieren konnte (wenn jemand einen Link zu eine einfache Methode, um diese Arbeit zu machen, lass es mich wissen). Hier ist der Code-Schnipsel:
Map<String, Object> rptParms = new HashMap<String, Object>();
List<daRecOnDemandSubReport> subReports = report.getOnDemandSubReport();
Iterator<daRecOnDemandSubReport> subReportList = subReports.iterator();
while (subReportList.hasNext()) {
daRecOnDemandSubReport subReport = subReportList.next();
ByteArrayInputStream x = getSubReportDataStream(dbConnROIPro, report.getODReportID());
JasperReport compiledSubReport = JasperCompileManager.compileReport(x);
String fileName = subReport.getODSubReportFileName().replace(".jrxml", ".jasper");
rptParms.put(fileName, compiledSubReport);
}
ByteArrayInputStream x = getReportDataStream(dbConnROIPro, report.getODReportID());
JasperReport cRpt = JasperCompileManager.compileReport(x);
rptParms = getReportParameters(dbConnGTrack,report.getODReportID(), rptParms, report.getOnDemandParm(), programID);
JasperPrint rpt = JasperFillManager.fillReport(cRpt,rptParms,dbConnGTrack.getDbConn());
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
JRXlsxExporter XLSXexporter = new JRXlsxExporter();
XLSXexporter.setExporterInput(new SimpleExporterInput(rpt));
XLSXexporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStream));
XLSXexporter.exportReport();
Vielen Dank im Voraus für jede Hilfe