Používání vlastních odkazů na kód ve výrazu (Tvůrce sestav 3.0)

SQL Server 2008 R2

Do vlastního kódu vloženého do sestavy lze přidávat odkazy. Vložený kód můžete použít pro vlastní konstanty, komplexní funkce nebo funkce, které jsou v jedné sestavě použity vícekrát.

V případě časově náročných výpočtů, které jsou vyhodnoceny jednou při spuštění a pro které chcete zachovat stejnou hodnotu v rámci zpracování sestavy, zvažte použití proměnné sestavy nebo skupiny. Další informace naleznete v tématu Použití odkazů na kolekce proměnných skupiny a sestavy ve výrazech (Tvůrce sestav 3.0).

Vlastní kód může zahrnovat nové vlastní konstanty, proměnné, funkce nebo podrutiny. Můžete zahrnout odkazy jen ke čtení do předdefinovaných kolekcí, jako například do kolekce Parametry. Nelze však předat sady hodnot dat sestavy vlastním funkcím; obzvláště nejsou podporovány vlastních agregací.

Chcete-li přidat do sestavy vložený kód, použijte stránku Kód v dialogovém okně Vlastnosti sestavy. Vytvořený blok kódu může obsahovat více metod. Metody vložené do kódu musí být napsány v jazyce MicrosoftVisual Basic a založeny na instancích. Procesor sestavy automaticky přidá odkazy pro obory názvů System.Convert a System.Math. V Tvůrci sestav nejsou odkazy na další odkazy sestavení podporovány.

Metody ve vloženém kódu jsou k dispozici prostřednictvím globálně definovaného člena Code. Přístup k nim lze získat vytvořením odkazu na člena Code a název metody. V následujícím příkladu je volána metoda ToUSD, která umožňuje převést hodnotu pole StandardCost na hodnotu v dolarech:

=Code.ToUSD(Fields!StandardCost.Value)

Chcete-li vytvořit odkaz na předdefinované kolekce ve vlastním kódu, zadejte odkaz na předdefinovaný objekt Report:

=Report.Parameters!Param1.Value

V následujícím příkladu se seznámíte se způsobem definování některých vlastních konstant a proměnných.

Public Const MyNote = "Authored by Bob"
Public Const NCopies As Int32 = 2
Public Dim  MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456

Přestože se vlastní konstanty nezobrazují v kategorii Konstanty v dialogovém okně Výraz (najdete zde pouze předdefinované konstanty), můžete na ně vložit odkazy z libovolného výrazu, jak ukazují následující příklady. S vlastní konstantou je ve výrazu nakládáno jako s hodnotou Variant.

=Code.MyNote
=Code.NCopies
=Code.MyVersion
=Code.MyDoubleVersion

Více informací o předdefinovaných kolekcích objektů a inicializaci naleznete v tématu Použití globálních kolekcí ve výrazech.

Příklady vytvoření odkazů na parametry z vlastního kódu

Na globální kolekci parametrů můžete odkazovat přes vlastní kód v bloku kódu definice sestavy nebo ve vlastním sestavení, které poskytnete. Kolekce parametrů je jen ke čtení a nemá žádné veřejné iterátory. K procházení kolekce nelze používat konstruktor Visual BasicFor Each. Abyste mohli na parametr v kódu odkazovat, musíte znát název parametru definovaný v definici sestavy. Můžete však iterovat přes všechny hodnoty parametru s více hodnotami. Další informace naleznete v tématu Používání vlastních odkazů na kód ve výrazu (Tvůrce sestav 3.0).

Následující tabulka obsahuje příklad odkazů na předdefinovanou kolekci Parameters z vlastního kódu:

Popis

Odkaz ve výrazu

Definice vlastního kódu

Předání celé globální kolekce parametrů do vlastního kódu.

Tato funkce vrátí hodnotu určitého parametru sestavy MyParameter.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

Předání jednoho parametru do vlastního kódu.

Tento příklad vrátí hodnotu předaného parametru. Pokud se jedná o parametr s více hodnotami, vrácený řetězec bude představovat zřetězení všech hodnot.

=Code.ShowParametersValues(Parameters!DayOfTheWeek)

Public Function ShowParameterValues(ByVal parameter as Parameter)
 as String
   Dim s as String 
   If parameter.IsMultiValue then
      s = "Multivalue: " 
      For i as integer = 0 to parameter.Count-1
         s = s + CStr(parameter.Value(i)) + " " 
      Next
   Else
      s = "Single value: " + CStr(parameter.Value)
   End If
   Return s
End Function

V Tvůrci sestav jsou vlastní sestavení podporována jen na serveru sestav. Více informací o přístupu ke kódu po jeho instalaci na server sestav naleznete v části Accessing Custom Assemblies Through Expressions (Přístup k vlastnímu sestavení prostřednictvím výrazů) v dokumentaci služby Vytváření sestav na serveru SQL Server – Knihy online.

Obsah vytvořený komunitou

Přidat
Zobrazit: