Hallo Zusammen,
Ich Arbeite das erste mal mit Jasper und habe Probleme mit den Subreports
#Mein REPORT_GESAMTDATEN.jrxml # Soll der Hauptbericht sein
#Mein Subreport SUBREPORT_FOOT_QUER.jrxml #
Jetzt versuche ich in Java diesen Bericht mit subreport zu erstellen.
Ich bekomme nur eine Leere Seite im PDF
Wenn Ich den SUBREPORT_FOOT_QUER einzel erstellen lasse klappt alles...
Ich hab schon in verschieden Foren nach einer Lösung gesucht leider Ohne erfolg
Kann mir bitte jemand sagen was ich Falsch machen PLZ
Ich danke Euch schonmal im Vorraus
MFG
Rester
Ich Arbeite das erste mal mit Jasper und habe Probleme mit den Subreports
#Mein REPORT_GESAMTDATEN.jrxml # Soll der Hauptbericht sein
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created using an evaluation version of JasperAssistant (http://www.jasperassistant.com) -->
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="REPORT_GESAMTDATEN" pageWidth="900" pageHeight="700" orientation="Landscape" columnWidth="700" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20">
<property name="ireport.scriptlethandling" value="2"/>
<property name="ireport.encoding" value="UTF-8"/>
<import value="java.util.*"/>
<import value="net.sf.jasperreports.engine.*"/>
<import value="net.sf.jasperreports.engine.data.*"/>
<parameter name="DS_FUSS" class="net.sf.jasperreports.engine.JRDataSource" isForPrompting="false"/>
<parameter name="SUBFUSS" class="net.sf.jasperreports.engine.JasperReport" isForPrompting="false"/>
<detail>
<band height="500">
<subreport isUsingCache="false">
<reportElement key="subreport-1" x="10" y="286" width="676" height="100"/>
<connectionExpression><![CDATA[$P{DS_FUSS}]]></connectionExpression>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{SUBFUSS}]]></subreportExpression>
</subreport>
</band>
</detail>
</jasperReport>
#Mein Subreport SUBREPORT_FOOT_QUER.jrxml #
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created using an evaluation version of JasperAssistant (http://www.jasperassistant.com) -->
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="SUBREPORT_FOOT_QUER" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30">
<property name="ireport.scriptlethandling" value="0"/>
<property name="ireport.encoding" value="UTF-8"/>
<import value="java.util.*"/>
<import value="net.sf.jasperreports.engine.*"/>
<import value="net.sf.jasperreports.engine.data.*"/>
<parameter name="Aktuser" class="java.lang.String" isForPrompting="false"/>
<detail>
<band height="50">
<staticText>
<reportElement x="86" y="10" width="398" height="29"/>
<textElement/>
<text><![CDATA[
Bezugsart:HT = H,L,W,M / KT = A,B,G,S,Y / JIT = T,F(bezogen auf Nutzer)
]]></text>
</staticText>
</band>
</detail>
</jasperReport>
Jetzt versuche ich in Java diesen Bericht mit subreport zu erstellen.
Code:
package de.qpn;
import java.io.IOException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
public class JasperAufrufversuch {
public static void main(String[] args) {
try {
String filePath;
String outputfile = "ExamplejasperReport";
JasperReport jasperReport;
JasperReport jasperFuss1;
HashMap parameter = new HashMap();
filePath = JasperCompileManager.compileReportToFile("JRXML/SUBREPORT_FOOT_QUER.jrxml");
jasperFuss1 = (JasperReport) JRLoader.loadObject(filePath);
parameter.put("SUBFUSS", jasperFuss1 );
parameter.put("DS_FUSS", null);
filePath = JasperCompileManager.compileReportToFile("JRXML/REPORT_GESAMTDATEN.jrxml");
jasperReport = (JasperReport) JRLoader.loadObject(filePath);
jasperPrint = JasperFillManager.fillReport(jasperReport, parameter, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "output/"+ outputfile + ".pdf");
showFile( outputfile + ".pdf");
System.exit(0);
}
catch (JRException e) {
e.printStackTrace();
System.exit(1);
}
}
/**
* Zeigt den Bericht an.
* @param aFile
*/
private static void showFile(String file) {
Runtime rt = Runtime.getRuntime();
String datei = "cmd.exe /x /c start C:/Workspace/Jasper/output/" + file;
// /* Process pr = */
try {
rt.exec(datei);
}
catch (IOException e) {
e.printStackTrace();
}
}
}
Ich bekomme nur eine Leere Seite im PDF
Wenn Ich den SUBREPORT_FOOT_QUER einzel erstellen lasse klappt alles...
Ich hab schon in verschieden Foren nach einer Lösung gesucht leider Ohne erfolg
Kann mir bitte jemand sagen was ich Falsch machen PLZ
Ich danke Euch schonmal im Vorraus
MFG
Rester