Freigeben über


Berechnen von Gesamtwerten und anderen Aggregaten (Reporting Services)

In Tablix-Datenbereichen können Sie Aggregatgesamtwerte für Berichtsdatasets, Datenbereiche oder Gruppen anzeigen. Sie können die Standardaggregationsfunktion des Befehls Gesamtergebnis hinzufügen und den Standardbereich verwenden. Sie können auch eine andere Aggregationsfunktion als die integrierten Funktionen oder einen anderen Bereich angeben.

Um eine Aggregatberechnung anzupassen, können Sie auch Gruppenvariablen in Verbindung mit benutzerdefiniertem Code verwenden. Weitere Informationen finden Sie unter Gruppevariablen in Reporting Services 2008 für benutzerdefinierte Aggregation verwenden.

Grundlegendes zum Befehl "Gesamtergebnis hinzufügen"

Mit dem Kontextmenübefehl Gesamtergebnis hinzufügen können Sie Gesamtwerte und Gruppenteilergebnisse für Tablix-Datenbereiche anzeigen. Der Befehl Gesamtergebnis hinzufügen ist kontextabhängig. In einer Zelle im Zeilengruppenbereich wird mit dem Befehl Gesamtergebnis hinzufügen automatisch eine Zeile außerhalb der Gruppe für Gesamtwerte hinzugefügt. In einer Zelle im Spaltengruppenbereich wird mit dem Befehl Gesamtergebnis hinzufügen automatisch eine Spalte außerhalb der Gruppe für Gesamtwerte hinzugefügt. In einer Zelle im Textbereich mit einem numerischen Feldausdruck kann mit dem Befehl Gesamtergebnis hinzufügen einer Zeile oder einer Spalte ein Gesamtwert hinzugefügt werden. Weitere Informationen zum Verwenden des Kontextmenübefehls Gesamtergebnis hinzufügen finden Sie unter Vorgehensweise: Hinzufügen eines Gesamtergebnisses zu einer Gruppe oder einem Tablix-Datenbereich (Reporting Services).

Der Befehl Gesamtergebnis hinzufügen verwendet standardmäßig die Sum-Funktion. Statt der Sum-Funktion können Sie jedoch auch eine andere integrierte Funktion verwenden und eine andere Aggregation für einen Bereich durchführen. Sie können auch eigene Ausdrücke erstellen, um Aggregatwerte für einen Bereich in Relation zu einem anderen Bereich zu berechnen. Beispielsweise können Sie den Prozentsatz für einen Gruppenwert in Relation zum gesamten Dataset berechnen. Weitere Informationen über die Verwendung der integrierten Funktionen zur Durchführung von Aggregationen finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services). Eine Liste der integrierten Funktionen finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services).

Grundlegendes zum Standardbereich

Bei der Verarbeitung und dem Rendern eines Tablix-Datenbereichs wird der Wert der einzelnen Tablix-Zellen im Kontext des jeweiligen Zellenbereichs vom Berichts-Designer ausgewertet. Zellen in einer Zeile, die mit einer Zeilengruppe oder einer Spaltengruppe verknüpft ist, können mehreren Gruppen angehören. Die Gruppen, denen eine Zelle angehört, der Datenbereich oder das Dataset, für das ein Ausdruck ausgewertet wird, werden als Bereich bezeichnet. Der Standardbereich wird von der innersten Zeilen- und Spaltengruppe einer Zelle definiert. Optische Hinweise helfen Ihnen, die Gruppen zu identifizieren, deren Member eine ausgewählte Zelle ist. Weitere Informationen finden Sie unter Grundlegendes zu Zellen, Zeilen und Spalten im Tablix-Datenbereich.

Die folgende Abbildung weist für das Beispiel eines Standardbereichs eine übergeordnete Zeilengruppe auf Datumsbasis auf sowie eine untergeordnete Zeilengruppe auf Basis der Bestellung und eine Detailgruppe.

Entwurfsansicht: Gesamtergebnis in einfacher Tabelle

