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.
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:
Erinnern wir uns, wie die von uns verwendeten Daten aussehen:
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:
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:
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:
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:
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.
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:
Das neue Kopfzeilenbearbeitungsmenü kann bei der Anzeige von Daten helfen:
Die Matrix sieht nun wie folgt aus:
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.