Verwenden von integrierten Berichts- und Aggregationsfunktionen in Ausdrücken (Reporting Services)

Reporting Services bietet integrierte Funktionen für die Verwendung in Ausdrücken zur Berechnung von Aggregatdaten in Datasets, Datenbereichen und Gruppen sowie zum Abrufen anderer Datenwerte wie der erste oder letzte Wert auf einer Berichtsseite. Die Standardaggregatfunktion für numerische Felder ist SUM. Wählen Sie im Dialogfeld Ausdruck unter Allgemeine Funktionen die Kategorie Aggregat aus, um eine andere Funktion auszuwählen.

Wenn Berichtsdaten und -layout dann zur Laufzeit kombiniert werden, bestimmt der Berichtsprozessor den Standardbereich für jeden Funktionsverweis in einem Ausdruck. Der Standardbereich kann ein Dataset, ein Datenbereich, eine Tablix-Gruppe (übergeordnet, untergeordnet, angrenzend oder rekursiv), die Schnittmenge einer Tablix-Zeile mit einer Spaltengruppe oder eine Diagrammgruppe (Reihe, Kategorie, Wert) sein. Für die meisten Funktionen können Sie im Funktionsaufruf auch einen Bereich angeben, der nicht dem Standardbereich entspricht. Zur Bestimmung der gültigen Bereiche für eine Funktion lesen Sie im entsprechenden Funktionsreferenzthema nach. Beispiele finden Sie unter Berechnen von Gesamtwerten und anderen Aggregaten (Reporting Services).

In der folgenden Tabelle sind die Kategorien der integrierten Funktionen aufgeführt, die von Reporting Services unterstützt werden.

  • Berechnen von Aggregaten

  • Berechnen von ausgeführten Werten

  • Abrufen von Zeilenanzahlen

  • Nachschlagen von Werten aus einem anderen Dataset

  • Abrufen von sortierungsabhängigen Werten

  • Abrufen von Serveraggregaten

  • Abrufen von rekursiven Ebenen

  • Testen für Bereich

Grundlegendes zum Begriff "Bereich"

In Reporting Services kann sich der Begriff "Bereich" je nach Kontext auf verschiedene Konzepte beziehen. In der folgenden Liste werden die verschiedenen Konzepte beschrieben.

  • Bereich für Berichtselemente in der Berichtsverarbeitung: Wenn die Berichtsdaten und das Berichtslayout zur Laufzeit kombiniert werden, wird jedes Berichtselement verarbeitet. Ein Tablix-Datenbereich wird von außen her zu immer restriktiveren Datensätzen verarbeitet, während die Tablix-Zeilengruppen und -Spaltengruppen verarbeitet werden. In diesem Sinn ist in einem Datenbereich eine Gruppe enthalten. Eine untergeordnete Gruppe und ihre gleichgeordneten Elemente sind in deren übergeordneten Gruppe enthalten. Ein ToggleItem-Element (Umschaltelement) für eine Gruppe muss ein Textfeld im Bereich derselben Gruppe oder im Bereich einer enthaltenden Gruppe sein. Weitere Informationen finden Sie unter Grundlegendes zu enthaltenden Bereichen weiter unten in diesem Thema.

  • Bereich für Aggregatfunktionen: Der Berichtsprozessor wertet jeden Aggregatausdruck in einem benannten Bereich oder im Standardbereich aus (siehe folgende Liste).

    • Ein benannter Bereich kann den Namen eines Datasets, eines Datenbereichs oder einer Gruppe darstellen.

    • Der Standardbereich hängt von der Berichtselementeigenschaft ab, die der Berichtsprozessor auswertet. Der Standardbereich für eine Tablix-Zelle in einem Datenbereich mit Zeilen- und Spaltengruppen ist beispielsweise die innerste Zeilen- und Spaltengruppe, zu der die Zelle gehört. Der Standardbereich für eine Zelle in einer Tabelle ohne Gruppen ist die Details-Gruppe. Auf der Entwurfsoberfläche stellt ein Tablix-Datenbereich visuelle Elemente bereit, die Sie zur Ermittlung der verfügbaren Bereiche für eine Zelle verwenden können. Gruppenleisten werden über und neben dem Tablix-Datenbereich angezeigt, um anzugeben, welche Zeilen oder Spalten zu einer Gruppe gehören. Wenn eine Zelle ausgewählt wird, zeigen Gruppenindikatoren die aktiven, innersten Gruppen an, zu denen die Zelle gehört. Weitere Informationen finden Sie unter Arbeiten mit Tablix-Datenbereichen.

      Für ein Textfeld auf der Entwurfsoberfläche gibt es keinen Standardbereich. Sie müssen den Namen des Datasets angeben, das verwendet werden soll, beispielsweise =First(Fields!Sales.Value,"Dataset1").

      Wenn Sie eine integrierte Funktion aufrufen und einen benannten Bereich angeben, sollten Sie in der Funktionsreferenz nachlesen, welche Bereiche zulässig sind. So können Sie zum Beispiel für Sum den Standardbereich oder einen enthaltenden Bereich angeben.