Diese Abbildung zeigt einen Feldausdruck für Qty und LineTotal in Tablix-Textzellen in mehreren Zeilen an. In der folgenden Liste wird der Standardbereich für die Feldausdrücke in jeder Zeile beschrieben:

  • Zeile 1. Diese Zeile zeigt Spaltenbezeichnungen als statischen Text an. Der Standardbereich entspricht dem Datenbereich. Die Zeile wird nur einmal wiederholt; sie wird gelegentlich auch als Kopfzeile bezeichnet.

  • Zeile 2. Diese Zeile zeigt Detaildaten an, die vom Zeilenhandle für Details (Zeilenziehpunkt mit 3 parallelen Linien für Detailzeile) angegeben werden. Der Standardbereich für [Qty] entspricht der Detailgruppe. Dabei handelt es sich um die Daten im Dataset, die nach Anwendung aller Filter für Datasets, Datenbereiche und Gruppen an diesen Datenbereich gebunden sind. Diese Zeile wird einmal pro Zeile im Resultset für die Datasetabfrage wiederholt. Der Wert [Qty] zeigt die Detaildaten aus dem Dataset an.

  • Zeile 3. Diese Zeile zeigt aggregierte Werte an. Der Standardbereich für [Sum (Qty)] entspricht der untergeordneten Zeilengruppe Order. Diese Zeile wird für jede eindeutige Bestellnummer einmal wiederholt. Der Wert [Sum (Qty)] zeigt die aggregierte Summe für jede Bestellnummer an.

  • Zeile 4. Diese Zeile zeigt aggregierte Werte an. Der Standardbereich für [Sum (Qty)] entspricht der übergeordneten Zeilengruppe Date. Diese Zeile wird für jeden eindeutigen Datumswert einmal wiederholt. Der Wert [Sum (Qty)] zeigt die aggregierte Summe für jedes Datum an.

  • Zeile 5. Diese Zeile zeigt aggregierte Werte an. Der Standardbereich für [Sum(Qty)] entspricht dem Datenbereich. Die Zeile wird nur einmal wiederholt; sie wird gelegentlich auch als Fußzeile bezeichnet. Der Wert [Sum (Qty)] zeigt die aggregierte Summe für den Datenbereich an.

Weitere Informationen zu Kontext und Bereich finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services). Weitere Informationen über das Interpretieren von optischen Hinweisen auf Tablix-Datenbereiche finden Sie unter Grundlegendes zu Zellen, Zeilen und Spalten im Tablix-Datenbereich.

Angeben von Aggregatberechnungen mit benannten Bereichen

Geben Sie einen benannten Bereich an, wenn Sie einen anderen Bereich als den Standardbereich angeben möchten. Benannte Bereiche enthalten den Namen des Datasets, des Datenbereichs oder der Gruppe. Da Ausdrücke kontextabhängig sind, muss der angegebene benannte Bereich für die integrierte Funktion gültig sein. Jede integrierte Funktion gibt an, bei welchen Bereichen es sich um gültige Parameter handelt. Weitere Informationen finden Sie im Referenzthema für die spezifische Funktion unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services).

In einem Beispiel zum Ändern des Standardbereichs in einen benannten Bereich wird davon ausgegangen, dass ein Bericht folgende Datenstrukturen aufweist:

  • Berichtsdataset Sales

  • Tabellendatenbereich Tablix1 mit folgenden Gruppen:

    • Übergeordnete Zeilengruppe Category mit der untergeordneten Gruppe Subcat

    • Übergeordnete Spaltengruppe Geography mit der untergeordneten Gruppe CountryRegion

Verwenden Sie für diesen Bericht den Befehl Gesamtergebnis hinzufügen, um verschiedenen Zellen Gesamtwerte hinzuzufügen. Das Ergebnis kann beispielsweise wie der Bericht in der folgenden Abbildung aussehen.

Matrix, geschachtelte Zeilen- und Spaltengruppen mit Gesamtergebnissen

In dieser Abbildung wurde eine Zelle ausgewählt. Die orangefarbenen Klammern für Gruppenindikatoren für diese Zelle zeigen die innersten Gruppenmitgliedschaften an: die Gruppe Category und die Gruppe CountryRegion. Die innersten Gruppenmitgliedschaften definieren den Standardbereich für diese Zelle. (Die ausgewählte Zelle verfügt auch über zwei graue Gruppenklammern, die Gruppen anzeigen: die Zeilengruppe Subcat und die Spaltengruppe Geography. Bei Gruppen mit einer grauen Gruppenklammer handelt es sich entweder um äußere Gruppen für die ausgewählte innere Gruppe oder um Gruppen außerhalb des Bereichs für die ausgewählte Zelle.)

Die ausgewählte Zelle verfügt über folgenden Ausdruck: [Sum(LineTotal)]. Der gerenderte Bericht zeigt den Wert für das Textfeld gemäß dem Bereich und Ausdruck der Zelle als [LineTotal]-Summe für jeden spezifischen Subcat-Wert im jeweiligen CountryRegion-Wert an.

