logo
small logo
  • Produkte
  • Shop
  • Support
  • Über uns
  • Customer panel Support
    • en
    • de
    • JP
    • ZH
  • Home
  • /
  • Articles
  • /
  • Filterung der erstellten Matrix
  • Wahl der Top-Werte in einer Matrix

    22. April 2021

    Der Artikel ist aktuell bis Version 2022.1. FastReport.NET verfügt über ein großartiges Tool für die Anzeige

    read more
  • Wie man eine End-to-End-Sortierung von ähnlichen Matrizen auf mehreren Seiten in FastReport .NET durchführt

    22. September 2021

    Nehmen wir an, es gibt die Aufgabe, eine Matrix auf der ersten Seite in der

    read more
  • Wie erstellen Sie einen interaktiven Bericht mit Sortierumschaltung

    2. Juni 2021

    Manchmal haben unsere Benutzer die Aufgabe, einen interaktiven Bericht zu erstellen, z.B. einen Bericht,

    read more
  • Erstellen eines komplexen Berichts mit mehreren Matrizen in FastReport .NET

    16. Juni 2021

    Heute werden wir uns nicht einen einfachen Bericht mit dem Band-orientiertem Ansatz ansehen, der normalerweise

    read more
  • Wie man in einer Matrix nach Kennwert sortiert

    30. Juni 2021

    Die Sortierung von Daten ist ein sehr wichtiges Analysewerkzeug, mit dem Sie die Dynamik von

    read more

Filterung der erstellten Matrix

23. Juni 2021

Im FastReport erlaubt uns das Matrix-Objekt, Daten zu filtern. Das ist eine der am häufigsten nachgefragten Funktionen und viele Anwender sind damit sehr zufrieden. Es gibt jedoch Fälle, in denen die Filterung der Ausgangsdaten nicht geeignet ist.

Betrachten wir unten Matrix.

Ausgangsmatrix

Wie Sie im obigen Beispiel sehen können, handelt es sich um eine Umsatzstatistik in der nach Mitarbeitern für 5 Jahre sortiert wird. Für den Mitarbeiter Steven Buchanan liegen keine Statistiken für 2011, 2012 und 2015 vor. Das bedeutet, dass, wenn wir die Matrix nach Jahr filtern und 2013 und 2014 ausschließen, Steven in der Matrix fehlt.

Um das Bild vollständig zu halten, müssen Sie alle Mitarbeiter berücksichtigen, auch wenn er in der Berichtsperiode keinen Umsatz hatte. In diesem Fall müssten Sie eine der Optionen verwenden:

1) die Rohdaten künstlich mit Nullwerten für jedes Jahr anreichern, in dem der Mitarbeiter keinen Umsatz hatte;
2) die bereits erstellte Matrix filtern, indem Sie unnötige Spalten entfernen.

In der Berichtvorlage:

Berichtvorlage

Für die Zelle Year fügen wir das Ereignis "BeforePrint" hinzu:

Für die Zelle Year fügen wir das Ereignis BeforePrint hinzu

Mit dem folgenden Code:

private int index = 1;
 private List<int> removeColumns = new List<int>();
 
 private void Cell4_BeforePrint(object sender, EventArgs e)
 { 
 if (new List<int>(){2013, 2014}.Contains((int)Cell4.Value))
 {
 removeColumns.Add(index); 
 }
 index++; 
 }

Hier haben wir Indizes von Spalten geschrieben, die wir löschen wollen. Erstellen wir nun einen ModifyResult- Ereignishandler für Matrix, um das bereits erstellte "Matrix"-Objekt zu bearbeiten:

 private void Matrix1_ModifyResult(object sender, EventArgs e)
 {
 removeColumns.Reverse();
 foreach (int del in removeColumns)
 { 
 Matrix1.ResultTable.Columns.RemoveAt(del);
 }
 }

Da beim Löschen von Spalten oder Zeilen der Index aller folgenden verschoben wird, ist es notwendig, vom Ende her zu löschen - vom größten Index. Deshalb haben wir die Liste der zu löschenden Indizes in umgekehrter Reihenfolge mit der Methode Reverse() aufgebaut. Dann haben wir einfach die Spalten über die entsprechenden Indizes gelöscht. Schauen wir mal, was das Ergebnis ist:

Auswertungstabelle

Die Spalten für 2013 und 2014 fehlen in der Matrix, aber der Mitarbeiter Steven Buchanan bleibt erhalten. Der gewünschte Effekt wird erreicht! Außerdem können Sie überflüssige Zeilen mit einer anderen Sammlung - Matrix1.ResultTable.Rows - entfernen. Jetzt wissen Sie, wie Sie die Matrix filtern können, wenn die Datenfilterung nicht geeignet ist.

about product buy
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport Filtering Matrix

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Shop
  • Download
  • Dokumentation
  • Referenzen
  • Informationen zur Deinstallation unserer Produkte
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Unsere Nachrichten
  • Presse über uns
  • Partner
  • Außergewöhnliche Lizenzierung
  • Kontakte

© 1998-2023 by Fast Reports Inc.

  • Datenschutz