FastReport Tipps und Tricks: Child-Band wird nicht gedruckt: Unterschied zwischen den Versionen
Aus GEVITAS
(Die Seite wurde neu angelegt: „== Allgemeines == Ein Child-Band wird verwendet, um einen Bereich (z.B. die Details) eines Reports ein- oder auszuschalten, abhängig von bestimmten Feld- ode…“) |
|||
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Ein Child-Band wird verwendet, um einen Bereich (z.B. die Details) eines Reports ein- oder auszuschalten, abhängig von bestimmten Feld- oder Parameter-Werten. | Ein Child-Band wird verwendet, um einen Bereich (z.B. die Details) eines Reports ein- oder auszuschalten, abhängig von bestimmten Feld- oder Parameter-Werten. | ||
+ | |||
+ | Das funktioniert meist prima, hat aber einen Fallstrick. | ||
+ | |||
+ | |||
+ | |||
+ | == Die Logik der Child-Bänder == | ||
+ | |||
+ | Ein Master- oder Detail-Band kann '''ein''' Child-Band haben. | ||
+ | |||
+ | Jedes Child-Band kann wiederum '''ein''' Child-Band haben. | ||
+ | |||
+ | Die Bänder sind als "kaskadiert": | ||
+ | |||
+ | * Ganz oben das Haupt-Band (Master- oder Detail-Band) | ||
+ | |||
+ | * Darunter das 1. Child-Band, das zu Hauptband gehört. Das Hauptband oben hat also in der Eigenschaft "Child" das 1. Child-Band. | ||
+ | |||
+ | * Darunter das 2. Child-Band, das zum 1. Child-Band gehört. Das 1. Child-Band hat also in der Eigenschaft "Child" das 2. Child-Band. | ||
+ | |||
+ | * Darunter das 3. Child-Band, das zum 2. Child-Band gehört. Das 2. Child-Band hat also in der Eigenschaft "Child" das 1. Child-Band. | ||
+ | |||
+ | Beispiel: | ||
+ | |||
+ | {| class="wikitable" style="text-align: left;" | ||
+ | !Band | ||
+ | !Name | ||
+ | !Child-Eigenschaft | ||
+ | |- valign="top" | ||
+ | |Detail-Band | ||
+ | |DetailPositionen | ||
+ | |style="background-color: green;"|ChildTechniker | ||
+ | |- valign="top" | ||
+ | |1. Child-Band | ||
+ | |style="background-color: green;"|ChildTechniker | ||
+ | |style="background-color: yellow;"|ChildPosText | ||
+ | |- valign="top" | ||
+ | |2. Child-Band | ||
+ | |style="background-color: yellow;"|ChildPosText | ||
+ | |style="background-color: cyan;"|ChildZusatzText | ||
+ | |- valign="top" | ||
+ | |3. Child-Band | ||
+ | |style="background-color: cyan;"|ChildZusatzText | ||
+ | | | ||
+ | |} | ||
+ | |||
+ | ;Hinweis: | ||
+ | :Wenn man ein Child-Band verschiebt oder löscht und ein neues einfügt, ist diese Kaskadierung u.U. "aufgerissen". | ||
+ | :Eine der Eigenschaften "Child" stimmt nicht oder ist leer. | ||
+ | |||
+ | |||
== Problem == | == Problem == | ||
Trotz korrektem Source-Code wird ein Child-Band nicht gedruckt. | Trotz korrektem Source-Code wird ein Child-Band nicht gedruckt. | ||
+ | |||
+ | <nowiki>procedure ChildPositionenOnBeforePrint(Sender: TfrxComponent);</nowiki> | ||
+ | <nowiki>begin</nowiki> | ||
+ | <nowiki> if ( <Positionen."TextPosition"> = '' ) or ( <AuftragsKopf."KENNZ8"> = 'Nein' ) then</nowiki> | ||
+ | <nowiki> ChildPositionen.Visible := False</nowiki> | ||
+ | <nowiki> else</nowiki> | ||
+ | <nowiki> ChildPositionen.Visible := True;</nowiki> | ||
+ | <nowiki>end;</nowiki> | ||
+ | |||
− | == Ursache | + | == Ursache == |
− | Vermutlich hat das Band, dessen Child | + | Vermutlich hat das Band, dessen Child es ist, nicht die Option |
Child drucken wenn unsichtbar | Child drucken wenn unsichtbar | ||
+ | |||
+ | Somit ist das Child-Band unsichtbar, wenn das zuvor liegende Band unsichtbar ist. | ||
+ | |||
+ | |||
+ | |||
+ | == Lösung == | ||
+ | |||
+ | Klicken Sie mit der rechten Maustaste auf das Band und schalten Sie diese Option ein: | ||
+ | |||
+ | [[Datei:FastReport_ChildBand_Option_Detail_01.png]] | ||
+ | |||
+ | |||
+ | |||
+ | ;Empfehlung: | ||
+ | Es empfiehlt sich, diese Option bei '''allen''' Bändern einzuschalten! | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Links == | ||
+ | |||
+ | * [[FastReport Tipps und Tricks]] | ||
+ | |||
+ | * [[Erstellen eines Reports mit FastReport]] |
Aktuelle Version vom 18. September 2017, 21:41 Uhr
Inhaltsverzeichnis
1 Allgemeines
Ein Child-Band wird verwendet, um einen Bereich (z.B. die Details) eines Reports ein- oder auszuschalten, abhängig von bestimmten Feld- oder Parameter-Werten.
Das funktioniert meist prima, hat aber einen Fallstrick.
2 Die Logik der Child-Bänder
Ein Master- oder Detail-Band kann ein Child-Band haben.
Jedes Child-Band kann wiederum ein Child-Band haben.
Die Bänder sind als "kaskadiert":
- Ganz oben das Haupt-Band (Master- oder Detail-Band)
- Darunter das 1. Child-Band, das zu Hauptband gehört. Das Hauptband oben hat also in der Eigenschaft "Child" das 1. Child-Band.
- Darunter das 2. Child-Band, das zum 1. Child-Band gehört. Das 1. Child-Band hat also in der Eigenschaft "Child" das 2. Child-Band.
- Darunter das 3. Child-Band, das zum 2. Child-Band gehört. Das 2. Child-Band hat also in der Eigenschaft "Child" das 1. Child-Band.
Beispiel:
Band | Name | Child-Eigenschaft |
---|---|---|
Detail-Band | DetailPositionen | ChildTechniker |
1. Child-Band | ChildTechniker | ChildPosText |
2. Child-Band | ChildPosText | ChildZusatzText |
3. Child-Band | ChildZusatzText |
- Hinweis
- Wenn man ein Child-Band verschiebt oder löscht und ein neues einfügt, ist diese Kaskadierung u.U. "aufgerissen".
- Eine der Eigenschaften "Child" stimmt nicht oder ist leer.
3 Problem
Trotz korrektem Source-Code wird ein Child-Band nicht gedruckt.
procedure ChildPositionenOnBeforePrint(Sender: TfrxComponent); begin if ( <Positionen."TextPosition"> = '' ) or ( <AuftragsKopf."KENNZ8"> = 'Nein' ) then ChildPositionen.Visible := False else ChildPositionen.Visible := True; end;
4 Ursache
Vermutlich hat das Band, dessen Child es ist, nicht die Option
Child drucken wenn unsichtbar
Somit ist das Child-Band unsichtbar, wenn das zuvor liegende Band unsichtbar ist.
5 Lösung
Klicken Sie mit der rechten Maustaste auf das Band und schalten Sie diese Option ein:
- Empfehlung
Es empfiehlt sich, diese Option bei allen Bändern einzuschalten!