Jaspersoft iReport Designer 4.0.2 xml structure for cross table

LexeD

Grünschnabel
Hallo,

ich möchte eine Tabelle erstellen mit Hilfe einer bereits zuvor generiereten xml.

Jedoch bekomme ich immer eine leere Seite. Das hatte ich bereits bei eine bar chart, sofern nicht die richtige xml Sturktur gegeben war.

Ich wollte nun fragen ob jemand ein Beispiel hat wie so eine xml aussehen sollte.
Mit SQL ist das alles kein Problem. Da es dort immer automatisch richtig ins Dataset gepflegt wird

Meine jrxml sieht momentan so aus:

Code:
<?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="Chart_cross" language="groovy" pageWidth="802" pageHeight="350" orientation="Landscape" columnWidth="802" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<style name="Crosstab Data Text" hAlign="Center"/>
	<style name="table">
		<box>
			<pen lineWidth="1.0" lineColor="#000000"/>
		</box>
	</style>
	<style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<style name="table_CH" mode="Opaque" backcolor="#BFE1FF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<style name="table_TD" mode="Opaque" backcolor="#FFFFFF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<subDataset name="DataSet">
		<queryString language="xpath2">
			<![CDATA[/employee/person]]>
		</queryString>
		<field name="id" class="java.lang.String">
			<fieldDescription><![CDATA[@id]]></fieldDescription>
		</field>
		<field name="EID" class="java.lang.String">
			<fieldDescription><![CDATA[EID]]></fieldDescription>
		</field>
		<field name="ENAME" class="java.lang.String">
			<fieldDescription><![CDATA[ENAME]]></fieldDescription>
		</field>
		<field name="ESALARY" class="java.lang.String">
			<fieldDescription><![CDATA[ESALARY]]></fieldDescription>
		</field>
	</subDataset>
	<parameter name="dataset" class="net.sf.jasperreports.engine.JRDataSource" isForPrompting="false">
		<defaultValueExpression><![CDATA[]]></defaultValueExpression>
	</parameter>
	<queryString language="xPath">
		<![CDATA[/employee/person]]>
	</queryString>
	<field name="id" class="java.lang.String">
		<fieldDescription><![CDATA[@id]]></fieldDescription>
	</field>
	<field name="EID" class="java.lang.String">
		<fieldDescription><![CDATA[EID]]></fieldDescription>
	</field>
	<field name="ENAME" class="java.lang.String">
		<fieldDescription><![CDATA[ENAME]]></fieldDescription>
	</field>
	<field name="ESALARY" class="java.lang.String">
		<fieldDescription><![CDATA[ESALARY]]></fieldDescription>
	</field>
	<detail>
		<band height="350" splitType="Stretch">
			<componentElement>
				<reportElement key="" mode="Transparent" x="29" y="13" width="738" height="321" isPrintWhenDetailOverflows="true"/>
				<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
					<datasetRun subDataset="DataSet"/>
					<jr:column width="90">
						<jr:tableHeader height="30" rowSpan="1">
							<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>
						</jr:tableHeader>
						<jr:tableFooter height="30" rowSpan="1">
							<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>
							<textField>
								<reportElement x="5" y="5" width="70" height="20"/>
								<textElement/>
								<textFieldExpression class="java.lang.String"><![CDATA[$F{ESALARY}]]></textFieldExpression>
							</textField>
						</jr:tableFooter>
						<jr:columnHeader height="30" rowSpan="1">
							<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>
							<textField>
								<reportElement x="5" y="5" width="70" height="20"/>
								<textElement/>
								<textFieldExpression class="java.lang.String"><![CDATA[$F{id}]]></textFieldExpression>
							</textField>
						</jr:columnHeader>
						<jr:columnFooter height="30" rowSpan="1">
							<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>
							<textField>
								<reportElement x="5" y="5" width="70" height="20"/>
								<textElement/>
								<textFieldExpression class="java.lang.String"><![CDATA[$F{ENAME}]]></textFieldExpression>
							</textField>
						</jr:columnFooter>
						<jr:detailCell height="30" rowSpan="1">
							<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>
							<textField>
								<reportElement x="5" y="5" width="70" height="20"/>
								<textElement/>
								<textFieldExpression class="java.lang.String"><![CDATA[$F{EID}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
				</jr:table>
			</componentElement>
		</band>
	</detail>
</jasperReport>

Meine XML Datei sieht so aus:

Code:
<employee>
	<person id="1">
		<EID>36777</EID>
		<ENAME>kamal</ENAME>
		<ESALARY>1000</ESALARY>
	</person>
	<person id="2">
		<EID>3456</EID>
		<ENAME>anu</ENAME>
		<ESALARY>2345</ESALARY>
	</person>
	<person id="3">
		<EID>34784</EID>
		<ENAME>AJU</ENAME>
		<ESALARY>123456</ESALARY>
	</person>
</employee>

Ich möchte nun eigentlich 3 Einträge nebeneinander als Ergebnis sehen.

Mein Dataset sieht so aus:

2rgfkg4.png


Jemand eine Idee oder vorschläge?

Vorab: Ich habe sehr wenig Ahnung von Java!
Ein wenig Java script...
Aber kann in anderen Sprachen Programmieren.

Danke vorab Alex
 
Zuletzt bearbeitet:
Zurück