Gruppieren von Daten
Aktualisiert: 14. April 2006
Die Daten in jedem Datenbereich (Tabelle, Matrix, Liste und Diagramm) 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 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.
Anweisungen zum Gruppieren von Daten in Datenbereichen finden Sie unter:
- Vorgehensweise: Hinzufügen einer Gruppe zu einer Tabelle (Berichts-Designer)
- Vorgehensweise: Hinzufügen einer dynamischen Spalte oder Zeile zu einer Matrix (Berichts-Designer)
- Vorgehensweise: Hinzufügen einer Gruppe zu einer Liste (Berichts-Designer)
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 als Gruppenausdruck, das eine eindeutige ID (z. B. die Mitarbeiter-ID) enthält, 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 (eine Gruppe, die die Parent-Eigenschaft verwendet), kann nur über einen einzelnen Gruppenausdruck verfügen.
Erstellen Sie mithilfe des folgenden Lernprogramms eine rekursive Hierarchie mithilfe der Employee-Tabelle in der AdventureWorks-Datenbank. Dabei werden Kenntnisse in Bezug auf das Erstellen von Berichten, Datasets, Abfragen und Tabellen vorausgesetzt. Informationen zu diesen Features finden Sie in der betreffenden Dokumentation.
Erstellen Sie in der Datenansicht ein Dataset basierend auf der AdventureWorks-Datenbank.
Verwenden Sie in dem Dataset die folgende Abfrage:
SELECT FirstName, LastName, EmployeeID, ManagerID FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID=C.ContactID
Erstellen Sie in der Layoutansicht einen Tabellendatenbereich.
Geben Sie in der ersten Detailzelle der Tabelle den folgenden Ausdruck ein:
=Fields!FirstName.Value & " " & Fields!LastName.Value
Klicken Sie mit der rechten Maustaste auf die Ecke der Tabelle, und klicken Sie dann auf Eigenschaften.
Klicken Sie auf der Registerkarte Gruppe auf Detailgruppierung.
Geben Sie auf der Registerkarte Allgemein im Feld Ausdruck den folgenden Ausdruck ein, oder wählen Sie ihn aus:
=Fields!EmployeeID.Value
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 Abstand in Textfeldern bestimmen, um die Mitarbeiternamen entsprechend ihrer Ebene in der Hierarchie einzurücken. Wenn Sie diesen Vorgang mithilfe der Tabelle im oben dargestellten Beispiel ausführen möchten, markieren Sie das Textfeld in der ersten Detailzelle. Öffnen Sie das Eigenschaftenfenster für das Textfeld. Erweitern Sie den Knoten Abstand, und klicken Sie auf die Eigenschaft Links. Wählen Sie aus der Dropdownliste <Ausdruck...> aus, und geben Sie Folgendes ein:
=Convert.ToString(2 + (Level()*10)) + "pt"
Die Abstandseigenschaften erfordern eine Zeichenfolge im Format nnxx, wobei nn eine Zahl und xx die Maßeinheit darstellt. Der Standardabstand für ein Textfeld beträgt 2pt. Im obigen Ausdruck wird eine Zeichenfolge generiert, bei der der Abstand mithilfe der Level-Funktion entsprechend der Ebene vergrößert wird. Eine Zeile mit der Ebene 1 hätte z. B. den Abstand 12pt (2 + (1*10)), und eine Zeile mit der Ebene 3 hätte den Abstand 32pt (2 + (3*10)).
Informationen zur Level-Funktion finden Sie unter Level-Funktion (Reporting Services).
Siehe auch
Konzepte
Arbeiten mit Datenbereichen
Arbeiten mit Tabellendatenbereichen
Arbeiten mit Matrixdatenbereichen
Arbeiten mit Listendatenbereichen
Arbeiten mit Diagrammdatenbereichen
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
14. April 2006 |
|