FastReport Gruppenkopf unterdrücken, wenn keine Daten mehr kommen: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Allgemeines == Man kann den Gruppenkopf einer Gruppe ganz gut dazu benutzen, eine Überschrift über die Positionen zu drucken, die auch auf jeder Seite wi…“)
 
(Der Code)
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
  
 
* Siehe das Beispiel in [[FastReport Beispiel Auftragsformular Struktur der Positionen]].
 
* Siehe das Beispiel in [[FastReport Beispiel Auftragsformular Struktur der Positionen]].
 +
 +
* Siehe auch [[FastReport Standard-Auftragsformular]].
  
 
Es kann nun aber vorkommen, dass die Positionen gerade an Ende einer Seite aufhören und auf der nächsten Seite trotzdem noch die Überschrift dazu gedruckt wird. Das sieht unschön aus:
 
Es kann nun aber vorkommen, dass die Positionen gerade an Ende einer Seite aufhören und auf der nächsten Seite trotzdem noch die Überschrift dazu gedruckt wird. Das sieht unschön aus:
Zeile 22: Zeile 24:
 
=== Der Code ===
 
=== Der Code ===
  
Um das zu verhindern, klickt man in das Ereignis '''<code>OnAfterPrint</code>''' vom Detail-Bereich und gibt folgenden Code ein:
+
Um das zu verhindern, klickt man in das Ereignis '''<code>OnBeforePrint</code>''' der Überschrift (Bereich '''ChildHeaderPositionen''') und gibt folgenden Code ein:
  
  procedure DetailPositionenOnAfterPrint(Sender: TfrxComponent);
+
  procedure ChildHeaderPositionenOnBeforePrint(Sender: TfrxComponent);
 
  begin
 
  begin
 
   // Überschriftszeile unterdrücken, wenn keine Positionen mehr kommen:
 
   // Überschriftszeile unterdrücken, wenn keine Positionen mehr kommen:
Zeile 30: Zeile 32:
 
     ChildHeaderPositionen.Visible := False
 
     ChildHeaderPositionen.Visible := False
 
   else
 
   else
     ChildHeaderPositionen.Visible := True;
+
     ChildHeaderPositionen.Visible := True;          
 
  end;
 
  end;
 +
  
Dieses Code wird ausgeführt, '''nachdem''' die Detail-Positionen gedruckt wurden.  
+
Dieses Code wird ausgeführt, '''bevor''' die Überschrift gedruckt wird.
  
 
=== EOF ===
 
=== EOF ===
Zeile 55: Zeile 58:
 
;Beispiel:
 
;Beispiel:
 
:Das DataSet '''Positionen''' im Auftragsformular kommt aus einer Datenbank-Abfrage, in der die Auftragspositionen, Artikeldaten, berechnete Felder (wie z.B. Gewichte) zusammen "gemischt" wurden und als '''Positionen''' zur Verfügung gestellt werden.
 
:Das DataSet '''Positionen''' im Auftragsformular kommt aus einer Datenbank-Abfrage, in der die Auftragspositionen, Artikeldaten, berechnete Felder (wie z.B. Gewichte) zusammen "gemischt" wurden und als '''Positionen''' zur Verfügung gestellt werden.
 +
 +
== Das Ergebnis ==
 +
 +
Nun der Kopf auf der letzten Seite so aus:
 +
 +
 +
[[Datei:FastReport_Auftragssformular_Struktur_Positionen_Header_Bsp2.png]]
 +
 +
 +
 +
Die Überschrift für die Positionen ist weg!
 +
 +
 +
 +
 +
 +
 +
== Links ==
 +
 +
* [[FastReport Tipps und Tricks]]
 +
 +
* [[FastReport Seitenformat]]
 +
 +
* [[FastReport Daten, Tabellen und Felder]]
 +
 +
* [[FastReport Bands]]
 +
 +
* [[FastReport Objekte und Elemente eines Reports]]
 +
 +
* [[FastReport: Abhängige Formatierung von Feldern]]
 +
 +
* [[FastReport Farb-Konstanten]]
 +
 +
* [[FastReport Namensgebung der Datenbank-Tabellen und -Felder]]
 +
 +
