Udostępnij za pośrednictwem


Using Custom Code References in Expressions (Reporting Services)

Można dodać odniesienia do kodu niestandardowego osadzonych w raporcie lub niestandardowe zestawy, które budowanie wdrożyć klient raport i serwer raportów.Kodu osadzonego można używać w celu tworzenia stałych niestandardowych, funkcji złożonych lub funkcji wielokrotnie używanych w jednym raporcie.Za pomocą zestawów zawierających kod niestandardowy do utrzymywania kodu w jednym miejscu i udostępnić go przez wiele raportów.

W przypadku obliczeń zależnych od czasu, które są wykonywanie raz w czasie wykonywania i których wartość ma być niezmienna w trakcie całego przetwarzania raportu, warto rozważyć użycie zmiennej raportu lub zmiennej grupy.Aby uzyskać więcej informacji zobacz Using Report and Group Variables Collection References in Expressions (Reporting Services).

Kod niestandardowy może zawierać nowe stałe niestandardowe, zmienne, funkcje lub podprocedury.Można używać odwołań tylko do odczytu do kolekcji wbudowanych, takich jak kolekcja Parameters.Nie można jednak przekazywać zestawów wartości danych raportu do funkcji niestandardowych; w szczególności nie są obsługiwane niestandardowe wartości zagregowane.

Kod osadzony

Aby dodać kodu osadzonego do raportu, należy użyć stronie kodowej Właściwości raportu -okno dialogowe.Tworzony blok kodu może zawierać wiele metod.Methods in embedded code must be written in Microsoft Visual Basic and must be instance-based.Procesor raportu powoduje automatyczne dodawanie odwołania do System.Convert i System.Math obszary nazw. Użycie Odwołania stronaWłaściwości raportu okno dialogowe, aby dodać odwołanie do wirtualny plik dziennika dodatkowe.Aby uzyskać więcej informacji zobacz How to: Add Code to a Report (Reporting Services) i How to: Add an Assembly Reference to a Report (Reporting Services).

Metody w kodzie osadzonym są dostępne za pośrednictwem zdefiniowanych globalnie Code element członkowski. Odwołując się do nich dostęp Code element członkowski członkowski i jej nazwę. W poniższym przykładzie wywoła metoda ToUSD, które konwertuje wartość w StandardCost pole wartość dolara:

=Code.ToUSD(Fields!StandardCost.Value)

Aby odwołać się wbudowanych kolekcji w kodzie niestandardowym, należy dołączyć odwołanie do wbudowane Report obiekt:

=Report.Parameters!Param1.Value

Następujące przykłady przedstawiają sposób definiowania niektóre niestandardowe stałych i zmiennych.

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

Mimo że stałych niestandardowe nie pojawiają się w Stałe kategoriiWyrażenie okno dialogowe (która wyświetla tylko wbudowane stałe), można dodać odwołania do nich z dowolnym wyrażeniem, jak pokazano w poniższych przykładach.W wyrażeniu, niestandardowe stała jest traktowany jako Variant.

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

Poniższy przykład zawiera kod odwołania i implementację kodu funkcja FixSpellingktóry zastępuje tekst "Bicycle"dla wszystkich wystąpień tekstu "Bike" w SubCategory pole.

=Code.FixSpelling(Fields!SubCategory.Value)

Poniższy kod osadzone w blok kodu definicja raportu, pokazuje implementację FixSpelling Metoda. This example shows you how to use a fully qualified reference to the Microsoft .NET FrameworkStringBuilder class.

Public Function FixSpelling(ByVal s As String) As String
   Dim strBuilder As New System.Text.StringBuilder(s)
   If s.Contains("Bike") Then
      strBuilder.Replace("Bike", "Bicycle")
      Return strBuilder.ToString()
      Else : Return s
   End If
End Function

Aby uzyskać więcej informacji na temat kolekcjach obiektów wbudowanych i inicjalizacji zobacz Za pomocą kolekcje globalnego w wyrażeniach and Inicjowanie własny wirtualny plik dziennika obiektów.

