Jasperreports und Subreports

Rester

Grünschnabel
Hallo Zusammen,
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
 
Habe das Problem selber glöst da ja mir keiner Helfen wollte bzw konnte schade...

Das Problem war
Code:
parameter.put("DS_FUSS", null);
hier muss ein leerer DataSource übergeben werden :)

Es sollte also lauten

Code:
parameter.put("DS_FUSS", new JRDataSource() );


dann klappt das auch :)
 
Zurück