Share via


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:

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.

  1. Erstellen Sie in der Datenansicht ein Dataset basierend auf der AdventureWorks-Datenbank.

  2. 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
    
  3. Erstellen Sie in der Layoutansicht einen Tabellendatenbereich.

  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 Ausdruck den 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 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

Geänderter Inhalt:
  • Die Abfrage wurde so korrigiert, dass sie mit der AdventureWorks-Datenbank statt mit AdventureWorks2000 ausgeführt werden kann.