Arbeiten mit Ausdrücken in Reporting Services

Neu: 05. Dezember 2005

In Reporting Services sorgen Ausdrücke für dynamische Flexibilität beim Steuern des Inhalts und der Darstellung eines Berichts. Einige Ausdrücke werden automatisch erstellt. Wenn Sie beispielsweise einen neuen Bericht erstellen und Felder aus Datasets auf Berichtselemente ziehen, werden die Werte von Textfeldern automatisch auf Ausdrücke festgelegt, die namentlich auf Datasetfelder verweisen. Während der Berichtsverarbeitung wird jeder Ausdruck zu einem Einzelwert ausgewertet, der den Ausdruck beim Rendern des Berichts ersetzt. Darüber hinaus werden Ausdrücke in der Berichtsdefinition verwendet, um Werte für Berichtselementeigenschaften, Textfeldeigenschaften, Parameter, Abfragen, Lesezeichen, Dokumentstrukturen, Filter sowie Gruppierungs- und Sortierdefinitionen anzugeben oder zu berechnen.

Sie erstellen Ausdrücke für Berichtselemente, indem Sie Text in Textfelder, in Eigenschaften oder über ein Dialogfeld eingeben. Ein Ausdruck wird in Microsoft Visual Basic geschrieben. Ein Ausdruck beginnt mit einem Gleichheitszeichen (=) und besteht aus Verweisen auf Konstanten, Operatoren, Funktionen und integrierte globale Auflistungen, einschließlich Feldern und Parametern. Darüber hinaus können Sie Verweise auf .NET Framework-Klassen, benutzerdefinierten Code und Assemblys erstellen, die nicht zur Berichtsverarbeitung gehören. Weitere Informationen zum Erstellen von Ausdrücken finden Sie unter Erstellen von Ausdrücken in Reporting Services.

Dieses Thema bietet eine Übersicht über die Verwendung von Ausdrücken in Berichtsdefinitionen. Die Beispiele in diesem Thema basieren auf dem AdventureWorks-Dataset, das im Lernprogramm Erstellen eines einfachen Berichts erstellt wurde. Eine Einführung in diese Beispiele finden Sie unter Beispiele für Ausdrücke in Reporting Services.

Verwenden von Feldausdrücken

Sie können Ausdrücke verwenden, um aus einem Dataset auf ein Feld zu verweisen und dessen Wert in einem Textfeld anzuzeigen. Um ein Berichtselement mit den abgerufenen Daten zu verknüpfen, muss der Feldausdruck die globale Fields-Auflistung, den Namen des Feldes und die Value-Eigenschaft enthalten.

  • Wenn Sie ein Feld aus einem Datasetfenster auf ein Berichtselement ziehen, wird der Feldausdruck automatisch im Textfeld hinzugefügt.
    Beispiel:
    =Fields!LastName.Value
    Ergebnis:
    Reiter
    Reiter
    Saraiva
  • Sie können Daten aus mehreren Feldern oder Konstanten kombinieren.
    Beispiel:
    =Fields!FirstName.Value & " " & Fields!LastName.Value
    Ergebnis:
    Tsvi Reiter
    Tsvi Reiter
    Jose Saraiva

Eine Liste aller Verweise, die in einem Ausdruck verwendet werden können, finden Sie unter Erstellen von Ausdrücken in Reporting Services.

Verwenden der integrierten Funktionen von Reporting Services

Sie können Ausdrücke verwenden, um aus einem Ausdruck auf eine Reihe integrierter Berichtsfunktionen zu verweisen. Diese reichen von Standardaggregatfunktionen wie Sum, Min, Max und Count, die zum Berechnen von Werten für Zeilengruppen verwendet werden, bis hin zu Funktionen wie RowNumber und RunningValue, die in Detailzeilen verwendet werden, um Werte für jede Zeile bereitzustellen.

  • Ermitteln Sie die Anzahl der Nachnamen im Feld LastName eines Datasets namens SalesOrder, indem Sie die Aggregatfunktion Count verwenden. Der Ausdruck kann zwar in der Detailzeile der Tabelle platziert werden, aber dann würde in jeder der 3906 Zeilen derselbe Wert angezeigt. Aggregatfunktionen wurden für die Zusammenfassung von Detailzeilen entworfen und werden normalerweise in Textfeldern in den Kopf- oder Fußzeilen eines Datenbereichs oder einer Datenbereichsgruppierung verwendet.
    Beispiel:
    ="Number of Names: " & Count(Fields!LastName.Value)
    Ergebnis:
    Number of Names: 3906
  • Berechnen Sie die Summe des Feldes TotalDue mithilfe der Sum-Aggregatfunktion. Platzieren Sie diese in der Fußzeile der Tabelle. Beachten Sie, dass der Wert nicht formatiert ist.
    Beispiel:
    ="Total Sold: " & Sum(Fields!TotalDue.Value)
    Ergebnis:
    Total Sold: 108266245.7018
  • Formatieren Sie einen numerischen Wert mithilfe der Format-Funktion und der Formatierungszeichenfolge C von Microsoft .NET Framework.
    Beispiel:
    ="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
    Ergebnis:
    Total Sold: $108,266,245.70
  • Nummerieren Sie die Zeilen mithilfe der RowNumber-Funktion.
    Beispiel:
    =RowNumber(Nothing)
    Ergebnis:
    1
    2
    3
  • Verwenden Sie RunningValue, um eine laufende Summe für den betreffenden Bereich zu aggregieren.
    Beispiel:
    =Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
    Ergebnis:
    $27,231.55
    $28,947.73

