Partager via


Ajout de code personnalisé à un rapport (Concepteur de rapports Visual Studio)

Vous pouvez ajouter des fonctions personnalisées à un rapport et ajouter des références à des fonctions dans des assemblys externes. Lors de la compilation du projet, les assemblys suivants sont référencés automatiquement : Microsoft.VisualBasic, AllMembers.T:System.Convert et AllMembers.T:System.Math. D'autres assemblys peuvent être référencés à l'aide de la boîte de dialogue Propriétés du rapport ou de l'élément CodeModules dans la définition de rapport. La boîte de dialogue Propriétés du rapport peut également être utilisée pour définir des fonctions personnalisées. Pour définir des fonctions personnalisées dans la définition de rapport, utilisez l'élément Code. Notez qu'il est impossible de passer des ensembles de valeurs de données à des fonctions (les agrégations personnalisées ne sont notamment pas prises en charge).

Vous pouvez écrire votre propre code sur mesure afin de l'utiliser dans les expressions d'un rapport. Pour cela, deux solutions s'offrent à vous : vous pouvez incorporer le code dans un rapport ou faire référence à des méthodes présentes dans un assembly personnalisé. L'incorporation de code convient dans le cas de fonctions complexes ou de fonctions utilisées plusieurs fois dans un même rapport. Utilisez des assemblys personnalisés si vous voulez centraliser du code en un emplacement unique et le partager entre plusieurs rapports.

Code incorporé

Pour utiliser du code dans un rapport, vous devez ajouter un bloc de code dans le rapport. Ce bloc de code peut contenir plusieurs méthodes. Les méthodes du code incorporé doivent être écrites en Microsoft Visual Basic et doivent être basées sur des instances.

Pour ajouter du code à un rapport

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport.

    NoteRemarque

    Si le menu Rapport n'est pas visible, cliquez dans la zone de conception du rapport.

  2. Sous l'onglet Code, tapez le code voulu dans Code personnalisé.

Les méthodes du code incorporé sont disponibles par l'intermédiaire d'un membre Code globalement défini. Pour y accéder, il faut faire référence au membre Code et au nom de la méthode voulue. L'exemple de code 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)

Assemblys personnalisés

Pour utiliser des assemblys personnalisés dans un rapport, vous devez d'abord créer l'assembly, le rendre accessible au projet, ajouter une référence à l'assembly dans le rapport, puis utiliser une expression qui fait référence aux méthodes de cet assembly. Lorsque le rapport est déployé sur le serveur de rapports, vous devez également déployer l'assembly personnalisé sur le serveur de rapports.

Pour ajouter une référence d'assembly à un rapport

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport.

    NoteRemarque

    Si le menu Rapport n'est pas visible, cliquez dans la zone de conception du rapport.

  2. Dans l'onglet Références, procédez comme suit :

    • Dans Références, cliquez sur le bouton Ajouter (...) et sélectionnez l'assembly ou recherchez-le dans la boîte de dialogue Ajouter une référence.

    • Dans Classes, tapez le nom de la classe et fournissez le nom de l'instance à utiliser dans le rapport.

      NoteRemarque

      Spécifiez une classe et un nom d'instance uniquement pour les membres basés sur une instance. Ne spécifiez pas de membres statiques dans la liste Classes.

Pour faire référence à du code personnalisé dans une expression, vous devez appeler le membre d'une classe au sein de l'assembly. La procédure pour ce faire dépend du type de méthode, à savoir statique ou basée sur une instance. Les méthodes statiques d'un assembly personnalisé sont disponibles de façon globale dans le rapport. Elles sont accessibles dans les expressions au moyen de l'espace de noms, de la classe et du nom de la méthode. L'exemple de code ci-dessous appelle la méthode ToGBP, qui convertit la valeur du champ StandardCost en une valeur exprimée en livres sterling :

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

Les méthodes basées sur des instances sont disponibles par l'intermédiaire d'un membre Code globalement défini. Pour y accéder, il faut faire référence au membre Code et ensuite au nom de l'instance et de la méthode. L'exemple de code ci-dessous appelle la méthode ToEUR, qui convertit la valeur du champ StandardCost en une valeur exprimée en euros :

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

NoteRemarque

Dans le Générateur de rapports, un assembly personnalisé est chargé une fois et il n'est pas déchargé tant que vous ne fermez pas Visual Studio. Si vous affichez un aperçu d'un rapport, modifiez un assembly personnalisé utilisé dans ce rapport, puis affichez à nouveau l'aperçu, vos modifications n'apparaissent pas dans ce deuxième aperçu. Pour recharger l'assembly, fermez et rouvrez Visual Studio, puis affichez l'aperçu du rapport.

Pour en savoir plus sur les assemblys personnalisés, vous pouvez rechercher « Utilisation d'assemblys personnalisés avec des rapports » dans la documentation en ligne de SQL Server 2005. La documentation en ligne est disponible dans la plupart des éditions de Visual Studio 2008. Vous pouvez également la consulter sur MSDN à l'adresse www.microsoft.com. Les informations sur les assemblys personnalisés dans la documentation en ligne s'applique aux rapports que vous déployez avec les contrôles ReportViewer.

Voir aussi

Référence

Boîte dialogue Modifier les références (Concepteur de rapports Visual Studio)
Boîte dialogue Modifier les classes (Concepteur de rapports Visual Studio)

Concepts

Utilisation d'expressions dans un rapport (Concepteur de rapports Visual Studio)