Zum Inhalt springen

JasperReports - mehrere SQL-Statements für Crosstab


Marsanka

Empfohlene Beiträge

Hi,

ich habe eine spezielle Frage an JasperReports-Kenner.

Ich versuche, den jrxml-Bericht mit einer Crosstab zu erstellen. Dabei ist es möglich, einen subDataset zu definieren und eine zusätzliche SQL-Query einzubinden.

Ist es denn überhaupt möglich, innerhalb einer Crostab mehrere subDatasets zu definieren?

Hier ist die jrxml-Datei:



<?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="Grabdaten_Erfassung" pageWidth="595" pageHeight="842" columnWidth="565" leftMargin="15" rightMargin="15" topMargin="10" bottomMargin="10">

	<style name="Arial_Normal" isDefault="true" fontName="Arial" fontSize="8" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/>

	<style name="Arial_Bold" isDefault="false" fontName="Arial" fontSize="8" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1252" isPdfEmbedded="false"/>

	<subDataset name="FBEZIRK_DATEN">

		<parameter name="BEZIRK" class="java.lang.String"/>

		<queryString>

			<![CDATA[SELECT FRIEDHOF, COUNT(ol_ghaupt.KINDEX) as ANZAHL, ol_friedhof.FNR FROM  ol_friedhof LEFT JOIN ol_ghaupt ON ol_friedhof.FNR = ol_ghaupt.FNR AND ol_friedhof.MANDANT_ID = ol_ghaupt.MANDANT_ID WHERE ol_friedhof.MANDANT_ID = 100010 AND ol_friedhof.FBEZIRK = $P{BEZIRK} GROUP BY FRIEDHOF, ol_friedhof.FNR]]>

		</queryString>

		<field name="FRIEDHOF" class="java.lang.String"/>

		<field name="ANZAHL" class="java.lang.Integer"/>

		<field name="FNR" class="java.lang.String"/>

	</subDataset>

	<queryString>

		<![CDATA[SELECT DISTINCT FBEZIRK FROM ol_friedhof WHERE MANDANT_ID = 100010]]>

	</queryString>

	<field name="FBEZIRK" class="java.lang.String"/>

	<title>

		<band height="50">

			<staticText>

				<reportElement x="0" y="0" width="140" height="20"/>

				<textElement>

					<font fontName="Arial" size="14" isBold="true"/>

				</textElement>

				<text><![CDATA[Grabdatenerfassung]]></text>

			</staticText>

			<textField pattern="dd.MM.yyyy">

				<reportElement x="465" y="0" width="100" height="20"/>

				<textElement textAlignment="Right">

					<font fontName="Arial" size="14" isBold="true"/>

				</textElement>

				<textFieldExpression class="java.util.Date"><![CDATA[new java.util.Date()]]></textFieldExpression>

			</textField>

		</band>

	</title>

	<detail>

		<band height="70" splitType="Stretch">

			<crosstab isRepeatColumnHeaders="false">

				<reportElement mode="Opaque" x="0" y="0" width="565" height="60"/>

				<crosstabParameter name="BEZIRK">

					<parameterValueExpression><![CDATA[$F{FBEZIRK}]]></parameterValueExpression>

				</crosstabParameter>

				<crosstabDataset>

					<dataset>

						<datasetRun subDataset="FBEZIRK_DATEN">

							<datasetParameter name="BEZIRK">

								<datasetParameterExpression><![CDATA[$F{FBEZIRK}]]></datasetParameterExpression>

							</datasetParameter>

						</datasetRun>					

					</dataset>

				</crosstabDataset>

				<rowGroup name="Friedhof" width="120" totalPosition="End">

					<bucket>

						<bucketExpression class="java.lang.String"><![CDATA[$F{FRIEDHOF}]]></bucketExpression>

					</bucket>

					<crosstabRowHeader>

						<cellContents backcolor="#FFFFFF" mode="Opaque">

							<box>

								<topPen lineWidth="1.0" lineStyle="Solid"/>

								<leftPen lineWidth="1.0" lineStyle="Solid"/>

								<bottomPen lineWidth="1.0" lineStyle="Solid"/>

								<rightPen lineWidth="1.0" lineStyle="Solid"/>

							</box>

							<textField>

								<reportElement x="5" y="5" width="110" height="20"/>

								<textElement>

									<font size="10"/>

								</textElement>

								<textFieldExpression class="java.lang.String"><![CDATA[$V{Friedhof}]]></textFieldExpression>

							</textField>

						</cellContents>

					</crosstabRowHeader>

					<crosstabTotalRowHeader>

						<cellContents backcolor="#999999" mode="Opaque">

							<box>

								<topPen lineWidth="1.0" lineStyle="Solid"/>

								<leftPen lineWidth="1.0" lineStyle="Solid"/>

								<bottomPen lineWidth="1.0" lineStyle="Solid"/>

								<rightPen lineWidth="1.0" lineStyle="Solid"/>

							</box>

							<textField>

								<reportElement x="5" y="5" width="110" height="20"/>

								<textElement>

									<font size="10"/>

								</textElement>

								<textFieldExpression class="java.lang.String"><![CDATA[$P{BEZIRK} + " gesamt:"]]></textFieldExpression>

							</textField>

						</cellContents>

					</crosstabTotalRowHeader>

				</rowGroup>

				<columnGroup name="Grabanzahl" height="30" totalPosition="End" headerPosition="Stretch">

					<bucket>

						<bucketExpression class="java.lang.Integer"><![CDATA[($F{ANZAHL})]]></bucketExpression>

					</bucket>

					<crosstabColumnHeader>

						<cellContents backcolor="#FFFFFF" mode="Opaque">

							<box>

								<topPen lineWidth="1.0" lineStyle="Solid"/>

								<leftPen lineWidth="1.0" lineStyle="Solid"/>

								<bottomPen lineWidth="1.0" lineStyle="Solid"/>

								<rightPen lineWidth="1.0" lineStyle="Solid"/>

							</box>

						</cellContents>

					</crosstabColumnHeader>

					<crosstabTotalColumnHeader>

						<cellContents backcolor="#FFFFFF" mode="Opaque">

							<box>

								<topPen lineWidth="1.0" lineStyle="Solid"/>

								<leftPen lineWidth="1.0" lineStyle="Solid"/>

								<bottomPen lineWidth="1.0" lineStyle="Solid"/>

								<rightPen lineWidth="1.0" lineStyle="Solid"/>

							</box>

							<staticText>

								<reportElement x="10" y="5" width="60" height="20"/>

								<textElement textAlignment="Center">

									<font size="12" isBold="true"/>

								</textElement>

								<text><![CDATA[Gräber]]></text>

							</staticText>

						</cellContents>

					</crosstabTotalColumnHeader>

				</columnGroup>

				<measure name="ANZAHLSum" class="java.lang.Integer" calculation="Sum">

					<measureExpression><![CDATA[$F{ANZAHL}]]></measureExpression>

				</measure>

				<crosstabCell width="0" height="25">

					<cellContents backcolor="#FFFFFF" mode="Transparent">

						<box>

							<topPen lineWidth="1.0" lineStyle="Solid"/>

							<leftPen lineWidth="1.0" lineStyle="Solid"/>

							<bottomPen lineWidth="1.0" lineStyle="Solid"/>

							<rightPen lineWidth="1.0" lineStyle="Solid"/>

						</box>

					</cellContents>

				</crosstabCell>

				<crosstabCell width="80" height="25" columnTotalGroup="Grabanzahl">

					<cellContents backcolor="#FFFFFF" mode="Opaque">

						<box>

							<topPen lineWidth="1.0" lineStyle="Solid"/>

							<leftPen lineWidth="1.0" lineStyle="Solid"/>

							<bottomPen lineWidth="1.0" lineStyle="Solid"/>

							<rightPen lineWidth="1.0" lineStyle="Solid"/>

						</box>

						<textField pattern="##.###">

							<reportElement style="Arial_Bold" x="10" y="0" width="60" height="25"/>

							<textElement textAlignment="Right" verticalAlignment="Middle">

								<font size="10"/>

							</textElement>

							<textFieldExpression class="java.lang.Integer"><![CDATA[$V{ANZAHLSum}]]></textFieldExpression>

						</textField>

					</cellContents>

				</crosstabCell>

				<crosstabCell width="80" height="25" rowTotalGroup="Friedhof" columnTotalGroup="Grabanzahl">

					<cellContents backcolor="#999999" mode="Opaque">

						<box>

							<topPen lineWidth="1.0" lineStyle="Solid"/>

							<leftPen lineWidth="1.0" lineStyle="Solid"/>

							<bottomPen lineWidth="1.0" lineStyle="Solid"/>

							<rightPen lineWidth="1.0" lineStyle="Solid"/>

						</box>

						<textField pattern="##.###">

							<reportElement style="Arial_Bold" x="10" y="0" width="60" height="25"/>

							<textElement textAlignment="Right" verticalAlignment="Middle">

								<font size="10"/>

							</textElement>

							<textFieldExpression class="java.lang.Integer"><![CDATA[$V{ANZAHLSum}]]></textFieldExpression>

						</textField>

					</cellContents>

				</crosstabCell>

			</crosstab>

		</band>

	</detail>

</jasperReport>


Danke für die Antworten!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...