FastReport: Logo auf Kopien unterdrücken mit der Variable Copy
Inhaltsverzeichnis
1 Allgemeines
Beim Drucken eines Formulares stellt das GEVITAS-Druckprogramm ("GevitasFormPrint") die Variable Copy zur Verfügung, in der die Kopie-Nummer des Ausdrucks enthält, wenn man im Druckprogramm mehrere Kopien ausgewählt hat.
Damit kann man z.B. das Firmenlogo auf den Kopien unterdrücken und/oder auf den Kopien den Text "KOPIE" drucken.
- Diese Variable wird nur beim Drucken des Reports gefüllt! Bei der Vorschau oder dem Export enthält die Variable immer 0!
Copy enthält:
- 0 = Original wird gedruckt oder Vorschau angezeigt.
- 1 = Erste Kopie wird gedruckt.
- 2 = Zweite Kopie wird gedruckt.
usw.
2 Beispiele
Man öffnet den Report im Designer und legt mit Report ⇒ Variablen eine neue Variable mit dem Namen "Copy" an.
- In diesem Report gibt es schon eine Kategorie ("InterneVariablen"). Klicken Sie diese Kategorie an und dann auf dem Button Neue Variable anlegen. Wenn es in Ihrem Report keine Katagorie gibt müssen Sie zuerst eine neue anlegen. Eigene Variablen können nur in einer eigenen Kategorie angelegt werden! Dieses Video zeigt, wie das geht.
Klicken Sie auf Variable bearbeiten:
Geben Sie den Variablen-Namen "Copy" ein und den Standard-Ausdruck 0:
- Achten Sie auf die genaue Schreibweise!
Nun kann man die Variable benutzen, um z.B. das Logo auf den Kopien auszublenden.
2.1 Logo auf Kopien ausblenden
Wir nehmen an, dass es im Report ein Grafik-Objekt "pictureBasisKopfLogo" gibt, das das Firmenlogo beinhaltet. Dieses Logo soll nun auf den Kopien unterdrückt werden.
Dazu klicken Sie einmal (kein Doppeklick!) auf das Objekt. Im Objekt-Inspektor links schaltet man auf Ereignisse um:
Doppelklicken Sie auf die Zeile OnBeforePrint. Dann geben Sie folgenden Code ein:
procedure pictureBasisKopfLogoOnBeforePrint_inherited(Sender: TfrxComponent); begin // Das Logo erst man einschalten. Unten wird es u.U. wieder ausgeschaltet! pictureBasisKopfLogo.Visible := True; // Logo per Kennzeichen unterdrücken: if <AuftragsKopf."KENNZ1"> = 'Nein' then pictureBasisKopfLogo.Visible := False; // Auf der Kopie das Logo unterdrücken: if ( <Copy> > 0 ) then pictureBasisKopfLogo.Visible := False; end;
Der Code schaltet das Logo erst mal ein. Die folgenden Zeilen schalten das Logo u.U. aus. Hier ist es so, dass das Logo über das Kennzeichen1 ausgeschaltet werden kann, wenn dort Nein steht.
In den folgenden Zeilen wird das Logo ausgeschaltet, wenn die Kopie größer als 0 ist.
2.2 Hinweis "Kopie"
Man kann ein Textfeld (Memo-Feld) in den Report einfügen und als Text z.B. das Wort "K O P I E [Copy]" festlegen.
Beispiel:
Dann verwendet man folgenden Code, um das Memo-Feld nur auf den Kopien auszugeben:
procedure pictureBasisKopfLogoOnBeforePrint_inherited(Sender: TfrxComponent); begin MemoKopie.Visible := False; // Auf der Kopie das Memo unterdrücken: if ( <Copy> > 0 ) then MemoKopie.Visible := True; end;
Beide Codes zusammengenommen ergaben dann:
procedure pictureBasisKopfLogoOnBeforePrint_inherited(Sender: TfrxComponent); begin pictureBasisKopfLogo.Visible := True; MemoKopie.Visible := False; // Logo per Kennzeichen unterdrücken: if <AuftragsKopf."KENNZ1"> = 'Nein' then pictureBasisKopfLogo.Visible := False; // Auf der Kopie das Memo unterdrücken: if ( <Copy> > 0 ) then begin MemoKopie.Visible := True; pictureBasisKopfLogo.Visible := False; end; end;