* [[FastReport: Summen im Report bilden]]
 +
 +
* [[FastReport Engine: Der Report-Erzeuger]]
 +
 +
* [[Ladeliste/Packliste mit FastReport]]
 +
 +
* [[FastReport Beispiel Auftragsformular Struktur der Positionen]]
 +
 +
* [//youtu.be/VDTSGf4oIFA Video FastReport Teil 1: Allgemeines]
 +
 +
* [//youtu.be/M3keXvU3JIY Video FastReport Teil 2: Erstes Kennenlernen]
 +
 +
* [//youtu.be/ZEa9te2nyco Video FastReport Teil 3: Den ersten Report erstellen]
 +
 +
* [//youtu.be/IrpqarC0KEc Video FastReport Teil 4: Summen im Report erstellen]
 +
 +
* [//youtu.be/5krqu5oSuGU Video FastReport Teil 10: Vererbung, Erstellen und Verwenden eines Basis-Reports]
 +
 +
* [//www.fast-report.com/de/ Homepage von FastReport]
 +
 +
* [[Etikettendruck Allgemeines]]
 +
 +
* [[GEVITAS Label-Print Installation]]
 +
 +
* [[GEVITAS-Carnet]]

Aktuelle Version vom 22. Dezember 2015, 14:33 Uhr

1 Allgemeines

Man kann den Gruppenkopf einer Gruppe ganz gut dazu benutzen, eine Überschrift über die Positionen zu drucken, die auch auf jeder Seite wiederholt wird.

Es kann nun aber vorkommen, dass die Positionen gerade an Ende einer Seite aufhören und auf der nächsten Seite trotzdem noch die Überschrift dazu gedruckt wird. Das sieht unschön aus:

Beispiel:

FastReport Auftragssformular Struktur Positionen Header Bsp.png



Dieses Band soll unterdrückt werden, wenn es keine Positionen mehr gibt:

FastReport Auftragssformular Struktur Positionen.png


1.1 Der Code

Um das zu verhindern, klickt man in das Ereignis OnBeforePrint der Überschrift (Bereich ChildHeaderPositionen) und gibt folgenden Code ein:

procedure ChildHeaderPositionenOnBeforePrint(Sender: TfrxComponent);
begin
  // Überschriftszeile unterdrücken, wenn keine Positionen mehr kommen:
  if DetailPositionen.DataSet.EOF then
    ChildHeaderPositionen.Visible := False
  else
    ChildHeaderPositionen.Visible := True;           
end;

Dieses Code wird ausgeführt, bevor die Überschrift gedruckt wird.

1.2 EOF

Im Code wird das DataSet der DetailPositionen abgefragt. Die Abfrage EOF ("End of File") ist True, wenn das Ende der Positionen erreicht ist. Wörtlich übersetzt bedeutet es eigentlich "Ende der Datei". Das DataSet ist zwar keine Datei, aber in den meisten Programmiersprachen hat sich "EOF" als Ende einer Abfrage durchgesetzt.

Also
EOF = False, wenn noch Daten (Positionen) kommen.
EOF = True, wenn keine Daten (Positionen) mehr kommen.

1.3 Das DataSet

Das DataSet wurde beim Anlegen des Bandes festgelegt und hier angezeigt:

FastReport Auftragssformular Struktur Positionen DataSet.png


Hinweis
Als DataSet bezeichnet FastReport die Tabellen der Datenbank. Warum heißt es dann nicht Tabellen? Die Antwort ist einfach: Weil FastReport nicht weiß, ob die Daten direkt aus einer Datenbank-Tabelle kommen oder aus einer komplexen Abfrage, bei der Daten aus mehreren Tabellen in einer Abfrage zusammengenommen werden.
Beispiel
Das DataSet Positionen im Auftragsformular kommt aus einer Datenbank-Abfrage, in der die Auftragspositionen, Artikeldaten, berechnete Felder (wie z.B. Gewichte) zusammen "gemischt" wurden und als Positionen zur Verfügung gestellt werden.

2 Das Ergebnis

Nun der Kopf auf der letzten Seite so aus:


FastReport Auftragssformular Struktur Positionen Header Bsp2.png


Die Überschrift für die Positionen ist weg!




3 Links