Grundlegendes zu enthaltenden Bereichen

Die folgenden Bereiche listen die enthaltende Reihenfolge von außen (höher) nach innen (niedriger) auf und beschreiben die Daten, die sie darstellen:

  • Berichtsdataset   Gibt das mit dem Datenbereich oder einem Berichtselement im Hauptteil des Berichts verknüpfte Berichtsdataset an. Die für die Aggregation verwendeten Daten stammen aus dem Berichtsdataset, nachdem Datasetfilter angewendet wurden.

  • Datenbereich   Gibt Daten vom Datenbereich an, nachdem Datenbereichsfilter und Sortierausdrücke angewendet wurden. Beim Berechnen von Aggregaten für Datenbereiche werden Gruppenfilter nicht verwendet.

  • Zeilen- und Spaltengruppen   Geben die Daten nach Anwendung der Gruppenausdrücke und Gruppenfilter auf die übergeordnete Gruppe und die untergeordneten Gruppen an. Damit eine Bereichskapselung identifiziert werden kann, enthält jede übergeordnete Gruppe ihre untergeordneten Gruppen.

  • Geschachtelte Datenbereiche   Gibt die Daten für den geschachtelten Datenbereich im Kontext der Zelle an, der er hinzugefügt wurde, und nachdem die verschachtelten Bereichsfilter und Sortierausdrücke angewendet wurden.

  • Zeilen- und Spaltengruppen für die geschachtelten Datenbereiche   Gibt die Daten nach Anwendung der Gruppenausdrücke und Gruppenfilter des verschachtelten Datenbereichs an.

Wenn eine integrierte Funktion angibt, dass Sie den aktuellen Bereich oder einen enthaltenden Bereich angeben müssen, können Sie keinen Bereich angeben, der sich in der Einkapselungshierarchie tiefer oder auf derselben Ebene befindet wie der aktuelle Bereich. Beispielsweise können Sie in einer Zeile innerhalb einer Zeilengruppe, die über eine untergeordnete Gruppe verfügt, als Bereich weder den Namen der untergeordneten Gruppe noch den Namen einer gleichrangigen Zeilengruppe angeben. Sie müssen den Standardbereich verwenden oder einen Bereich angeben, der in der Einkapselungshierarchie höher steht.

Hinweis

In einem einzelnen Ausdruck können Sie keine Werte über Zeilen- und Spaltengruppen hinweg aggregieren. Das Schreiben eines Ausdrucks, der ein Aggregat mit einem Zeilengruppenbereich und ein anderes Aggregat mit einem Spaltengruppenbereich umfasst, wird nicht unterstützt.

Filterausdrücke

Dataset- und Datenbereichsfilterausdrücke können keine Aggregatfunktionen enthalten. Beim Berechnen von Aggregaten für Datenbereiche werden Gruppenfilter ignoriert.

Berechnen von Aggregaten

Die folgenden integrierten Funktionen berechnen Summenwerte für einen Satz von numerischen Daten ungleich null im Standardbereich oder im benannten Bereich. Alle Daten, die für eine Aggregatberechnung verwendet werden, müssen denselben Datentyp aufweisen. Um Daten mit mehreren numerischen Datentypen in den gleichen Datentyp zu konvertieren, verwenden Sie Konvertierungsfunktionen wie CInt, CDbl oder CDec. Weitere Informationen finden Sie unter Funktionen für die Typkonvertierung.

Damit diese Funktionen zur Berechnung von Zusammenfassungen für eine rekursive Hierarchiegruppe verwendet werden können, müssen Sie den Recursive-Parameter angeben.

Funktion

Beschreibung

Avg

Gibt den Durchschnitt aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

Count

Gibt die Anzahl der Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

CountDistinct

Gibt die Anzahl aller unterschiedlichen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs ausgewertet zurück.

Max

Gibt den Maximalwert aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs zurück. Sie können diese Funktion verwenden, um einen Diagrammachsen-Höchstwert zur Steuerung der Skala anzugeben.

Min

Gibt den Minimalwert aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs zurück. Sie können diese Funktion verwenden, um einen Diagrammachsen-Mindestwert zur Steuerung der Skala anzugeben.

StDev

Gibt die Standardabweichung aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs ausgewertet zurück.

StDevP

Gibt die Standardabweichung der Auffüllung aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

Sum

Gibt die Summe aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

Union

Gibt die Vereinigung aller räumlichen Datenwerte ungleich NULL vom Typ SqlGeometry oder SqlGeography aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

Var

Gibt die Varianz aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des festgelegten Bereichs ausgewertet zurück.

VarP

