FastReport: Logo auf Kopien unterdrücken mit der Variable Copy

Aus GEVITAS
Wechseln zu: Navigation, Suche

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.

FastReport Lieferschein Variable Copy 01.png


FastReport Lieferschein Variable Copy 02.png

  • 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:

FastReport Lieferschein Variable Copy 03.png


Geben Sie den Variablen-Namen "Copy" ein und den Standard-Ausdruck 0:

FastReport Lieferschein Variable Copy 04.png


  • 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:

FastReport Lieferschein Variable Copy 05.png

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:

FastReportMemo Kopie .png


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;

3 Links