Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In einigen Fällen müssen Sie möglicherweise Eigenschafts- und Feldwerte in Ihren benutzerdefinierten Assemblyklassen initialisieren, wenn Sie sie instanziieren. Wahrscheinlich müssen Sie Ihre benutzerdefinierten Klassen mit Werten initialisieren, die Ihnen aus den globalen Objektsammlungen des Berichts zur Verfügung stehen. Dazu überschreiben Sie die OnInit-Methode des Code-Objekts eines Berichts. Verwenden Sie das Code-Element der Berichtsdefinition, um auf OnInit zuzugreifen. Es gibt zwei Techniken zum Initialisieren von Eigenschafts- oder Feldwerten der Klassen in einer benutzerdefinierten Assembly, die Sie in Ihrem Bericht verwenden möchten: Sie können entweder eine neue Instanz ihrer Klasse mithilfe von OnInit deklarieren und erstellen, oder Sie können eine öffentlich verfügbare Methode mithilfe von OnInit aufrufen.
Globale Objektsammlungen und Initialisierung
Mehrere Auflistungen stehen Ihnen zum Initialisieren ihrer benutzerdefinierten Klassenvariablen zur Verfügung. Sie können die Globals - und Benutzersammlungen verwenden. Die Parameters-, Fields - und ReportItems-Auflistungen stehen Ihnen am Punkt im Berichtslebenszyklus nicht zur Verfügung, wenn die OnInit-Methode aufgerufen wird. Um die freigegebenen Auflistungen, Globalen oder Benutzer zu verwenden, müssen Sie den Report-Objektverweis einschließen. Wenn Sie ihre benutzerdefinierte Klasse beispielsweise basierend auf der aktuellen Sprache des Benutzers initialisieren möchten, der auf den Bericht zugreift, sieht Das Code-Element möglicherweise wie folgt aus:
<Code>
Dim m_myClass As MyClass
Protected Overrides Sub OnInit()
m_myClass = new MyClass(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
Eine Möglichkeit zum Initialisieren der Eigenschafts- und Feldwerte einer Klasse, wie zuvor gezeigt, besteht darin, die Klasse zu deklarieren und eine neue Instanz davon zu erstellen, indem sie einen überschriebenen Konstruktor aufruft.
Eine weitere Möglichkeit zum Initialisieren der Eigenschafts- und Feldwerte der Klassen in ihren benutzerdefinierten Assemblys besteht darin, eine öffentlich verfügbare Methode aufzurufen, die Sie aus der OnInit-Methode definieren. Sie müssen zuerst einen Instanznamen für Ihre Klasse in der Berichtsdefinitionsdatei hinzufügen. Nachdem Sie den entsprechenden Assemblyverweis und den Entsprechenden Instanznamen hinzugefügt haben, können Sie die Initialisierungsmethode aufrufen, um Eigenschafts- und Feldwerte für Ihre Klasse zu initialisieren. Ihre OnInit-Methode sieht möglicherweise wie folgt aus:
<Code>
Protected Overrides Sub OnInit()
m_myClass.MyInitializationMethod(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
Weitere Informationen zum Hinzufügen eines Assemblyverweiss und eines Instanznamens für Ihre benutzerdefinierte Klasse finden Sie unter Hinzufügen eines Assemblyverweises zu einem Bericht (SSRS).
Weitere Informationen zu den globalen Objektsammlungen finden Sie unter Integrierten Auflistungen in Ausdrücken (Berichts-Generator und SSRS).For more information about the global object collections, see Built-in Collections in Expressions (Report Builder and SSRS).