Freigeben über


Verwenden von benutzerdefinierten Codeverweisen in Ausdrücken (Berichts-Generator 2.0)

Sie können Verweise auf benutzerdefinierten Code hinzufügen, der in einem Bericht eingebettet ist. Verwenden Sie eingebetteten Code für benutzerdefinierte Konstanten, komplexe Funktionen oder für Funktionen, die mehrfach in demselben Bericht verwendet werden.

Für zeitempfindliche Berechnungen, die einmal zur Laufzeit ausgewertet werden und während der Berichtsverarbeitung denselben Wert behalten sollen, bietet sich eventuell die Verwendung einer Berichts- oder Gruppenvariablen an. Weitere Informationen finden Sie unter Verwenden von Verweisen auf Berichts- und Gruppenvariablenauflistungen in Ausdrücken (Berichts-Generator 2.0).

In benutzerdefiniertem Code können neue benutzerdefinierte Konstanten, Variablen, Funktionen oder Unterroutinen eingeschlossen werden. Sie können schreibgeschützte Verweise in integrierte Auflistungen, wie die Parameter-Auflistung, einbeziehen. An benutzerdefinierte Funktionen können jedoch keine Sätze von Berichtsdatenwerten übergeben werden, insbesondere werden keine benutzerdefinierten Aggregate unterstützt.

Eingebetteter Code

Auf der Seite Code des Dialogfelds Berichtseigenschaften können Sie einem Bericht eingebetteten Code hinzufügen. Der erstellte Codeblock kann mehrere Methoden enthalten. Methoden in eingebettetem Code müssen in MicrosoftVisual Basic geschrieben und instanzbasiert sein. Vom Berichtsprozessor werden automatisch Verweise für den System.Convert-Namespace und den System.Math-Namespace hinzugefügt. In Berichts-Generator 2.0 werden Verweise auf zusätzliche Assembyverweise nicht unterstützt.

Die Methoden im eingebetteten Code stehen über ein global definiertes Code-Element zur Verfügung. Zum Zugriff auf die Methoden verweisen Sie auf das Code-Element und den Methodennamen. Im folgenden Beispiel wird die Methode ToUSD aufgerufen, die den Wert des StandardCost-Feldes in einen Dollarwert konvertiert:

=Code.ToUSD(Fields!StandardCost.Value)

Wenn Sie in Ihrem benutzerdefinierten Code auf integrierte Auflistungen verweisen möchten, nehmen Sie in das integrierte Report-Objekt einen Verweis auf.

=Report.Parameters!Param1.Value

In den folgenden Beispielen wird veranschaulicht, wie einige benutzerdefinierte Konstanten und Variablen definiert werden können.

Public Const MyNote = "Authored by Bob"
Public Const NCopies As Int32 = 2
Public Dim  MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456

Obwohl benutzerdefinierte Konstanten nicht in der Konstanten-Kategorie des Dialogfelds Ausdruck angezeigt werden (in der nur integrierte Konstanten angezeigt werden), können Sie Verweise darauf über einen beliebigen Ausdruck hinzufügen (wie in den folgenden Beispielen veranschaulicht). In einem Ausdruck wird eine benutzerdefinierte Konstante als Variant behandelt.

=Code.MyNote
=Code.NCopies
=Code.MyVersion
=Code.MyDoubleVersion

Weitere Informationen zu integrierten Objektauflistungen und zur Initialisierung finden Sie unter Verwenden globaler Auflistungen in Ausdrücken.

Beispiele für das Verweisen auf Parameter in benutzerdefiniertem Code

Sie können auf die globale Parameters-Auflistung per benutzerdefinierten Code über einen Codeblock der Berichtsdefinition oder über eine von Ihnen bereitgestellte benutzerdefinierte Assembly verweisen. Die Parameters-Auflistung ist schreibgeschützt und verfügt über keine öffentlichen Iteratoren. Es ist nicht möglich, die Auflistung mit einer Visual BasicFor Each-Konstruktion zu durchlaufen. Sie benötigen den in der Berichtsdefinition definierten Namen des Parameters, um in Ihrem Code auf ihn verweisen zu können. Allerdings ist es möglich, durch alle Werte eines mehrwertigen Parameters zu iterieren. Weitere Informationen finden Sie unter Verwenden von benutzerdefinierten Codeverweisen in Ausdrücken (Berichts-Generator 2.0).

Die folgende Tabelle enthält Beispiele für Verweise auf die integrierte Parameters-Auflistung von benutzerdefiniertem Code:

Beschreibung

Verweis in Ausdruck

Benutzerdefinierte Codedefinition

Übergeben einer gesamten globalen Parameters-Auflistung an benutzerdefinierten Code.

Diese Funktion gibt den Wert eines bestimmten Berichtsparameters MyParameter zurück.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

Übergeben eines einzelnen Parameters an benutzerdefinierten Code.

In diesem Beispiel wird der Wert des übergebenen Parameters zurückgegeben. Wenn es sich bei dem Parameter um einen mehrwertigen Parameter handelt, besteht die zurückgegebene Zeichenfolge aus einer Verkettung aller Werte.

=Code.ShowParametersValues(Parameters!DayOfTheWeek)

Public Function ShowParameterValues(ByVal parameter as Parameter)
 as String
   Dim s as String 
   If parameter.IsMultiValue then
      s = "Multivalue: " 
      For i as integer = 0 to parameter.Count-1
         s = s + CStr(parameter.Value(i)) + " " 
      Next
   Else
      s = "Single value: " + CStr(parameter.Value)
   End If
   Return s
End Function

Benutzerdefinierte Assemblys

In Berichts-Generator 2.0 werden benutzerdefinierte Assemblys nur auf dem Berichtsserver unterstützt. Weitere Informationen über den Zugriff auf Code nach der Installation auf dem Berichtsserver finden Sie unter "Zugriff auf benutzerdefinierte Assemblys über Ausdrücke" in der Reporting Services-Dokumentation in der SQL Server-Onlinedokumentation.