Eine vollständige Liste der integrierten Berichtsfunktionen, auf die aus einem Ausdruck verwiesen werden kann, finden Sie unter Verwenden von Berichtsfunktionen in Ausdrücken (Reporting Services).

Bereich

Da Sie möglicherweise mehrere Gruppen definiert haben, können Sie den Bereich angeben, den eine Aggregatfunktion verwenden soll. Bereiche sind Namen, die Sie an Aggregatfunktionen übergeben können, um anzugeben, wie die Aggregate berechnet werden sollen. In Tabellen, für die mehrere Gruppen definiert wurden, können Sie beispielsweise aus der Kopfzeile einer Innengruppe auf eine Außengruppe verweisen. Der Nothing-Bereich teilt einer Funktion mit, dass der äußerste Bereich verwendet werden soll. Für einen einfachen Tabellendatenbereich ohne Gruppierung ist nur ein Bereich vorhanden.

Um Bereiche zu identifizieren, die für eine Berichtselementgruppierung gültig sind, wählen Sie das Element aus, öffnen Sie das Dialogfeld Eigenschaften, klicken Sie auf die Registerkarte Gruppen, und zeigen Sie die Liste der Gruppenbezeichnungen an, die zur Identifizierung der Bereiche verwendet werden können.

Verwenden von .NET Framework und Systemnamespaces

Mithilfe von Ausdrücken können Sie auf die integrierten Namespaces für die Microsoft.VisualBasic-Laufzeitbibliothek sowie auf die .NET Framework-Namespaces System.Convert und System.Math verweisen. Um auf andere .NET Framework-CLR-Namespaces (Common Language Runtime) zu verweisen, müssen Sie den vollqualifizierten Namespace, z. B. System.Text.StringBuilder, verwenden. Bei Verweisen auf externe Assemblys müssen Sie die Assembly über die Berichtseigenschaften identifizieren und sicherstellen, dass sie auf dem Berichtsserver verfügbar ist. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen eines Assemblyverweises zu einem Bericht (Berichts-Designer) und Referencing Assemblies in an RDL File.

Verwenden von benutzerdefiniertem Code und Klassenverweisen

Mithilfe von Ausdrücken können Sie auf eigene benutzerdefinierte und Klasseninstanzen verweisen. Hierzu fügen Sie Code direkt über die Berichtseigenschaften zu dem Bericht hinzu, oder Sie erstellen eine benutzerdefinierte Assembly und verweisen dann aus einem Ausdruck auf diese Assembly. Weitere Informationen finden Sie unter Verwenden von benutzerdefinierten Codeverweisen in Ausdrücken (Reporting Services).

Verwenden von bedingter Formatierung

Mithilfe von Ausdrücken können Sie die Darstellung eines Berichtselements steuern. So können Sie beispielsweise einen Ausdruck für die Color-Eigenschaft eines Textfeldes erstellen, der die Daten in Abhängigkeit von ihren Werten in unterschiedlichen Farben anzeigt. Im folgenden Beispiel wird der Wert rot angezeigt, wenn der Wert im Feld TotalDue weniger als 10000 beträgt. Ist die Bedingung nicht erfüllt, wird der Text schwarz angezeigt.

=Iif(Fields!TotalDue.Value < 10000,"Red","Black")

Um Formatierungsausdrücke für ein Berichtselement einzugeben, öffnen Sie das Eigenschaftenfenster und geben den Ausdruck in das Wertfeld für die zu formatierende Eigenschaft ein. Weitere Informationen zur bedingten Formatierung finden Sie unter Hinzufügen von bedingter Formatierung.

