FastReport Tipps und Tricks: Bänder: Unterschied zwischen den Versionen
(→Band per Code unterdrücken) |
|||
Zeile 46: | Zeile 46: | ||
Etwas schwieriger wird es, wenn es '''mehrere Abfragen''' im Code gibt, die das Visible für das Band ein- oder ausschalten. '''[[FastReport Band unterdrücken mit mehreren Bedingungen|Dieser Artikel]]''' beschreibt, wie man da am Besten vorgeht. | Etwas schwieriger wird es, wenn es '''mehrere Abfragen''' im Code gibt, die das Visible für das Band ein- oder ausschalten. '''[[FastReport Band unterdrücken mit mehreren Bedingungen|Dieser Artikel]]''' beschreibt, wie man da am Besten vorgeht. | ||
+ | |||
+ | ;Postionen-Band unterdrücken, wenn Kapitel-Überschrift unterdrückt ist: | ||
+ | |||
+ | Man kann Positionen auch unterdrücken, wenn die Kapitel-Überschrift das Kennzeichen "Nicht drucken" hat. Beispiele: | ||
+ | |||
+ | Überschriften-Band ("GroupHeader1"): | ||
+ | |||
+ | |||
+ | procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent); | ||
+ | begin | ||
+ | // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird. | ||
+ | |||
+ | // Wenn das Druck-Kennzeichen auf "nicht drucken" steht: Ausblenden: //JC//160214// | ||
+ | if <Positionen."DruckKennzeichen_0Nicht_1Normal_2_MitBez_3NurKap_4OhneText"> = 0 then | ||
+ | begin | ||
+ | GroupHeader1.Visible := False; | ||
+ | exit; | ||
+ | end | ||
+ | else | ||
+ | GroupHeader1.Visible := True; | ||
+ | ... | ||
+ | |||
+ | |||
+ | Positionen-Band: | ||
+ | |||
+ | procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent); | ||
+ | begin | ||
+ | // Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band ausgegeben wird. | ||
+ | |||
+ | // Grundstellung: Band ist sichtbar! Weiter unten wird es u.U. wieder ausgeschaltet! | ||
+ | DetailPositionen.Visible := True; | ||
+ | |||
+ | // Kapitel-Position ausblenden: | ||
+ | if <Positionen."PosNr"> = 0 then | ||
+ | begin | ||
+ | DetailPositionen.Visible := False; | ||
+ | exit; | ||
+ | end; | ||
+ | |||
+ | // Wenn das Druck-Kennzeichen auf "nicht drucken" steht: Ausblenden: //JC//160214// | ||
+ | if <Positionen."DruckKennzeichen_0Nicht_1Normal_2_MitBez_3NurKap_4OhneText"> = 0 then | ||
+ | begin | ||
+ | DetailPositionen.Visible := False; | ||
+ | exit; | ||
+ | end; | ||
+ | |||
+ | '''// Wenn das Druck-Kennzeichen des KAPITELS (X.0) auf "nicht drucken" steht: Ausblenden!''' | ||
+ | '''if <Positionen."KapitelDruckKennz"> = 0 then''' | ||
+ | '''begin''' | ||
+ | ''' DetailPositionen.Visible := False;''' | ||
+ | ''' exit;''' | ||
+ | '''end;''' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | * Hinweis: Diese Möglichkeit steht ab Release 171025 zur Verfügung! | ||
=== Kapitel unterdrücken wenn alle Positionen ausgegeben sind === | === Kapitel unterdrücken wenn alle Positionen ausgegeben sind === |
Version vom 25. Oktober 2017, 10:36 Uhr
Inhaltsverzeichnis
1 Bänder
1.1 Kapitel-Positionen zusammenhalten
Es kann vorkommen, dass auf die Seite nur noch die Kapitel-Überschrift passt und keine Position mehr. Beispiel:
Um das zu verhinden, setzt man die Option:
Nachher:
1.2 Band per Code unterdrücken
Im Prinzip kann man ein Band ganz einfach im Code unterdrücken, indem man eine Formel schreibt, die unter bestimmten Umständen die Eigenschaft Visible (=sichtbar) auf False (falsch, nein) stellt. Beispiel:
// Kapitel-Position ausblenden: if <Positionen."PosNr"> = 0 then // Wenn es eine Kapitel-Position ist! begin DetailPositionen.Visible := False; end;
oder kürzer:
if <Positionen."PosNr"> = 0 then // Wenn es eine Kapitel-Position ist! DetailPositionen.Visible := False;
Im Detail-Bereich (z.B. bei Auftrags-Positionen), der ja mehrfach wiederholt wird, würde sich dieses Unsichtbar schalten aber auf alle folgenden Detail-Daten auswirken! Ab dem Moment würden die restlichen Position nicht mehr erscheinen! Also muss man im Code festlegen, was sonst ("else") passieren soll, wenn die Bedingung nicht erfüllt ist. Das könnte dann so aussehen:
// Kapitel-Position ausblenden: if <Positionen."PosNr"> = 0 then // Wenn es eine Kapitel-Position ist! begin DetailPositionen.Visible := False; end else // Wenn es KEINE Kapitel-Position ist! DetailPositionen.Visible := True;
Etwas schwieriger wird es, wenn es mehrere Abfragen im Code gibt, die das Visible für das Band ein- oder ausschalten. Dieser Artikel beschreibt, wie man da am Besten vorgeht.
- Postionen-Band unterdrücken, wenn Kapitel-Überschrift unterdrückt ist
Man kann Positionen auch unterdrücken, wenn die Kapitel-Überschrift das Kennzeichen "Nicht drucken" hat. Beispiele:
Überschriften-Band ("GroupHeader1"):
procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent); begin // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird. // Wenn das Druck-Kennzeichen auf "nicht drucken" steht: Ausblenden: //JC//160214// if <Positionen."DruckKennzeichen_0Nicht_1Normal_2_MitBez_3NurKap_4OhneText"> = 0 then begin GroupHeader1.Visible := False; exit; end else GroupHeader1.Visible := True; ...
Positionen-Band:
procedure DetailPositionenOnBeforePrint(Sender: TfrxComponent); begin // Dieser Code wird ausgeführt, BEVOR das Positionen-Detail-Band ausgegeben wird.
// Grundstellung: Band ist sichtbar! Weiter unten wird es u.U. wieder ausgeschaltet! DetailPositionen.Visible := True;
// Kapitel-Position ausblenden: if <Positionen."PosNr"> = 0 then begin DetailPositionen.Visible := False; exit; end;
// Wenn das Druck-Kennzeichen auf "nicht drucken" steht: Ausblenden: //JC//160214// if <Positionen."DruckKennzeichen_0Nicht_1Normal_2_MitBez_3NurKap_4OhneText"> = 0 then begin DetailPositionen.Visible := False; exit; end;
// Wenn das Druck-Kennzeichen des KAPITELS (X.0) auf "nicht drucken" steht: Ausblenden! if <Positionen."KapitelDruckKennz"> = 0 then begin DetailPositionen.Visible := False; exit; end;
- Hinweis: Diese Möglichkeit steht ab Release 171025 zur Verfügung!
1.3 Kapitel unterdrücken wenn alle Positionen ausgegeben sind
Manchmal gibt es in der Auftragsverwaltung Aufträge, die den verschiedenen Teilmengen entsprechen, die gefertigt und ausgeliefert werden. Die Positionen, die vollständig ausgeliefert wurden, werden unterdrückt. Allerdings kommen die Kapitel-Überschriften noch, obwohl alle folgenden Positionen des Kapitels vollständig ausgegeben sind. Mit Hilfe eine berechneten Feldes kann man die Kapitel-Überschrift in diesem Fall unterdrücken.
Einzelheiten werden in FastReport: Kapitel unterdrücken wenn alle Positionen ausgegeben sind beschrieben.
1.4 Band dehnen
Eine wichtige und tolle Eigenschaft eines Bands in FastReport ist es, dass es sich optional dehnen kann, also an die Größe (genauer gesagt Höhe) der auszugebenden Daten anpassen kann.
Dieser Artikel beschreibt das.