In Berichten häufig verwendete Ausdrücke (Visual Studio-Berichts-Designer)

Einige Ausdrücke werden häufig in Berichten verwendet. Dazu zählen Ausdrücke zum Ändern der Darstellung von Daten in einem Bericht, zum Berechnen von Gesamtergebnissen und zum Ändern von Eigenschaften von Berichtselementen. In diesem Thema werden einige Ausdrücke beschrieben, die in einem Bericht für allgemeine Aufgaben verwendet werden können.

Viele Ausdrücke in einem Bericht enthalten Funktionen. Sie können Ausdrücke erstellen, die Funktionen aus den Namespaces Microsoft.VisualBasic, System.Convert und System.Math verwenden. Sie können aber auch Verweise auf andere Assemblys oder benutzerdefinierten Code hinzufügen. Auch Klassen aus Microsoft .NET Framework SDK können verwenden werden. Weitere Informationen finden Sie in der Dokumentation zu den .NET Framework SDK-Bibliotheksklassen.

Funktionen

Bei den meisten Funktionen in einem Bericht handelt es sich um Microsoft Visual Basic- oder integrierte Berichtsfunktionen. Mit diesen Funktionen können Sie Daten formatieren, Code anwenden und auf Berichtsmetadaten zugreifen.

Visual Basic-Funktionen

Mit Visual Basic-Funktionen können Sie die Daten bearbeiten, die in Textfeldern angezeigt oder für Parameter, Eigenschaften oder sonstige Bereiche des Berichts verwendet werden. Dieser Abschnitt enthält Beispiele zur Veranschaulichung einiger Funktionen. Weitere Informationen zu Visual Basic-Funktionen finden Sie in der Dokumentation zu Visual Basic.

Datumsfunktionen

Mit Visual Basic-Funktionen können Datumsinformationen in Berichten angezeigt werden.

  • Der folgende Ausdruck enthält die Today-Funktion, die das aktuelle Datum anzeigt. Mit diesem Ausdruck können Sie in einem Textfeld das Datum im Bericht anzeigen oder aber in einem Parameter Daten basierend auf dem aktuellen Datum filtern:

    =Today() 
    
  • Mit der DateAdd-Funktion wird ein Datumsbereich basierend auf einem einzigen Parameter abgerufen. Der folgende Ausdruck liefert das Datum des Tags, der sechs Monate nach dem Datum des StartDate-Parameters liegt:

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
    
  • Der folgende Ausdruck enthält die Year-Funktion, die das Jahr für ein bestimmtes Datum anzeigt. Hiermit können Sie Datumsangaben zusammenfassen oder die Jahreszahl für eine Datumsgruppe anzeigen. Dieser Ausdruck liefert das Jahr für eine bestimmte Gruppe von Bestelldaten:

    =Year(Fields!OrderDate.Value)
    
  • Mit der Month-Funktion und sonstigen Funktionen können auch Datumsangaben bearbeitet werden. Weitere Informationen finden Sie in der Visual Basic-Dokumentation.

Zeichenfolgenfunktionen

