Rufen Sie eine C# -Artage aus einem Bericht in Berichtsdienste an
-
06-07-2019 - |
Frage
Ich habe einen Verweis auf eine benutzerdefinierte Montage in einem Bericht von Report Services (2008) hinzugefügt. Es funktioniert hervorragend, wenn ich von einem Textfeld anrufe (z. B. = montage.class.function ()), aber wenn ich es in einen benutzerdefinierten Codeblock einpacke:
Function GetString(ByVal key as String) as String
return Willow.Reporting.Localization.Resource.Get(User!Language, "WAR", "Title", key)
end function
Ich erhalte den Build-Fehler "Verweis auf ein nicht stammendes Mitglied erfordert eine Objektreferenz".
Die C# -Klasse und Funktionen sind statisch.
Als Test habe ich auch ein nicht statisches Vrsion der Klasse erstellt, eine Instanz erstellt und über den Instanznamen im benutzerdefinierten Code auf sie zugegriffen, aber auch kein Glück.
Ist es möglich, eine benutzerdefinierte Montage aus dem Codeblock in Berichtsdiensten aufzurufen?
Lösung 2
Die VS -IDE lädt die Baugruppe nur einmal bei der Last - Sie müssen also jedes Mal schließen/wieder eröffnen, wenn Sie eine Baugruppe ändern (Entfernen der Referenz und Zurücksetzen funktionierten auch nicht)
Sie können sowohl statische Anrufe als auch Instanzmethoden verwenden, und es funktioniert gut aus dem eingebetteten Code, z. B.:
Function Test() as String
return Instance.GetString()
End Function
Function Test2() as String
return WR.StaticTest.GetString()
End Function
Andere Tipps
Vielleicht bist du ein C# -Programmierer? "Shared" in VB bedeutet statisch. Die Nachricht bedeutet, dass Sie eine Instanz der Klasse erstellen müssen, um eine (Instanz-) Methode der Klasse aufzurufen.