Przykłady odwołań do parametrów z poziomu kodu niestandardowego

Do globalnej kolekcji parametrów można odwoływać się za pomocą kodu niestandardowego w bloku kodu definicji raportu lub w zestawie niestandardowym dostarczonym przez użytkownika.Kolekcja parametrów jest przeznaczona tylko do odczytu i nie zawiera iteratorów publicznych.You cannot use a Visual BasicFor Each construct to step through the collection.Należy znać nazwę parametru zdefiniowanego w definicji raportu, aby można było odwołać się do niego w kodzie.Można jednak przejść przez wszystkie wartości parametru wielowartościowego.Aby uzyskać więcej informacji zobacz Using Custom Code References in Expressions (Reporting Services).

Następująca tabela zawiera przykłady odwoływania się do wbudowanych kolekcja Parameters z niestandardowym kodem:

Description

Odwołanie w wyrażeniu

Definicja kodu niestandardowego

Przekazanie całej globalnej kolekcji parametrów do kodu niestandardowego.

Ta funkcja zwraca wartość parametru określonego raportu MyParameter.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

Przekazanie pojedynczego parametru do kodu niestandardowego.

W tym przykładzie zwraca wartość parametru przekazany.Jeśli parametr ma parametr wielowartościowym, zwracanego ciąg jest łączenie wszystkich wartości.

=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

Zestawy niestandardowe

Do używania niestandardowych zestawów w raporcie, użytkownik musi najpierw utworzyć wirtualny plik dziennika, był dostępny dla Projektant raportów, Dodaj odwołanie do wirtualny plik dziennika w raporcie i użyć wyrażenie w raporcie do odwoływania się do metody, zawarte w tym zestawie.Po wdrożeniu raportu serwer raportów należy również wdrożyć niestandardowy wirtualny plik dziennika serwer raportów.

Aby uzyskać informacje dotyczące tworzenia niestandardowego wirtualny plik dziennika i udostępnienie go do Reporting Services, zobacz Niestandardowe zestawy przy użyciu raportów. Aby uzyskać instrukcje dotyczące sposobu dodawania odniesienia do raportu zobacz How to: Add an Assembly Reference to a Report (Reporting Services).

Aby odwołać się do kodu niestandardowego w wyrażeniu, należy wywołać element członkowski członkowski klasy w zestawie.W jaki sposób to zrobić, zależy od tego, czy metoda jest statyczna lub wystąpienie.Metody statyczne w obrębie wirtualny plik dziennika niestandardowe są dostępne globalnie w raporcie.metoda statyczne w wyrażeniach można uzyskać dostęp przez określenie obszaru nazw, klasy i nazwy metoda.W poniższym przykładzie wywoła metoda ToGBP, która konwertuje wartości StandardCost wartość pomiędzy dolara funta szterlinga:

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

Oparte na wystąpienie metody są dostępne za pośrednictwem zdefiniowanych globalnie Code element członkowski. Odwołując się do nich dostęp Code element członkowski, po których następuje nazwa wystąpienie oraz metoda. W poniższym przykładzie wywołuje metoda instancji ToEUR, która konwertuje wartości StandardCost z dolara euro:

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

Uwaga

W Projektant raportów, niestandardowy wirtualny plik dziennika jest ładowany raz i nie jest zwalniany, dopóki nie zamkniesz Visual Studio. Jeśli wyświetlanie podglądu raportu, wprowadź zmiany do niestandardowego wirtualny plik dziennika używany w raporcie i ponownie wyświetl podgląd raportu zmiany nie pojawi się w drugim oknie podglądu.Aby ponownie załadować wirtualny plik dziennika, należy zamknąć i ponownie otworzyć Visual Studio a następnie wyświetlić podgląd raportu.

Aby uzyskać więcej informacji na temat uzyskiwania dostępu do kodu zobacz Uzyskiwanie dostępu do zestawów niestandardowych za pomocą wyrażenia.