Zugreifen auf benutzerdefinierte Assemblys über Ausdrücke

Nachdem Sie eine benutzerdefinierte Assembly erstellt haben, stellen Sie sie für Berichts-Designer oder den Berichtsserver zur Verfügung, fügen Sie die entsprechende Sicherheitsrichtlinie hinzu, und fügen Sie einen Verweis auf Die benutzerdefinierte Assembly in Der Berichtsdefinition hinzu, sie können mithilfe von Berichtsausdrücken auf die Member der Klassen in der Assembly zugreifen. Wenn Sie in einem Ausdruck auf benutzerdefinierten Code verweisen möchten, müssen Sie das Klassenelement in der Assembly aufrufen. Die Vorgehensweise hängt davon ab, ob es sich um eine statische oder um eine instanzbasierte Methode handelt.

Aufrufen statischer Elemente aus einer Berichtsdefinitionsdatei

Statische Elemente gehören zur Klasse oder zum Typ selbst und nicht zu einem instanziierten Objekt. Auf diese Elemente kann zugegriffen werden, indem sie direkt von der Klasse aus aufgerufen werden. Wenn möglich, sollten Sie statische Elemente verwenden, um benutzerdefinierte Funktionen in einem Bericht aufzurufen, da die Leistung von statischen Elementen am besten ist. Um ein statisches Element aufzurufen, müssen Sie darauf als Ausdruck in der Form =Namespace.Class.Method verweisen.

Aufrufen statischer Member

  • Um ein statisches Element aufzurufen, stellen Sie den Ausdruck auf den vollqualifizierten Namen des Elements ein, der Namespace, den Klassennamen und den Elementnamen umfasst. Im folgenden Beispiel wird die ToGBP-Methode verwendet, bei der der Wert des Felds StandardCost von Dollar in britische Pund umgerechnet und in einem Bericht angezeigt wird:

    =CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)  
    

Wichtige Informationen zu statischen Feldern und Eigenschaften

Derzeit werden alle Berichte in der gleichen Anwendungsdomäne ausgeführt. Das bedeutet, dass Berichte mit benutzerdefinierten, statischen Daten diese Daten in anderen Instanzen desselben Berichts zur Verfügung stellen. Dies kann dazu führen, dass die statischen Daten eines Benutzers allen Benutzern, die einen bestimmten Bericht ausführen, zur Verfügung gestellt werden. Aus diesem Grund wird dringend empfohlen, keine statischen Felder oder Eigenschaften in benutzerdefinierten Assemblys oder im Code-Element zu verwenden. Verwenden Sie stattdessen Instanzfelder oder Eigenschaften in Ihren Berichten. Statische Methoden können weiterhin verwendet werden, da sie keinen Zustand oder keine Daten speichern.

Aufrufen von Instanzmitgliedern aus einer Berichtsdefinitionsdatei

Wenn die benutzerdefinierte Assembly Instanzelemente enthält, auf die Sie in einer Berichtsdefinition zugreifen müssen, müssen Sie einen Instanznamen für die Klasse des Berichts hinzufügen. Hierzu verwenden Sie die Registerkarte Code des Dialogfelds Berichtseigenschaften. Weitere Informationen zum Hinzufügen von Klasseninstanzen zu einem Bericht finden Sie unter Benutzerdefinierter Code und Assembly-Verweise in Ausdrücken in Berichts-Designer (SSRS).

Um ein statisches Element aufzurufen, müssen Sie als Ausdruck in der Form =Code*.InstanceName.Method* darauf verweisen.

Anrufinstanzmitglieder

  • Um ein Instanzelement einer benutzerdefinierten Assembly aufzurufen, müssen Sie auf das Schlüsselwort Code gefolgt vom Instanznamen und der Methode verweisen. Im folgenden Beispiel wird die Instanzmethode ToEUR verwendet, bei der der Wert des Felds StandardCost von Dollar in Euro umgerechnet und in einem Bericht angezeigt wird:

    =Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)  
    

Verwenden benutzerdefinierter Assemblys mit Berichten