Erstellen eines komplexen Berichts mit Advanced Matrix in FastReport .NET

Erstellen eines komplexen Berichts mit Advanced Matrix in FastReport .NET

Dieser Artikel ist eine Fortsetzung eines früheren Artikels, in dem wir uns mit der Erstellung eines komplexen Berichts befasst haben. Der in dem Artikel erstellte Bericht diente als eine der Inspirationsquellen für das neue AdvancedMatrix-Objekt.

Der Bericht im früheren Artikel bestand aus drei Abschnitten:

1) Statistik nach Jahren;
2) Statistik nach Quartalen;
3) Statistik nach Monaten.

Komplexer Bericht mit drei Matrizen und zur besseren Übersichtlichkeit wurden die Abstände zwischen den Matrizen hinzugefügt

 

Jeder der Abschnitte wurde mit einer separaten Matrix implementiert, was aufgrund der Beschränkungen des Standard-MatrixObjects notwendig war. In der neuen Version von FastReport .NET haben wir eine aktualisierte Version dieses Objekts namens AdvancedMatrix hinzugefügt. Damit können Sie einen gesamten Bericht in einer einzigen Matrix implementieren. Schauen wir mal, wie es geht.

Fügen Sie einem leeren Datenband ein AdvancedMatrix-Objekt hinzu:

AdvancedMatrix auf dem Datenband

Erinnern wir uns, wie die von uns verwendeten Daten aussehen:

Datenfenster

Um eine einfachste Matrix zu erstellen, müssen wir drei Felder ziehen und ablegen: country_name, fruit_type und amount.

So sieht die Matrix jetzt aus:

Matrix im Designer und in der Vorschau

In der neuen Matrix können Sie die Berechnungen in den Zellen ändern. In diesem Fall brauchen wir eine Summe, aber wir können sie durch anderen Punkt aus der folgenden Liste ersetzen:

Berechnungsfunktionen

Lassen Sie uns die Matrix neu erstellen. Wir benötigen die Felder country_name und fruit_type, die bei der Gruppierung verwendet werden sollen – der Bericht sollte die Früchte nach Ländern gruppieren und es sollte eine Spalte für jedes einzelne Jahr geben:

Matrix im Designer und in der Vorschau, Feld "year" hinzugefügt

An dieser Stelle gehen wir über die Möglichkeiten eines normalen MatrixObjects hinaus. Fügen Sie der Matrix zusätzliche Felder year und quarter hinzu sowie ersetzen Sie leere Werte durch Null:

Die Matrix wurde um die Felder "year" und "quarter" erweitert, so dass eine Aufschlüsselung nach Quartalen möglich ist

Was früher mit zwei Matrizen erledigt werden musste, geht jetzt mit nur einer. Jetzt haben wir eine Aufschlüsselung nach Jahren und nach Quartalen. Gehen wir weiter.

Aufschlüsselung nach Monaten hinzugefügt

Hier haben wir eine Matrix, die alle erforderlichen Daten enthält. Um die Lesbarkeit zu verbessern, können wir die Anzeige der Matrix und der Daten ändern.

Führen Sie zunächst die Zellen zusammen, die nur Text enthalten sollen:

Es sind mehrere Zellen ausgewählt, im Kontextmenü der Zelle ist die Option " Zellen zusammenführen" hervorgehoben

Das neue Kopfzeilenbearbeitungsmenü kann bei der Anzeige von Daten helfen:

Geöffneter Eigenschaften-Editor für Kopfzeilen

Die Matrix sieht nun wie folgt aus:

Matrix-Vorschau, Textbeschriftungen hinzugefügt

Schließlich können wir die Geschwindigkeit der Erstellung eines Berichts vergleichen, wenn er aus drei normalen Matrixobjekten besteht und wenn er aus einer großen Matrix besteht.

Der Test wurde auf einem Computer mit AMD Ryzen 5 3600 und 16 GB Speicher durchgeführt. Die Datentabelle enthält 5000 Datensätze.

Probe

3 MatrixObject-Matrizen

1 AdvancedMatrix

#1

906 ms

656 ms

#2

828 ms

625 ms

#3

937 ms

640 ms

#4

875 ms

641 ms

#5

891 ms

672 ms

#6

922 ms

656 ms

Durchschnittlich:

893.3 ms

648.3 ms

 

Wie Sie sehen können, sinkt die Erstellungszeit im Durchschnitt um ~27 %, was bei Berichten mit vielen Daten viel Zeit sparen kann.

In diesem Artikel haben wir gezeigt, wie man den Bericht aus dem vorherigen Artikel genau neu aufbaut. Mit der AdvancedMatrix können Sie mehrere nützliche Funktionen implementieren, z. B. die Filtersortierung TopN, mit der Sie die 5 Datensätze mit den höchsten berechneten Werten auswählen können.

Lesen Sie mehr über alle Eigenschaften dieses Objektes in unserer Dokumentation.

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.
Trustpilot