FastReport Band unterdrücken mit mehreren Bedingungen

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

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 passieren solle, 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, der das Visible für das Band ein- oder ausschalten. Hier wird beschrieben, wie man da am Besten vorgeht.


2 Die Aufgabe

In einem Auftragsformular sollen Positionen (im Detail-Band) unter mehreren Bedingungen unterdrückt werden:

  • Wenn es eine Kapitel-Überschrift ist (weil die weiter oben im Gruppenkopf gedruckt wird).
  • Wenn das 'Druck-Kennzeichen der Position auf "Nicht drucken" steht.

3 Das Problem =

Mit der

if...then...else

Lösung von oben kommt man nicht weiter, weil jedes if oder else vom nächsten if oder else ja wieder aufgehoben werden würde.

Ein bessere Methode ist es, im Code zuerst einen Grundzustand herzustellen, in dem das Band erst mal sichtbar (Visible := True) gemacht wird. In den folgenden Zeilen wird nun - je nach Bedingung - das Band ausgeschaltet. Das sieht dann z.B. so aus:




4 Links