Verwenden von Abfrageausdrücken

Mithilfe von Ausdrücken können Sie die in einem Dataset enthaltene Abfrage definieren. Auf diese Weise können Sie Berichte entwerfen, in denen die Abfrage abhängig von Benutzereingaben, Daten in anderen Datasets oder anderen Variablen geändert wird. Weitere Informationen zu Abfragen finden Sie unter Definieren von Berichtsdatasets.

Verwenden von Filter-, Gruppierungs- und Sortierausdrücken

Sie können Ausdrücke verwenden, um Filter zu definieren, die die Datenmenge sowie die in einem Bericht angezeigten Datentypen begrenzen. Filter werden auf Daten angewendet, nachdem diese aus der Datenquelle abgerufen wurden. Sie können Filter für Datasets, Datenbereiche und Datenbereichsgruppierungen definieren. Weitere Informationen zum Filtern finden Sie unter Vorgehensweise: Hinzufügen eines Filters (Berichts-Designer) und Filtern von Daten in einem Bericht.

Mithilfe von Ausdrücken können Sie Gruppen für Datenbereiche definieren. Ausdrücke werden häufig verwendet, um Aggregate von gruppierten Daten zu berechnen. Gruppen werden definiert, indem Gruppenköpfe für Datenbereiche erstellt werden. Weitere Informationen zum Gruppieren von Daten finden Sie unter Gruppieren von Daten und Vorgehensweise: Hinzufügen einer Gruppe zu einer Tabelle (Berichts-Designer).

Mithilfe von Ausdrücken können Sie die Sortierung für Datenbereiche definieren. Sie können Datasets, Detailzeilen in einem Datenbereich und Gruppen in einem Datenbereich sortieren. Weitere Informationen zum Sortieren von Daten finden Sie unter Sortieren von Daten und Vorgehensweise: Sortieren von Daten in einer Tabelle (Berichts-Designer).

Verwenden integrierter Berichtsauflistungen

Mithilfe von Ausdrücken können Sie auf integrierte Berichtsauflistungsklassen verweisen. Zusätzlich zu der weiter oben beschriebenen Fields-Auflistung können Sie Ausdrücke erstellen, die auf Elemente in den folgenden Auflistungen verweisen: Globals, User, Parameters, ReportItems, DataSets und DataSources. Bei Verwendung in einem Ausdruck ermöglichen diese Auflistungen den Zugriff auf Berichtseigenschaften und Daten, die während der Berichtsverarbeitung dynamisch ermittelt werden. Weitere Informationen finden Sie unter Verwenden globaler Auflistungen in Ausdrücken (Reporting Services).

Verwenden von Gebietsschemaeinstellungen

Sie können Ausdrücke verwenden, um auf die Gebietsschemaeinstellungen auf einem Clientcomputer zu verweisen. Mithilfe des User.Language-Wertes können Sie bestimmen, wie ein Bericht für den Benutzer angezeigt wird. Beispielsweise können Sie einen Bericht erstellen, in dem je nach Gebietsschemawert ein unterschiedlicher Abfrageausdruck verwendet wird. Die Abfrage kann z. B. so geändert werden, dass abhängig von der zurückgegebenen Sprache lokalisierte Informationen aus unterschiedlichen Spalten abgerufen werden. Sie können auch in den Spracheinstellungen des Berichts oder Berichtselements einen Ausdruck verwenden, der auf dieser Variablen basiert.

ms345242.note(de-de,SQL.90).gifHinweis:
Wenn Sie die Spracheinstellungen eines Berichts ändern, müssen Sie darauf achten, ob dies keine Probleme bei der Anzeige verursacht. Durch das Ändern der Gebietsschemaeinstellung des Berichts kann beispielsweise das Datumsformat im Bericht geändert werden, gleichzeitig ändert sich jedoch möglicherweise auch das Währungsformat. Falls kein Konvertierungsprozess für die Währung installiert ist, wird möglicherweise das falsche Währungssymbol im Bericht angezeigt. Sie können dies vermeiden, indem Sie die Sprachinformationen für die einzelnen Elemente festlegen, die Sie ändern möchten, oder indem Sie das Element mit den Währungsdaten auf eine bestimmte Sprache festlegen.

Siehe auch

Aufgaben

Vorgehensweise: Hinzufügen eines Ausdrucks (Berichts-Designer)

Verweis

Beispiele für Ausdrücke in Reporting Services

Konzepte

Vorgehensweisen für das Berichtslayout

Andere Ressourcen

Ausdruck bearbeiten (Berichts-Designer)

Hilfe und Informationen

Informationsquellen für SQL Server 2005