Mit Visual Basic-Funktionen können Zeichenfolgen im Bericht bearbeitet werden.

  • Mit der Format-Funktion können Sie Datumsangaben und Zahlen in einer Zeichenfolge formatieren. Mit dem folgenden Ausdruck werden Werte der Parameter StartDate und EndDate im langen Datumsformat angezeigt:

    =Format(Parameters!StartDate.Value, "D") & " through " &  
    Format(Parameters!EndDate.Value, "D") 
    

    Enthält das Textfeld nur ein Datum oder eine Zahl, sollten Sie zum Formatieren die Format-Eigenschaft des Textfelds statt der Format-Funktion im Textfeld verwenden.

  • Mit den Funktionen Right, Len und InStr kann eine Teilzeichenfolge zurückgegeben werden, um z. B. DOMAIN\Benutzername auf den Benutzernamen zu verkürzen. Der folgende Ausdruck gibt einen Teil einer Zeichenfolge rechts von einem umgekehrten Schrägstrich (\) vom User-Parameter zurück:

    =Right(Parameters!User.Value, Len(Parameters!User.Value) - 
    InStr(Parameters!User.Value, "\"))
    

    Der folgende Ausdruck liefert dasselbe Ergebnis, wobei Elemente der .NET Framework-Klasse String statt von Visual Basic-Funktionen verwendet werden:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, 
    Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
    

Entscheidungsfunktionen

Mit Visual Basic-Funktionen kann ein Eingabewert ausgewertet und ein anderer Wert basierend auf dem Ergebnis zurückgegeben werden.

  • Die Iif-Funktion gibt einen von zwei Werten zurück, und zwar abhängig davon, ob der Ausdruck als True ausgewertet wird. Im folgenden Ausdruck wird mit der Iif-Funktion der boolesche Wert True zurückgegeben, falls der Wert von LineTotal 100 überschreitet. Andernfalls wird False zurückgegeben:

    =Iif(Fields!LineTotal.Value > 100, True, False)
    

    Im folgenden Ausdruck wird mithilfe mehrerer Iif-Funktionen (die auch als "geschachtelte Iif-Funktionen" bezeichnet werden) einer von drei Werten in Abhängigkeit vom Wert von PctComplete zurückgegeben.

    =Iif(Fields!PctComplete.Value >= .8, "Green", 
    Iif(Fields!PctComplete.Value >= .5, "Amber", "Red"))
    
  • Der folgende Ausdruck gibt ebenfalls einen von drei Werten basierend auf dem Wert von PctComplete zurück. Allerdings wird in diesem Fall die Switch-Funktion verwendet, die den Wert des ersten Ausdrucks in einer Reihe zurückgibt, der als True ausgewertet wird:

    =Switch(Fields!PctComplete.Value >= .8, "Green", 
    Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value < 
    .5, "Red")
    

Berichtsfunktionen

Reporting Services enthält weitere Berichtsfunktionen zum Bearbeiten von Berichtsdaten. In diesem Abschnitt werden Beispiele für zwei dieser Funktionen behandelt. Weitere Informationen zu Berichtsfunktionen und Beispielen finden Sie unter Integrierte Funktionen für Berichte (Visual Studio-Berichts-Designer).

  • Die Sum-Funktion liefert die Summe von Werten in einer Gruppierung oder einem Datenbereich. Diese Funktion ist hilfreich für die Kopf- oder Fußzeile einer Tabellengruppe. Der folgende Ausdruck zeigt die Summe von Daten in der Gruppierung bzw. im Datenbereich Order an:

    =Sum(Fields!LineTotal.Value, "Order")
    
  • Wenn Sie einen Ausdruck, in dem die RowNumber-Funktion enthalten ist, in einem Textfeld innerhalb eines Datenbereichs verwenden, wird die Zeilennummer für jede Instanz des Textfelds angezeigt, in der der Ausdruck angezeigt wird. Diese Funktion eignet sich, um Zeilen in einer Tabelle zu nummerieren. Sie ist auch bei komplizierteren Aufgaben hilfreich, z. B. beim Einfügen von Seitenumbrüchen basierend auf der Zeilennummer. Weitere Informationen finden Sie weiter unten unter "Seitenumbrüche".

    Der folgende Ausdruck zeigt die Zeilennummer von der ersten Zeile im äußersten Datenbereich bis zur letzten Zeile an. Das Nothing-Schlüsselwort gibt an, dass die Funktion die Zählung mit der ersten Zeile im äußersten Datenbereich beginnt. Um mit dem Zählen in untergeordneten Datenbereichen zu beginnen, verwenden Sie den Namen des Datenbereichs.

    =RowNumber(Nothing)
    

Darstellung von Berichtsdaten

Mit Ausdrücken können Sie die Darstellung von Daten in einem Bericht ändern. Beispielsweise können Sie die Werte von zwei Feldern in einem einzigen Textfeld anzeigen, Informationen zum Bericht anzeigen oder die Methode zum Einfügen von Seitenumbrüchen im Bericht ändern.

Seitenkopfzeilen und -fußzeilen

Beim Entwerfen eines Berichts soll möglicherweise der Name des Berichts und die Seitenzahl in der Fußzeile des Berichts angezeigt werden. Dazu können Sie die folgenden Ausdrücke verwenden:

  • Der folgende Ausdruck stellt den Namen des Berichts und die Zeit seiner Ausführung bereit. Er kann in einem Textfeld in der Fußzeile oder im Hauptteil des Berichts eingefügt werden. Die Zeit wird mit der .NET Framework-Formatzeichenfolge für das kurze Datum formatiert:

    =Globals.ReportName & ", dated " & 
    Format(Globals.ExecutionTime, "d")
    
  • Der folgende Ausdruck zeigt in einem Textfeld in der Fußzeile eines Berichts die Seitenzahl und die Gesamtseitenzahl im Bericht an:

    =Globals.PageNumber & " of " & Globals.TotalPages
    

In der Kopf- bzw. Fußzeile des Berichts kann auch auf Berichtselemente aus dem Hauptteil des Berichts verwiesen werden. Die folgenden Beispiele veranschaulichen, wie der erste und letzte Wert einer Seite in der Seitenkopfzeile angezeigt wird, ähnlich wie bei einer Verzeichnisauflistung. Bei diesem Beispiel wird von einem Datenbereich ausgegangen, der das Textfeld LastName enthält.

  • Der folgende Ausdruck platziert in einem Textfeld auf der linken Seite der Kopfzeile den ersten Wert des Textfelds LastName auf der Seite:

    =First(ReportItems!LastName.Value)
    
  • Der folgende Ausdruck platziert in einem Textfeld auf der rechten Seite der Kopfzeile den letzten Wert des Textfelds LastName auf der Seite:

    =Last(ReportItems!LastName.Value)
    

Auf einen Berichtselementverweis in einer Seitenkopfzeile oder -fußzeile können Aggregatfunktionen angewendet werden. (Auf einen Berichtselementverweis im Hauptteil des Berichts können jedoch keine Aggregatfunktionen angewendet werden.) Das folgende Beispiel beschreibt, wie die Summe einer Seite angezeigt wird. Bei diesem Beispiel wird von einem Datenbereich ausgegangen, der das Textfeld Cost enthält.

  • Der folgende Ausdruck zeigt in der Seitenkopfzeile oder -fußzeile die Summe der Werte im Textfeld Cost für die Seite an:

    =Sum(ReportItems!Cost.Value)
    
    NoteHinweis

    In einer Seitenkopfzeile oder -fußzeile kann pro Ausdruck nur auf ein einziges Berichtselement verwiesen werden.

Seitenumbrüche

In manchen Berichten möchten Sie möglicherweise einen Seitenumbruch am Ende einer bestimmten Anzahl von Zeilen einfügen, und zwar anstelle von bzw. zusätzlich zu Gruppen oder Berichtselementen. Erstellen Sie dazu eine Gruppe in einem Datenbereich (normalerweise eine Gruppe direkt außerhalb des Details), fügen Sie der Gruppe einen Seitenumbruch hinzu, und fügen Sie dann einen Gruppenausdruck hinzu, um nach einer bestimmten Anzahl von Zeilen zu gruppieren.

  • Der folgende Ausdruck weist im Gruppenausdruck einer Gruppe von jeweils 25 Zeilen eine Zahl zu. Wenn ein Seitenumbruch für die Gruppe definiert ist, ergibt sich nach je 25 Zeilen ein Seitenumbruch.

    =Int((RowNumber(Nothing)-1)/25)
    

Eigenschaften

Mit Ausdrücken werden nicht nur Daten in Textfeldern angezeigt. Sie können mit Ausdrücken auch festlegen, wie Eigenschaften auf Berichtselemente angewendet werden. Sie können Formatinformationen für ein Berichtselement ändern oder festlegen, ob es angezeigt wird.

Formatierung

Mithilfe von Ausdrücken können Sie die Darstellung von Berichtselementen in einem Bericht ändern.

  • Wenn der folgende Ausdruck in der Color-Eigenschaft eines Textfelds verwendet wird, wird damit die Farbe des Texts basierend auf dem Wert des Felds Profit geändert:

    =Iif(Fields!Profit.Value < 0, "Red", "Black")
    
  • Wenn der folgende Ausdruck in der BackgroundColor-Eigenschaft eines Berichtselements in einem Datenbereich verwendet wird, wird die Hintergrundfarbe der Zeilen von hellgrün in weiß geändert:

    =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
    

Sichtbarkeit

Berichtselemente können mithilfe der Sichtbarkeitseigenschaften ein- und ausgeblendet werden. In einem Datenbereich, z. B. in einer Tabelle, können die Detailzeilen basierend auf dem Wert eines Ausdrucks anfänglich ausgeblendet werden.

  • Wenn der folgende Ausdruck für die ursprüngliche Sichtbarkeit von Detailzeilen in einer Gruppe verwendet wird, werden die Detailzeilen für alle Umsätze angezeigt, die im Feld PctQuota 90 % übersteigen:

    =Iif(Fields!PctQuota.Value>.9, False, True)
    

Berichtsparameter

Ausdrücke können in einem Parameter verwendet werden, um den Standardwert für den Parameter zu ändern. Beispielsweise könnten Sie mithilfe eines Parameters Daten nach einem bestimmten Benutzer basierend auf der Benutzer-ID filtern, mit der der Bericht ausgeführt wird.

  • Wenn der folgende Ausdruck als Standardwert für einen Parameter verwendet wird, wird die Benutzer-ID der Person abgerufen, die den Bericht ausführt:

    =User!UserID
    

Benutzerdefinierter Code

In einem Bericht kann benutzerdefinierter Code verwendet werden. Benutzerdefinierter Code ist entweder in einen Bericht eingebettet oder in einer benutzerdefinierten Assembly gespeichert, die im Bericht verwendet wird. Weitere Informationen zu benutzerdefiniertem Code finden Sie unter Hinzufügen von benutzerdefiniertem Code zu einem Bericht (Visual Studio-Berichts-Designer).

  • Im folgenden Beispiel wird die eingebettete Codemethode ToUSD aufgerufen, die den Wert des Felds StandardCost in einen Dollarwert konvertiert:

    =Code.ToUSD(Fields!StandardCost.Value)
    

Siehe auch

Community-Beiträge

Anzeigen: