So zeigen Sie Bandgruppierungsergebnisse in FastReport VCL an

2018-01-10

Ein der neuen Feautures in FastReport VCL 6 ist die Möglichkeit, Totals im Gruppen-Header anzuzeigen. In vorigen Versionen konnte man diese Totals nur nach der Gruppierung darstellen. Wenn diese Gruppe ziemlich groß ist, sollte man beim Vorschau bis zum ender der Seite scrollen, um due Totals zu sehen. In dieser Situation ist es viel mehr bequem, diese Totals am Anfang der Gruppe darzustellen.

Also, besprechen wir jetzt, wie dieser Mechanismus funktioniert. Und zuerst ein bisschen Theorie.

Die Totals in den Headers sind mit der "deferred processing" berechnet. Beim Output des Reports werden alle Objekte mit den speziellen Bearbeitungsbedingungen in einer separaten Liste platziert. Weiter startet oben definierte Bearbeitung, wenn diese Bedingungen erfüllt werden.

Es gibt ein Paar Aufforderungen, die erfüllt werden sollen, für erfolgreiche Darstellung der Totals im Gruppen-Header:

  1. Der Header-Band soll einen gepaarten Footer haben. Und es ist notwendig, die Struktur des Reports zu bestimmen. Oder besser gesagt, die Events im Report zu determinieren;
  2. Dieser gepaarte Footer soll ein Feld haben, das fürs Rechnern der Totals gilt. Das gleiche Feld soll in den Header-Band hinzugefügt werden. Falls dieses Feld nicht notwendig ist, soll dieses Feld unsichtbar werden.

Jetzt besprechen wir die Eigenschaft des Objekts "Text". Die "Processing"-Eigenschaft definiert einen Event, der definiert, welchen Wert in diesem Objekt zu zeigen. "Processing" hat zwei Parameter - GroupLevel und ProcessAt. GroupLevel allows you to set the nesting level of the groups. This is done in case you use several nested groupings. Thus, you can display your totals in each heading in each group.

 

GroupLevel bestimmt das Niveau der Verschachtelung der Gruppen. Das ist sehr nützlich für die Situation, wen man mehrere Gruppierungen mit der Verschachtelung verwendet.  Auf diese Weise werden die Totals für jede Gruppe angezeigt.

 

ProcessAt enthält eine Eventsliste, die für die Feldbearbeitung dienen. Mögliche Werte:

  • paColumnFinished - am Ende des Zeigens der Spalte;
  • paCustom - vom Anwender definierter Event;
  • paDataFinished - nach dem Zeigen aller Daten;
  • paDefault - Default Wert;
  • paGroupFinished - am Ende des Zeigens der Gruppe;
  • paPageFinished - nach dem Zeigen der Seite;
  • paReportFinished - nach dem Zeigen des Reports;
  • paReportPageFinished - nach dem Zeigen der Reports Schablone.

 

Zum Beispiel möchten Sie die Totals am Ende der Gruppe zeigen. Um zu erkennen, dass die Gruppe am Ende ist, sucht FR nach einem Footer. Wenn der Event paReportFinished auch aktiviert ist, sucht FR nach dem Footer der Seite auch.

Und jetzt zu den genauen Beispieln. Wir erstellen einen Report mit zwei Teilen.

Ein Teil befindet sich in anderem. wir verwenden die Tabelle Sales aus der Demo-Datenbank. 

Wir erstellen eine Gruppe mit dem Namen des Unternehmens. Weiter fügen wir eine Gruppe hinzu, die die Bestellungsnummer hat. Und im Band "Data" werden die Informationen über die Bestellung dargestellt. Jede Gruppe hat einen Footer mit den Totals für:

[SUM (<Sales. "Qty"> * <Sales. "List Price">, MasterData1)].

Das Ergebniss wird im Band "report summary" angezeigt.

Unser Ziel ist, die Ergebnisse im Header-Band zu zeigen. Wir starten mit der ersten Gruppe. wir fügen den folgenden Text auf der rechten Seite hinzu: "Total group sum: [SUM (<Sales." Qty "> * <Sales." List Price ">, MasterData1)] $". In den Eigenschaften für diesen Text-Box suchen wir "Processing" und setzen den Wert für paGroupFinished:

 

 

Wir starten den Report:

 

Weiter fügen wir noch zwei Text-Felder Now in die zweite Gruppe hunzu. Wir platzieren sie die Reihe nach auf der rechten Seite. Für erste Gruppe wird der Wert "[SUM (<Sales." Qty "> * <Sales." List Price ">, MasterData1)] $". Und für zweite Gruppe wird es "from [SUM (<Sales." Qty "> * <Sales." List Price ">, MasterData1)] $".

Für erste Gruppe setzen wir folgende Eigenschaften ein: GroupLevel - 0, ProcessAt - paGroupFinished.

Für zweite Gruppe: GroupLevel - 1, ProcessAt - paGroupFinished.

Auf diese Weise zeigen wir die Totals für laufende Gruppe udn weiter für die Gruppe vom höhen Niveau. Und wie das aussieht:

 

Weiter soll die Totals für den ganzen Report dargestellt werden. Wir fügen den Header für den Report mit der Summe: [SUM (<Sales. "Qty"> * <Sales. "List Price">, MasterData1)] $. Und die Eigenschaften dafür: GroupLevel - 0, ProcessAt - paReportPageFinished. Wir starten den Report:

 

In each case, we display a field with the same aggregate expression, but we get different values for the groups and the report header. It's all about the time of formation the total. At some time point, the aggregate function has different values. That's why it's important to set the ProcessAt parameter correctly.

In jedem Fall zeigen wir das Feld mit "aggregate expression", aber bekommen verschiedene Werte für die Gruppen oder für den Header. Das verursacht die Zeit der Reports Erstellung. Im bestimmten Moment der Zeit hat die Funktion verschiedene Werte. Auf diese Weise ist es wichtig, richtig die Parameter ProcessAt einzusetzen.

12. August 2024

Erstellen und Installieren des Postgres-Plugins in FastReport .NET

In diesem Artikel wird beschrieben, wie Sie mit dem FastReport .NET-Plugin für den Berichtsdesigner aus Visual Studio über den NuGet-Server eine Verbindung zur Datenbank herstellen.
8. August 2024

Installation von FastReport .NET und ihren Komponenten unter Windows

Schritt für Schritt Anleitung zur Online- und manuellen Installation über den Registrierungscode FastReport .NET und seine Komponenten in Windows.
26. Juli 2024

Aktualisierung von HTMLObject als Plugin für FastReport .NET

Ausführliche Anleitung zur Verwendung des neuen HTMLObject-Plugins, das die Aufteilung des HTML-Doms in FastReport-Berichtsobjekte verwendet.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.