Inicializace objektů vlastního assembleru

V některých případech možná budete muset inicializovat hodnoty vlastností a polí ve svých vlastních assemblerových třídách při jejich instancování. Pravděpodobně budete muset inicializovat své vlastní třídy s hodnotami dostupnými z globálních objektových kolekcí reportu. To uděláte přepsáním metody OnInitpro kód objektu reportu. Pro přístup k OnInit použijte prvek Code v definici reportu. Existují dvě techniky pro inicializaci hodnot vlastností nebo polí tříd v rámci zakázkové sestavy, kterou plánujete použít ve svém reportu: Můžete buď deklarovat a vytvořit novou instanci své třídy pomocí OnInit, nebo můžete volat veřejně dostupnou metodu pomocí OnInit.

Globální objektové kolekce a inicializace

K dispozici je několik kolekcí pro inicializaci vašich vlastních třídních proměnných. Můžete použít kolekce Globals a User . Kolekce Parametry, Pole a Položky zpráv nejsou k dispozici v okamžiku životního cyklu reportu, kdy je vyvolána metoda OnInit . Pro použití sdílených kolekcí, globálních nebo uživatelských domén, musíte zahrnout referenci na objekt Report . Například pro inicializaci vlastní třídy na základě aktuálního jazyka uživatele, který přistupuje k reportu , může váš kódový prvek vypadat takto:

Dim m_myClass As MyClass  

Protected Overrides Sub OnInit()  
   m_myClass = new MyClass(Report.User!Language, _  
      Report.Globals!ExecutionTime)  
End Sub  

Jedním ze způsobů, jak inicializovat vlastnosti a hodnoty polí třídy, jak bylo uvedeno dříve, je deklarovat svou třídu a vytvořit její novou instanci voláním přepsaného konstruktoru.

Další způsob, jak inicializovat hodnoty vlastností a polí tříd ve vašich vlastních assemblech, je zavolat veřejně dostupnou metodu, kterou definujete z metody OnInit . Nejprve musíte přidat název instance pro vaši třídu v souboru s definicí reportu. Jakmile přidáte příslušnou referenci assembleru a název instance, můžete zavolat svou inicializační metodu pro inicializaci vlastností a polí pro vaši třídu. Vaše metoda OnInit může vypadat takto:

Protected Overrides Sub OnInit()  
   m_myClass.MyInitializationMethod(Report.User!Language, _  
      Report.Globals!ExecutionTime)  
End Sub  

Pro více informací o přidání reference assembleru a názvu instance pro vaši vlastní třídu viz Přidat assemblerovou referenci do reportu (SSRS).

Pro více informací o globálních objektových kolekcích viz Built-in Collections in Expressions (Report Builder a SSRS).