Sie können den Bereich für diese Zelle wie folgt ändern, ohne die Sum-Funktion im Ausdruck zu ersetzen:

  • Ändern Sie den Bereich in das Sales-Dataset.   Beispielsweise können Sie den Ausdruck in =Sum(Fields!LineTotal.Value, "Sales") ändern, um den Gesamtwert für das Dataset anzugeben.

  • Ändern Sie den Bereich in den gesamten Tablix1-Datenbereich.   Beispielsweise können Sie den Ausdruck in =Sum(Fields!LineTotal.Value)/Sum((Fields! LineTotal.Value),"Tablix1") ändern, um den prozentualen Beitrag einer Gruppe zum gesamten Datenbereich zu berechnen.

    Der Zähler Sum(Fields! LineTotal.Value) im neuen Ausdruck entspricht der Summe der Zeilengesamtwerte für die einzelnen Kategorien. Der Nenner Sum((Fields! LineTotal.Value), "Tablix1") entspricht der Summe der Zeilengesamtwerte für den Datenbereich. Das Ergebnis stellt den Anteil der einzelnen Kategorien am gesamten Datenbereich in Prozent dar.

    In der ausgewählten Zelle können Sie einen der folgenden Gruppenbereiche für die Sum-Funktion angeben: CountryRegion, Geograph oder Category. Der Gruppenbereich Subcat kann nicht angegeben werden, da sich die Zelle nicht in einer Zeile befindet, die mit der gleichnamigen Gruppe verknüpft ist.

    HinweisHinweis

    Sie können nur einen Bereich für eine Aggregatfunktion angeben. Die Gruppenbereiche "Category" und "Geography" können nicht parallel als Bereiche für den Nenner angegeben werden. Das Angeben mehrerer Bereiche wird nicht unterstützt.

Eine Liste der integrierten Funktionen finden Sie unter Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services).

Beispiele für das Angeben anderer Bereiche

Die folgende Tabelle enthält Beispielausdrücke für den Standardbereich, den Bereich für Datenbereiche und den Datasetbereich. Im Beispiel wird davon ausgegangen, dass der Tablix-Datenbereich "Tablix1" sowie das Dataset "Sales" und das Feld "LineTotal" mit dem Gesamtwert für ein Zeilenelement in einem Verkaufsauftrag vorhanden sind.

Beschreibung

Ausdruck

Summe der Zeilenelement-Gesamtwerte für den aktuellen Bereich.

=Sum(Field!LineTotal.Value)

Prozentsatz (Summe der Zeilenelement-Gesamtwerte für den aktuellen Bereich)/(Summe der Zeilengesamtwerte für den Datenbereich).

Dieser Wert wird mit dem Standardanzeigeformat für das Textfeld formatiert.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1")

Bei Verwendung in einer Zeile, die mit der Gruppe CountryRegion verknüpft ist:

Prozentsatz (Summe der Zeilenelement-Gesamtwerte für die Gruppe CountryRegion)/(Summe der Zeilengesamtwerte für die Gruppe Geography).

Dieser Wert wird mit dem Standardanzeigeformat für das Textfeld formatiert, das für das Formular #.#% auf P1 festgelegt werden muss.

=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Geography")

Prozentsatz (Summe der Zeilenelement-Gesamtwerte für den aktuellen Bereich)/(Summe der Zeilengesamtwerte für den Datenbereich).

Dieser Wert wird mit IIF formatiert, sodass kein Ergebnis angezeigt wird, wenn die aktuelle Gruppe keine Zeilenelement-Gesamtwerte enthält.

=IIF(Sum(Field!LineTotal.Value)<=0,"", FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1"),1)

Prozentsatz (Summe der Zeilenelement-Gesamtwerte für den aktuellen Bereich)/(Summe der Zeilenelementgesamtwerte für das Dataset).

Dieser Wert wird mit FormatPercent formatiert und gibt eine Dezimalstelle an.

="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1)

Unterdrücken von NULL- oder 0-Werten zur Laufzeit

In zahlreichen Berichten kann bei Berechnungen für Gruppen eine Vielzahl an Zellen mit dem Wert 0 (null) oder NULL erstellt werden. Wenn Sie Ihren Bericht übersichtlicher gestalten möchten, können Sie einen Ausdruck zum Zurückgeben von Leerräumen hinzufügen, wenn der Aggregatwert 0 (null) ist. Weitere Informationen finden Sie unter "Beispiele zur Unterdrückung von NULL- oder 0-(null-)Werten" in Beispiele für Ausdrücke (Reporting Services).

Änderungsverlauf

Aktualisierter Inhalt

Link zur benutzerdefinierten Aggregation wurde hinzugefügt.