Condividi tramite


Utilizzo di riferimenti a codice personalizzato nelle espressioni (Generatore report 2.0)

È possibile aggiungere riferimenti al codice personalizzato incorporato in un report. Utilizzare codice incorporato per costanti personalizzate, funzioni complesse o funzioni utilizzate più volte in un singolo report.

Per i calcoli che dipendono dal tempo che vengono valutati una volta sola in fase di esecuzione e il cui valore si desidera rimanga inalterato durante tutta l'elaborazione del report, considerare la possibilità di utilizzare una variabile di report o una variabile di gruppo. Per ulteriori informazioni, vedere Utilizzo di riferimenti a raccolte di variabili di report e di gruppo nelle espressioni (Generatore report 2.0).

Il codice personalizzato può includere nuove costanti, variabili, funzioni o subroutine personalizzate. È possibile includere riferimenti di sola lettura a raccolte predefinite come ad esempio Parameters. Non è tuttavia possibile passare alle funzioni personalizzate set di valori di dati. In particolare, non sono supportate le aggregazioni personalizzate.

Codice incorporato

Per aggiungere codice incorporato a un report, utilizzare la pagina Codice della finestra di dialogo Proprietà report. Il blocco di codice creato può contenere più metodi. È necessario che i metodi del codice incorporato siano scritti in MicrosoftVisual Basic e siano basati su istanze. Tramite il componente Elaborazione report, vengono aggiunti automaticamente i riferimenti per gli spazi dei nomi System.Convert e System.Math. In Generatore report 2.0 non sono supportati riferimenti ad assembly aggiuntivi.

I metodi nel codice incorporato sono disponibili tramite un membro Code definito a livello globale. Per accedere ai metodi, fare riferimento al membro Code e al nome del metodo. L'esempio seguente consente di chiamare il metodo ToUSD per la conversione del valore del campo StandardCost in un valore in dollari:

=Code.ToUSD(Fields!StandardCost.Value)

Per fare riferimento a raccolte predefinite nel codice personalizzato, includere un riferimento all'oggetto Report predefinito:

=Report.Parameters!Param1.Value

Negli esempi seguenti viene illustrato come definire alcune variabili e costanti personalizzate.

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

Sebbene le variabili e le costanti personalizzate non siano presenti nella categoria Costanti nella finestra di dialogo Espressione, in cui vengono visualizzate solo costanti predefinite, è possibile farvi riferimento da qualsiasi espressione, come illustrato negli esempi seguenti. In un'espressione, una costante personalizzata viene considerata come un elemento Variant.

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

Per ulteriori informazioni sulla creazione di raccolte di oggetti incorporati e sulla relativa inizializzazione, vedere Utilizzo di raccolte globali nelle espressioni.

Esempi di aggiunta di riferimenti a parametri da codice personalizzato

È possibile fare riferimento alla raccolta globale di parametri tramite codice personalizzato in un blocco di codice della definizione del report oppure in un assembly personalizzato specificato dall'utente. La raccolta di parametri è di sola lettura e non include iteratori pubblici. Non è possibile utilizzare un costrutto For Each di Visual Basic per esaminare la raccolta parametro per parametro. È necessario conoscere il nome del parametro definito nella definizione del report per potervi fare riferimento nel codice personalizzato. È tuttavia possibile scorrere tutti i valori di un parametro multivalore. Per ulteriori informazioni, vedere Utilizzo di riferimenti a codice personalizzato nelle espressioni (Generatore report 2.0).

Nella tabella seguente sono inclusi esempi di riferimenti alla raccolta predefinita Parameters da codice personalizzato:

Descrizione

Riferimento nell'espressione

Definizione del codice personalizzato

Passaggio di un'intera raccolta globale di parametri al codice personalizzato.

Questa funzione restituisce il valore di un parametro di report MyParameter specifico.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

Passaggio di un singolo parametro al codice personalizzato.

In questo esempio viene restituito il valore del parametro passato. Se il parametro è multivalore, la stringa restituita sarà costituita da una concatenazione di tutti i valori.

=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

Assembly personalizzati

In Generatore report 2.0 sono supportati assembly personalizzati solo nel server di report. Per ulteriori informazioni sull'accesso al codice dopo la relativa installazione nel server di report, vedere "Accesso agli assembly personalizzati tramite espressioni" nella documentazione relativa a Reporting Services all'interno della documentazione online di SQL Server.