Share via


Utilisation de références de code personnalisé dans des expressions (Générateur de rapports version 2.0)

Vous pouvez ajouter des références à du code personnalisé incorporé dans un rapport. L'incorporation de code convient dans le cas de constantes personnalisées, de fonctions complexes ou de fonctions utilisées plusieurs fois dans un même rapport.

Pour les calculs pour lesquels le temps est important qui sont évalués une fois au moment de l'exécution et qui doivent conserver la même valeur pendant le traitement du rapport, considérez s'il convient d'utiliser un rapport ou une variable de groupe. Pour plus d'informations, consultez Utilisation de références à des collections de variables de rapport et de groupe dans les expressions (Générateur de rapports version 2.0).

Le code personnalisé peut inclure de nouvelles constantes personnalisées, variables, fonctions ou sous-routines. Vous pouvez inclure des références en lecture seule à des collections intégrées, telles que la collection de paramètres. Cependant, les fonctions personnalisées ne peuvent pas recevoir des ensembles de valeurs de données de rapport : les agrégations personnalisées ne sont notamment pas prises en charge.

Code incorporé

Pour ajouter du code incorporé à un rapport, utilisez la page de codes de la boîte de dialogue Propriétés du rapport. Le bloc de code que vous créez peut contenir plusieurs méthodes. Les méthodes du code incorporé doivent être écrites en MicrosoftVisual Basic et doivent être basées sur des instances. Le processeur de rapports ajoute automatiquement des références pour les espaces de noms System.Convert et System.Math. Dans le Générateur de rapports version 2.0, les références à des références d'assembly supplémentaires ne sont pas prises en charge.

Les méthodes du code incorporé sont disponibles par l'intermédiaire d'un membre Code globalement défini. Pour y accéder, vous devez faire référence au membre Code et au nom de la méthode. L'exemple ci-dessous appelle la méthode ToUSD, qui convertit la valeur du champ StandardCost en une valeur exprimée en dollars :

=Code.ToUSD(Fields!StandardCost.Value)

Pour faire référence à des collections intégrées dans votre code personnalisé, incluez une référence à l'objet Report intégré :

=Report.Parameters!Param1.Value

Les exemples ci-dessous indiquent comment définir des variables et des constantes personnalisées.

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

Bien que les constantes personnalisées n'apparaissent pas dans la catégorie Constantes de la boîte de dialogue Expression (qui affiche uniquement les constantes intégrées), vous pouvez leur ajouter des références à partir de n'importe quelle expression, comme le montrent les exemples suivants. Dans une expression, une constante personnalisée est traitée comme une valeur de type Variant.

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

Pour plus d'informations sur les collections d'objets intégrées et leur initialisation, consultez Utilisation de collections globales dans les expressions.

Exemples de référencement de paramètres à partir de code personnalisé

Vous pouvez référencer la collection globale de paramètres via du code personnalisé dans un bloc de code de la définition de rapport ou dans un assembly personnalisé que vous fournissez. La collection de paramètres est en lecture seule et ne possède aucun itérateur public. Vous ne pouvez pas utiliser de construction Visual BasicFor Each pour parcourir la collection. Vous devez connaître le nom du paramètre défini dans la définition de rapport pour pouvoir ensuite le référencer dans votre code. Cependant, vous pouvez effectuer une itération dans toutes les valeurs d'un paramètre à valeurs multiples. Pour plus d'informations, consultez Utilisation de références de code personnalisé dans des expressions (Générateur de rapports version 2.0).

Le tableau suivant présente des exemples du référencement de la collection Parameters intégrée à partir du code personnalisé :

Description

Référence dans une expression

Définition de code personnalisé

Transmission de l'intégralité de la collection globale de paramètres au code personnalisé.

Cette fonction retourne la valeur d'un paramètre de rapport spécifique MyParameter.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

Transmission d'un seul paramètre au code personnalisé.

Cet exemple retourne la valeur du paramètre transmis. Si le paramètre est un paramètre à valeurs multiples, la chaîne retournée est une concaténation de toutes les valeurs.

=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

Assemblys personnalisés

Dans le Générateur de rapports version 2.0, les assemblys personnalisés ne sont pris en charge que sur le serveur de rapports. Pour plus d'informations sur l'accès à votre code après son installation sur le serveur de rapports, consultez « Accès aux assemblys personnalisés par le biais d'expressions » dans la documentation de Reporting Services dans la documentation en ligne de SQL Server.