JasperReports Parameter übergeben

MScalli

Erfahrenes Mitglied
Hi leutz.
Habe gestern angefangen mich mit JasperReports zu befassen und bin schon am
Anfang ziemlich ratlos.
habe mir jetzt schon einiges an tutorials usw. durchgelesen und beispielcodes
ausprobiert. dort wird das parameter übergeben nur ganz kurz angesprochen(also z.B. NUR
nen String )
alles andere klappt eigentlich ganz gut!!

hier mal mein quelltext

mein Java code
Code:
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;

public class Example1 
{

 
public void testIt() throws JRException
{ 
	JasperReport jasperReport;
    JasperPrint jasperPrint;
  
    HashMap<String, String> parameter = new HashMap<String, String>();
    parameter.put("aUeberschrift","test");   
    
    jasperReport = JasperCompileManager.compileReport("D:\\1_JasperReports\\JRXML\\Example1.jrxml");
    jasperPrint = JasperFillManager.fillReport(jasperReport, parameter, new JREmptyDataSource());
    JasperExportManager.exportReportToPdfFile(jasperPrint, "D:\\1_JasperReports\\output\\Example1.pdf");   
}
public static void main(String[] args) 
{
	try 
	{
		new Example1().testIt();
		System.out.println("pdf created...");
	} 
	catch (JRException e) 
	{ 
		e.printStackTrace();
	}
} 
 	
}

und hier die .jrxml datei

Code:
<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
  name="Example1"
  columnCount="1"
  printOrder="Vertical"
  orientation="Portrait"
  pageWidth="595"
  pageHeight="842"
  columnWidth="535"
  columnSpacing="0"
  leftMargin="30"
  rightMargin="30"
  topMargin="20"
  bottomMargin="20"
  whenNoDataType="NoPages"
  isTitleNewPage="false"
  isSummaryNewPage="false">
 <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="aUeberschrift" isForPrompting="false" class="java.lang.String"/>
 <background>
 	<band height="0"  isSplitAllowed="true" >
 	</band>
 </background>
 <title>
 <band height="41"  isSplitAllowed="true" >
	 <staticText><reportElement x="36" y="6" width="462" height="33" key="staticText-1"/>
		 <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
		 <textElement textAlignment="Center"><font size="12"/></textElement>
			<text>
				<![CDATA[$P{aUeberschrift}]]>
			</text>
	 </staticText>
 </band>
 </title>

</jasperReport>

eigentlich sollte jetzt der Parameter mit dem Inhalt "test" übergeben werden
und als überschrift angezeigt werden.
aber bei mir steht "$P{aUeberschrift} " als text in der PDF datei.

schon mal thx für die helfer ;)

ach ja und wenn wer ne gute einleitung in deutsch kennt- ein link wär klasse..
hab zwar schon ne masse durch aber evtl. weiss noch einer was gutes !!
 
in Deinem Example1.jasper benutzt Du einen StaticText. Ein StaticText kann keinen Parameter erhalten. Wenn Du die Zeile mit StaticText:

Code:
	 <staticText><reportElement x="36" y="6" width="462" height="33" key="staticText-1"/>
		 <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
		 <textElement textAlignment="Center"><font size="12"/></textElement>
			<text>
				<![CDATA[$P{aUeberschrift}]]>
			</text>
	 </staticText>

mit das ersätzt:

Code:
<textField><reportElement x="36" y="6" width="162" height="33" key="staticText-1"/>
		 <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
		 <textElement textAlignment="Center"><font size="12"/></textElement>
				<textFieldExpression class="java.lang.String"><![CDATA[$P{aUeberschrift}]]></textFieldExpression>
	 </textField>


Wird es funktionieren :)
 
Zurück