Gruppieren von Daten in einem Bericht (Visual Studio-Berichts-Designer)

Die Daten in den Tabellen-, Matrix- oder Listendatenbereichen können nach Feldern und Ausdrücken gruppiert werden. Mit Gruppen in einer Tabelle können Sie die Daten in der Tabelle in logische Abschnitte unterteilen. Sie können auch Teilergebnisse und andere Ausdrücke zu den Gruppenkopf- und -fußzeilen hinzufügen. Gruppen in einer Matrix werden als dynamische Spalten oder Zeilen angezeigt. Sie können Gruppen in andere Gruppen schachteln und Teilergebnisse hinzufügen. Mit Listen können Sie separate Gruppen in einem Bericht bereitstellen oder durch Platzieren innerhalb anderer Listen geschachtelte Gruppen erstellen.

Festlegen von Gruppeneigenschaften für Datenbereiche

Datenbereiche sind datengebundene Berichtselemente, mit denen sich wiederholende Zeilen von Daten angezeigt werden. Sie können Gruppeneigenschaften für einen beliebigen Datenbereich festlegen, um die Darstellung der Daten zu organisieren.

Rekursive Hierarchien

Eine rekursive Hierarchie ist eine Hierarchie von Daten, bei der alle Parent-Child-Beziehungen in den Daten dargestellt sind. Beispielsweise kann ein Organigramm für Manager-Mitarbeiter-Beziehungen mit einer rekursiven Hierarchie erstellt werden. Die Tabelle einer solchen Hierarchie würde Spalten für Mitarbeiter-ID und Manager-ID enthalten. Die Manager-ID würde auf die Mitarbeiter-ID eines anderen Mitarbeiters verweisen, wodurch eine Hierarchie der Mitarbeiter entsteht.

Zum Erstellen einer rekursiven Hierarchie müssen Sie bestimmte Eigenschaften für eine Gruppe in einem Datenbereich festlegen. Verwenden Sie ein Feld, das eine eindeutige ID (z. B. die Mitarbeiter-ID) enthält, als Gruppenausdruck, und verwenden Sie dann ein Feld, das die ID des übergeordneten Elements (z. B. Manager-ID) enthält, in der Parent-Eigenschaft. Eine Gruppe, die als rekursive Hierarchie definiert ist (d. h., die die Parent-Eigenschaft verwendet), kann nur über einen einzelnen Gruppenausdruck verfügen.

Führen Sie die folgenden Schritte aus, um eine rekursive Hierarchie mithilfe der Employee-Tabelle in der AdventureWorks-Datenbank zu erstellen. Dabei werden Kenntnisse über das Erstellen von Berichten, Datasets, Abfragen und Tabellen vorausgesetzt. Informationen zu diesen Features finden Sie in der betreffenden Dokumentation.

  1. Erstellen Sie ein Dataset auf Basis der AdventureWorks-Datenbank, das Daten aus der folgenden Abfrage zurückgibt:

    SELECT FirstName, LastName, EmployeeID, ManagerID

  2. Fügen Sie Ihrem Projekt eine Clientberichtsdefinition (RDLC-Datei) hinzu, und öffnen Sie dann den Bericht im grafischen Entwurfsmodus.

  3. Fügen Sie dem Berichtslayout einen Tabellendatenbereich hinzu.

  4. Geben Sie in der ersten Detailzelle der Tabelle den folgenden Ausdruck ein:

    =Fields!FirstName.Value & " " & Fields!LastName.Value

  5. Klicken Sie mit der rechten Maustaste auf die Ecke der Tabelle, und klicken Sie dann auf Eigenschaften.

  6. Klicken Sie auf der Registerkarte Gruppe auf Detailgruppierung.

  7. Geben Sie auf der Registerkarte Allgemein im Feld Ausdruckden folgenden Ausdruck ein, oder wählen Sie ihn aus:

    =Fields!EmployeeID.Value

  8. Geben Sie im Feld Übergeordnete Gruppe den folgenden Ausdruck ein, oder wählen Sie ihn aus:

    =Fields!ManagerID.Value

Level-Funktion

Mit der Level-Funktion können Sie den Textabstand in Textfeldern bestimmen, um die Mitarbeiternamen entsprechend ihrer Ebene in der Hierarchie einzurücken. Für die Tabelle im obigen Beispiel erreichen Sie dies, indem Sie den folgenden Ausdruck für den linken Textabstand des Textfelds in der ersten Detailzelle verwenden:

=Convert.ToString(2 + (Level()*10)) & "pt"

Die Textabstandseigenschaften erfordern eine Zeichenfolge im Format nnxx, wobei nn eine Zahl und xx die Maßeinheit darstellt. Der Standardtextabstand für ein Textfeld beträgt 2pt. Im obigen Ausdruck wird eine Zeichenfolge generiert, bei der der Textabstand mithilfe der Level-Funktion entsprechend der Ebene vergrößert wird. Eine Zeile mit der Ebene 1 hätte z. B. den Textabstand 12pt (2 + (1*10)), und eine Zeile mit der Ebene 3 hätte den Textabstand 32pt (2 + (3*10)).

Weitere Informationen zu den verwendbaren Funktionen finden Sie unter Integrierte Funktionen für Berichte (Visual Studio-Berichts-Designer).

Siehe auch

Aufgaben

Gewusst wie: Filtern von Daten in einem Bericht (Visual Studio-Berichts-Designer)

Konzepte

Verwenden von Ausdrücken in einem Bericht (Visual Studio-Berichts-Designer)