Zugriff auf benutzerdefinierte Assemblies über Ausdrücke

Nachdem du eine benutzerdefinierte Assembly erstellt, sie dem Berichts-Designer oder dem Report Server zur Verfügung gestellt, die entsprechende Sicherheitsrichtlinie hinzugefügt und eine Referenz auf deine benutzerdefinierte Assembly in deiner Berichtsdefinition hinzugefügt hast, kannst du die Mitglieder der Klassen in deiner Assembly mithilfe von Berichtsausdrücken aufrufen. 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.

Rufen Sie statische Mitglieder aus einer Berichtsdefinitionsdatei auf

Statische Mitglieder gehören zur Klasse oder zum Typ selbst und nicht zu einem instanziierten Objekt. Diese Mitglieder sind zugänglich, indem man sie direkt aus der Klasse anruft. Du solltest statische Mitglieder verwenden, um benutzerdefinierte Funktionen in einem Bericht aufzurufen, da statische Mitglieder am besten performen. Um ein statisches Mitglied aufzurufen, muss man es als Ausdruck referenzieren, der die Form =Namespace.Class.Method annimmt.

Nennen Sie statische Mitglieder

  • Um ein statisches Mitglied aufzurufen, setze deinen Ausdruck gleich dem voll qualifizierten Namen des Mitglieds, der den Namensraum, den Klassennamen und den Mitgliedsnamen umfasst. Das folgende Beispiel ruft die ToGBP-Methode auf, die den StandardCost-Feldwert von Dollar in Pfund Sterling umwandelt und in einem Bericht darstellt:

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

Wichtige Informationen zu statischen Feldern und Eigenschaften

Derzeit werden alle Berichte in derselben Anwendungsdomäne ausgeführt. Das bedeutet, dass Berichte mit benutzerspezifischen, statischen Daten diese Daten anderen Instanzen desselben Berichts zugänglich machen. Diese Bedingung könnte es ermöglichen, dass die statischen Daten eines Nutzers für alle Benutzer verfügbar sind, die derzeit einen bestimmten Bericht ausführen. Aus diesem Grund wird dringend empfohlen, keine statischen Felder oder Eigenschaften in benutzerdefinierten Assemblies 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 Daten speichern.

Ruf Instanzmitglieder aus einer Berichtsdefinitionsdatei auf

Wenn deine benutzerdefinierte Assembly Instanzmitglieder enthält, auf die du in einer Berichtsdefinition zugreifen musst, musst du dem Bericht einen Instanznamen für deine Klasse hinzufügen. Sie können einen Instanznamen für eine Klasse über den Code-Tab im Dialogfeld "Berichte über Eigenschaften " hinzufügen. Weitere Informationen zum Hinzufügen von Instanzen von Klassen zu einem Bericht finden Sie unter Custom Code and Assembly References in Expressions in Berichts-Designer (SSRS).

Um ein statisches Mitglied aufzurufen, muss man es als Ausdruck referenzieren, der die Form =Code* annimmt. InstanceName.Method*.

Mitglieder der Aufrufinstanz

  • Um ein Instanzmitglied einer benutzerdefinierten Assembly aufzurufen, muss man das Code-Schlüsselwort gefolgt vom Instanznamen und der Methode referenzieren. Das folgende Beispiel ruft eine Instanzmethode ToEUR auf, die den StandardCost-Feldwert von Dollar in Euro umwandelt und in einem Bericht darstellt:

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