Gibt die Auffüllungsvarianz aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck im Kontext des angegebenen Bereichs ausgewertet zurück.

Berechnen von ausgeführten Werten

Die folgenden integrierten Funktionen berechnen ausgeführte Werte für einen Satz von Daten. RowNumber gleicht RunningValue darin, dass der ausgeführte Wert für eine Anzahl zurückgegeben wird, die für jede Zeile innerhalb des enthaltenden Bereichs inkrementiert wird. Der Bereichsparameter für diese Funktionen muss einen enthaltenden Bereich angeben, der steuert, wann der Zähler neu gestartet wird.

Funktion

Beschreibung

RowNumber

Gibt eine laufende Zählung der Zeilenanzahl für den angegebenen Bereich zurück. Die RowNumber-Funktion startet den Zähler bei 1 neu und nicht bei 0.

RunningValue

Gibt ein laufendes Aggregat aller numerischen Werte ungleich NULL aus dem angegebenen Ausdruck für den Kontext des angegebenen Bereichs ausgewertet zurück.

Abrufen von Zeilenanzahlen

Die folgende integrierte Funktion berechnet die Anzahl von Zeilen im angegebenen Bereich. Verwenden Sie diese Funktion, um alle Zeilen zu zählen, einschließlich Zeilen mit NULL-Werten.

Funktion

Beschreibung

CountRows

Gibt die Anzahl der Zeilen im angegebenen Bereich zurück, einschließlich der Zeilen mit NULL-Werten.

Nachschlagen von Werten aus einem anderen Dataset

Die folgenden Suchfunktionen rufen Werte aus einem angegebenen Dataset ab.

Funktion

Beschreibung

Suche

Gibt für einen angegebenen Ausdruck einen Wert aus einem Dataset zurück.

LookupSet

Gibt für einen angegebenen Ausdruck einen Satz von Werten aus einem Dataset zurück.

Multilookup-Funktion

Gibt den Satz der ersten übereinstimmenden Werte für einen Satz von Namen aus einem Dataset mit Name-Wert-Paaren zurück.

Abrufen von sortierungsabhängigen Werten

Die folgenden integrierten Funktionen geben den ersten, letzten oder vorherigen Wert innerhalb eines gegebenen Bereichs zurück. Diese Funktionen hängen von der Sortierreihenfolge der Datenwerte ab. Verwenden Sie diese Funktionen, um beispielsweise den ersten und den letzten Wert auf einer Seite zu suchen, um Seitenkopfzeilen im Wörterbuchformat zu erstellen. Verwenden Sie Previous, um einen Wert in einer Zeile mit dem Wert der vorherigen Zeile innerhalb eines bestimmten Bereichs zu vergleichen, beispielsweise, um jährliche Prozentwerte in einer Tabelle zu finden.

Funktion

Beschreibung

First

Gibt den ersten Wert im festgelegten Bereich des angegebenen Ausdrucks zurück.

Last

Gibt den letzten Wert im festgelegten Bereich des angegebenen Ausdrucks zurück.

Previous

Gibt den Wert oder den angegebenen Aggregatwert für die vorherige Instanz eines Elements innerhalb des angegebenen Bereichs zurück.

Abrufen von Serveraggregaten

Die folgende integrierte Funktion ruft benutzerdefinierte Aggregate vom Datenanbieter ab. Mithilfe eines Analysis Services-Datenquellentyps können Sie beispielsweise Aggregate, die auf dem Datenquellenserver berechnet wurden, für die Verwendung in einer Gruppenkopfzeile abrufen.

Funktion

Beschreibung

Aggregate

Gibt ein benutzerdefiniertes Aggregat des angegebenen Ausdrucks gemäß der Definition durch den Datenprovider zurück.

Testen für Bereich

Die folgende integrierte Funktion testet den aktuellen Kontext eines Berichtselements, um festzustellen, ob dieses Mitglied eines bestimmten Bereichs ist.

Funktion

Beschreibung

InScope

Gibt an, ob sich die aktuelle Instanz eines Elements innerhalb des angegebenen Bereichs befindet.

Abrufen von rekursiven Ebenen

Die folgende integrierte Funktion ruft die aktuelle Ebene ab, wenn eine rekursive Hierarchie verarbeitet wird. Verwenden Sie das Ergebnis dieser Funktion mit der Eigenschaft Padding in einem Textfeld, um für eine rekursive Gruppe die Einzugsebene in einer visuellen Hierarchie zu steuern. Weitere Informationen finden Sie unter Erstellen von rekursiven Hierarchiegruppen (Reporting Services).

Funktion

Beschreibung

Level

Gibt die aktuelle Ebene in einer rekursiven Hierarchie zurück.

Siehe auch

Konzepte

Arbeiten mit Berichtsausdrücken

Verwenden von Ausdrücken (Reporting Services)

Berechnen von Gesamtwerten und anderen Aggregaten (Reporting Services)