Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos Subreports: JasperReport-Parameter, REPORT_DATA_SOURCE, JRNuclosDataSource, Detailband, Run to Bottom, nuclos-reportapi.jar.

globe with meridians Sprache: Deutsch · English

hammer and wrench Subreports

Abhängige Datensätze im Report darstellen – Subreports hochladen, per Parameter einbinden und mit Datenquellen versorgen.

Status
colourPurple
titleHow-to
Status
colourBlue
titleAnwendungsentwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2

Subreports hochladen

Da Subreports in JasperReports nicht in den Hauptreport eigebettet werden können, müssen die Subreports zusätzlich zum Hauptreport abgespeichert werden. Um dies zu ermöglichen, steht das zusätzliche Unterformular Subreports zur Verfügung.

Zusätzlich zur Subreport-Datei (JasperReports-Datei mit Endung *.xml oder *.jrxml) muss ein Parametername angegeben werden. Der Subreport wird als JasperReport mit Hilfe des Parameternamens an den Report übergeben.

Reporting subreport1.gifImage Removed

Subreports im Reportdesign

Um den Subreport im Hauptreport verwenden zu können, muss nun ein Parameter mit dem Namen des zuvor in der Administrationsmaske angegebenen Parameternamens und dem Typ

Was ist ein Subreport?

Ein Subreport stellt abhängige Datensätze (z.​B. Auftragspositionen zu einem Auftrag) innerhalb eines Hauptreports dar. Da JasperReports Subreports nicht einbettet, werden sie getrennt vom Hauptreport gespeichert.

Subreport hochladen

Im Unterformular Subreports lädst du die Subreport-Datei (*.jrxml bzw. *.xml) hoch und gibst einen Parameternamen an. Über diesen Namen wird der Subreport an den Hauptreport übergeben.

Image Added

Subreport-Zuordnung mit Parametername.

Im Reportdesign verwenden

Im Hauptreport einen Parameter mit dem oben vergebenen Namen und dem Typ net.sf.jasperreports.engine.JasperReport

...

erstellt werden.

Anschließend müssen Sie die Eigenschaften des Subreportbereichs (im Hauptformular) in iReport bearbeiten. Hier müssen Sie folgende Einstellungen vornehmen ( Supreport properties):

anlegen. In den Subreport‑Properties setzt du:

...

PropertyWert
Subreport Expression
$P{<parametername>} (z.

...

​B.

...

$P{SUBREPORT_A})
Expression Class

...

net.sf.jasperreports.engine.JasperReport
Connection type

...

Use a datasource expression

...

Data Source Expression

...

Um Subreports in einer tieferen Hierarchie zu verwenden, müssen Sie die tiefer liegenden Subreports über die Subreport-Parameter vom Hauptreport zum entsprechenden Subreport durch reichen. (siehe Abbildung unten)

Datenquellen für Subreports

siehe Codebeispiel unten

Datenquelle des Subreports

...

Füge in den Subreport-Eigenschaften einen Parameter

REPORT_DATA_SOURCE

...

mit folgendem Ausdruck hinzu:

Codeblock
languagejava
((org.nuclos.server.report.api.JRNuclosDataSource)$P{REPORT_DATA_SOURCE}).getDataSource("

...

<Name der Datenquelle in Nuclos>")

Der Subreport muss im Detailbereich des übergeordneten Reports

...

liegen, damit Verbindungs- und Kontextinformationen

...

übergeben werden

...

Beispiel:

Sie haben eine Datenquelle Kunden definiert mit den Ausgabeattributen intid und kundenname. Sie erstellen eine zweite Datenquelle, über die Sie einen Subreport befüllen möchten. Legen Sie einen Parameter intid an und geben Sie den Parameter in der Bedingung des referenzierenden Attributs in dem untergeordneten Businessobjekt (z.B. Ansprechpartner) an. Bei Unterformularen handelt es sich beispielsweise in der Regeln um das Feld INTID_T_UD_GENERICOBJECT. Bei der Reportausführung wird die Datenquelle für jeden Hauptdatensatz (bzw. übergeordneten Datensatz) erneut ausgeführt und die Parameter des Sub-Datenquelle mit den Werten des übergeordneten Datensatzes gefüllt.

Falls Sie Datenquellen für Subreports verwenden und weiterhin die Subreports in iReport auch zu Testzwecken kompilieren wollen, müssen Sie die Datei nuclos-reportapi.jar, die Teil der Distribution ist, zum iReport-Klassenpfad hinzufügen.

. Definierte Datenquellen-Parameter (z.​B. intid) werden je Hauptdatensatz automatisch aus dessen Feldern gefüllt.

Info
titleTesten im Designer

Zum Testkompilieren in Jaspersoft Studio muss nuclos-reportapi.jar (Teil der Distribution) zum Klassenpfad hinzugefügt werden.

...

LastPageFooter im Subreport

Wird ein

...

ganzes Formular

...

als Subreport verwendet,

...

  1. Das Band, in dem der Subreport ausgeführt wird, muss maximiert werden (= Seitengröße)
  2. Das Subreport-Property "Run to Bottom" muss gesetzt sein.

Besonders wichtig bei der Verwendung von Last Page Footer.

gilt: (1) das ausführende Band auf Seitengröße maximieren, (2) das Subreport-Property Run to Bottom setzen. Besonders wichtig beim Last Page Footer.

Warnung
titlePositions-Typ

Expansionsverhalten: Wird ein Subreport im Titel, Page/Column Header oder Group Header/Footer verwendet, muss das Property Positions-Typ = float gesetzt sein.

Wie

...

man einen Sub-Sub-Report baut, steht unter Subreport im Subreport.

Verwandte Seiten

memo Reporting Formulare


Formulare.

Öffnen →

printer Subreport im Designer


Schritt für Schritt.

Öffnen →

clipboard Subreport im Subreport


Tiefere Hierarchie.

Öffnen →

erstellten findet man hier:Subreport im Subreport