JasperReport: Parameter befüllen

Holger

Aktives Mitglied
Hey Leute,

arbeite seit kurzem mit JasperReport. Ich habe über iReport ein jrxml-File erstellt. In diesem xml-File existieren drei field-Tags.
Diese Tags würde ich gerne mit Java befüllen.

Mein Code sieht folgendermaßen aus:

Java:
public static void main(String[] args) {
		System.out.println("Start creation");

		JasperReport report;
		JasperPrint print;

		HashMap<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("logoPath", "temp\\logo.jpg");
		parameters.put("companyName", new String("Company Name"));
		parameters.put("date", new Date());

		try {
			report = JasperCompileManager
					.compileReport("JRXML\\Template2.jrxml");
			for (JRField field : report.getFields()) {
				System.out.println(field.getName() + "|"
						+ field.getValueClassName());
			}
			print = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource());
			JasperExportManager.exportReportToPdfFile(print, "Template2.pdf");
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		System.out.println("Stop creation");
	}

Laut Tutorial sollten so die einzelnen Fields mit den Werten aus der HashMap befüllt werden. Jedoch werden die Felder in der fertigen PDF-Datei mit null angegeben.

Jemand eine Ahnung woran das liegt?

Beiläuftig: Ich verwende die Version 5.0.0 von JasperReport

Beste Grüße
Holger
 
Jap.

Die jrxml sieht folgender Maßen aus:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Template1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isTitleNewPage="true" uuid="6e2477ab-36b4-49c8-a65b-843bee59fb71">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<field name="companyName" class="java.lang.String"/>
<field name="date" class="java.util.Date"/>
<field name="logoPath" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="35" splitType="Stretch"/>
</title>
<pageHeader>
<band height="66" splitType="Stretch">
<textField>
<reportElement uuid="3819151e-d65f-4932-bc77-1b3f876539b5" x="163" y="38" width="392" height="28"/>
<textElement markup="none"/>
<textFieldExpression><![CDATA[$F{date}]]></textFieldExpression>
</textField>
<image>
<reportElement uuid="49162e6a-b888-42c2-9a15-e6734b0764b5" x="0" y="3" width="163" height="63"/>
<imageExpression><![CDATA[$F{logoPath}]]></imageExpression>
</image>
<textField>
<reportElement uuid="11ad4e3e-8010-4c09-8ad3-2f55c91fb98a" x="163" y="3" width="392" height="35"/>
<textElement markup="none">
<font size="12" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{companyName}.toString()]]></textFieldExpression>
</textField>
</band>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="125" splitType="Stretch"/>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch">
<image scaleImage="RetainShape">
<reportElement uuid="49162e6a-b888-42c2-9a15-e6734b0764b5" x="0" y="0" width="118" height="54"/>
<imageExpression><![CDATA[$F{logoPath}]]></imageExpression>
</image>
<textField>
<reportElement uuid="a7f4feb4-8c12-46cb-9584-825557c31d77" x="118" y="0" width="337" height="54"/>
<textElement markup="none"/>
<textFieldExpression><![CDATA[$F{companyName}.toString()]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="ebef98da-41f0-45aa-b506-39259c73db11" x="455" y="0" width="100" height="54"/>
<textElement markup="none"/>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>

[/XML]
 
new String macht man nicht... da reicht
Java:
 String companyName = "CompanyName"

damn... at work haette ich n Beispiel dafuer
 
Das war nur eine Idee meinerseits das es daran liegen könnte, behebt leider auch nicht das Problem.

Für mich sieht es einfach danach aus, das die HashMap nicht wirklich an nimmt, bzw die Werte nicht raus zieht.
 
Der debugger sagt die Map ist befüllt, kann Sie jedoch nicht im print-Objekt wieder finden.

Mein Gedanke ging auch eher in die Richtung das die Map Jasper-intern nicht vernünftig verarbeitet wird
 

Zurück
Oben