FastReport: Kapitel unterdrücken wenn alle Positionen ausgegeben sind: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Aufgabe == In der Auftragsverwaltung gibt es Aufträge, die den verschiedenen Teilmengen entsprechen, die gefertigt und ausgeliefert werden. Die Positione…“)
 
Zeile 19: Zeile 19:
 
== Lösung ==
 
== Lösung ==
  
 +
Das GEVITAS-Druckprogramm "GevitasFormPrint", mit dem die FastReport-Formulare erzeugt werden, stellt ein paar besondere Felder zur Verfügung. Diese ermöglichen Konstruktionen, die man mit Code im Report nicht ermöglichen könnte.
 +
 +
Im Feld
 +
 +
Positionen.KapitelAusgabeMenge
 +
 +
steht in jeder Zeile der Positionen (also auch in der Kapitel-Position!) die Summe der Menge, die für dieses Kapitel noch auszugeben ist.
 +
 +
Also kann man die Kapitel-Position mit diesem Code (OnBeforePrint im Gruppen-Kopf, wo das Kapitel gedruckt wird) unterdrücken:
 +
 +
 +
procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
 +
begin
 +
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird.
 +
 +
  // Wenn es keine Position im Kapitel gibt, die noch auszugeben ist:
 +
  GroupHeader1.Visible        := True;        // Default
 +
  if <Positionen."KapitelAusgabeMenge"> = 0 then
 +
  begin
 +
    GroupHeader1.Visible        := False;
 +
    exit;
 +
  end;
 +
  ...
 +
end;
  
  
Zeile 25: Zeile 49:
  
 
[[Datei:FastReport_Auftrag_KapitelAusgabeMenge_Bsp_02.png]]
 
[[Datei:FastReport_Auftrag_KapitelAusgabeMenge_Bsp_02.png]]
 +
 +
Es kommen nur noch die Kapitel-Überschriften, die noch nicht vollständig ausgegeben wurden!
 +
 +
 +
 +
== Links ==
 +
 +
{| class="hintergrundfarbe1"
 +
|-
 +
|[[FastReport Seitenformat]]
 +
|[[FastReport Daten, Tabellen und Felder]]
 +
|[[FastReport Tabellen der Reports]]
 +
|'''Beispiele:'''
 +
|-
 +
|[[FastReport Bands]]
 +
|[[FastReport Objekte und Elemente eines Reports]]
 +
|[[FastReport: Abhängige Formatierung von Feldern]]
 +
|[[Ladeliste/Packliste mit FastReport]]
 +
|-
 +
|[[FastReport: Standard-Formular-Texte|Standard-Formular-Texte]]
 +
|[[FastReport: Steuerung des Report mit Auftragskennzeichen|Steuerung des Report mit Auftragskennzeichen]]
 +
|[[FastReport: Summen im Report bilden|Summen im Report bilden]]
 +
|[[FastReport: Leasing-Liste|Leasing-Liste]]
 +
|-
 +
|[[FastReport Farb-Konstanten]]
 +
|[[FastReport Namensgebung der Datenbank-Tabellen und -Felder|Namensgebung der Datenbank-Tabellen und -Felder]]
 +
|[[FastReport Tipps und Tricks|Tipps und Tricks]]
 +
|[[FastReport: Inventar-Liste|Inventar-Liste]]
 +
|-
 +
|[[REFLEX Standard-Reports]]
 +
|[[Etikettendruck Allgemeines]]
 +
|[[Mehrsprachige Formulare mit FastReport]]
 +
|[[FastReport: Geräte-Liste|Geräte-Liste]]
 +
|-
 +
|[[GEVITAS Label-Print Installation]]
 +
|[[GEVITAS-Carnet]]
 +
|[[Videos zu FastReport]]
 +
|[[Erstellen eines Prüfprotokolls für TPS]]
 +
|}

Version vom 9. August 2017, 11:29 Uhr

1 Aufgabe

In der Auftragsverwaltung gibt es 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.

FastReport Auftrag KapitelAusgabeMenge Bsp 01.png


Aufgabe ist es also, die Kapitel zu unterdrücken, wenn alle Positionen des jeweiligen Kapitels ausgegeben sind.

Dazu kann man das Feld

KapitelAusgabeMenge

verwenden.


2 Lösung

Das GEVITAS-Druckprogramm "GevitasFormPrint", mit dem die FastReport-Formulare erzeugt werden, stellt ein paar besondere Felder zur Verfügung. Diese ermöglichen Konstruktionen, die man mit Code im Report nicht ermöglichen könnte.

Im Feld

Positionen.KapitelAusgabeMenge

steht in jeder Zeile der Positionen (also auch in der Kapitel-Position!) die Summe der Menge, die für dieses Kapitel noch auszugeben ist.

Also kann man die Kapitel-Position mit diesem Code (OnBeforePrint im Gruppen-Kopf, wo das Kapitel gedruckt wird) unterdrücken:


procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
  // Dieser Code wird ausgeführt, BEVOR das Positionen-Gruppenkopf-Band (die Kapitel-Überschrift) ausgegeben wird.
  // Wenn es keine Position im Kapitel gibt, die noch auszugeben ist:
  GroupHeader1.Visible         := True;        // Default
  if <Positionen."KapitelAusgabeMenge"> = 0 then
  begin
    GroupHeader1.Visible         := False;
    exit;
  end;
  ...
end;


Fertig sieht das dann so aus:


FastReport Auftrag KapitelAusgabeMenge Bsp 02.png

Es kommen nur noch die Kapitel-Überschriften, die noch nicht vollständig ausgegeben wurden!


3 Links

FastReport Seitenformat FastReport Daten, Tabellen und Felder FastReport Tabellen der Reports Beispiele:
FastReport Bands FastReport Objekte und Elemente eines Reports FastReport: Abhängige Formatierung von Feldern Ladeliste/Packliste mit FastReport
Standard-Formular-Texte Steuerung des Report mit Auftragskennzeichen Summen im Report bilden Leasing-Liste
FastReport Farb-Konstanten Namensgebung der Datenbank-Tabellen und -Felder Tipps und Tricks Inventar-Liste
REFLEX Standard-Reports Etikettendruck Allgemeines Mehrsprachige Formulare mit FastReport Geräte-Liste
GEVITAS Label-Print Installation GEVITAS-Carnet Videos zu FastReport Erstellen eines Prüfprotokolls für TPS