jasper ireport subreport ausblenden

peterbanane

Grünschnabel
Hilfe,
kann mir jemand sagen wie man einen subreport bei ireport ausblendet. Ich habe einen Hauptbericht und darin 5 Unterberichte, in zwei dieser Berichten sind keine Daten, daher möchte ich das auch nicht die Überschriften der Felder angezeigt werden, also diese zwei subreports ganz ausblenden. Leider gelingt mir das nicht :(. Vielen Dank wenn sich jemand Gedanken macht und mir einen Rat geben kann.
Liebe Grüße
PeterBanane
 
Hi
Öffne mal deinen Hauptreport und geh da in die Eigenschaften des Subreports.
Im ersten Register ganz unten hast du ein Feld (Wenn du iReport auf deutsch hast heisst es "Drucken wenn")
Dort kannst du sowas wie das hier einfügen:
Java:
(($P{parameter}==null) ? Boolean.FALSE :Boolean.TRUE)

Wenn der Parameter nicht gesetzt wurde, wird der Unterbericht gar nicht geladen, also auch nicht angezeigt. Welchen Paramenter du hier abfragen kannst kannst aber nur du sagen, da ich die Daten in deinem Report ja nicht kenne.
Ich habe es z.B. mal so gemacht, dass wenn der Subreport keine Daten hat ich gar keine Datenquelle für den SubReport übergebe. So konnte ich dann im "Drucken wenn"-Feld einfach die Datenquelle auf NULL abfragen.

Viel Erfolg
jeipack
 
guter Tipp aber leider wird der Unterbericht, bzw. die Überschriften des Unterbericht immer noch angezeigt, meinParameter ID vom Hauptbericht ist gefüllt sonst kämen die anderen UB ja auch nicht. hast du noch einen anderen Tipp ? Bin für jeden Stohhalm dankbar ...
Danke dass du dir überhaupt Gedanken gemacht hast.
LG Peter
 
Die Daten vom Hauptbericht kommen aus einer Tabelle HAUPTBERICHT und die des subreports aus der Tabelle UNTERBERICHT welche über einen Index miteinander verbunden sind (Haupttabelle.ID, Unterbericht.IDHaupttabelle). Deshalb ist Hauptbericht.ID natürlich gefüllt wenn es Daten zum Hauptbericht gibt, in der Tabelle Unterbericht ist das Feld Unterbericht.IDHauptbericht aber nicht gefüllt. Hast du noch Tipps ?
LG Peter
 
Ja.. nun könntest du es auf mehrere Arten lösen:

1. Du überarbeitest den SQL im Hauptbericht in etwa so:
SQL:
select h.field1, h.field2, u.id from HAUPTBERICHT as h
left join UNTERBERICHT as u on  u.IDHauptbericht=h.id
group by h.id
Ich hoffe du kannst SQL lesen (Ansonsten sag was).
Du hast also die genau gleiche Abfrage mit dem Unterschied, dass falls es einen Unterbericht für diesen Hauptbericht gibt das Feld u.id nicht null ist, oder anderst rum, falls es keinen gibt ist es Null. Dieses Feld kannst du nun im "Drucken wenn" Teil abfragen.


2. Ich bin mir nicht sicher ob sowas geht, da ich es noch nie gemacht habe:
Subreports können Daten an den Hauptreport zurück geben. Das kannst du in einem Parameter speichern und somit auch wieder im "Drucken wenn" Teil diesen Parameter abfragen.

3. Du könntest die Datenquelle für den Subreport schon im Hauptreport erstellen. Das ist aber recht kompliziert und tricky und würde ich erst versuchen wenns wirklich nicht anderst geht. Allerdings sehe ich keinen Grund wieso Variante 1 nicht funtkionieren sollte ;)

Have Fun
 
Zuletzt bearbeitet:
Hallo,
ich habe einen iReport Bericht für die Etikettenvorlage von Avery Zweckform Vorlage 3490 erstellt und kann bereits auf den Etikett bögen von Zweckform die Adressetiketten drucken. Gibt es eine Möglichkeit im iReport einzustellen dass beim Erstellen der Etiketten der Startpunkt fürs Drucken ausgewählt werden kann? Oder beim nächsten Etikett seit letztem Druckvorgang weiter gedruckt wird. Es sind 24 kleine Etiketten auf einem DIN A4 Bogen. Ist es möglich z.B beim Drucken das Startetikett auszuwählen um nicht immer ein neues Blatt einlegen zu müssen.

Beste Grüße
Andi
 
Zurück