Utilisation de formules et d'une variable XML pour contrôler plusieurs objets
Cet exemple montre comment utiliser l'option Formule dans l'onglet Disponibilité des objets. Ici, des objets de zone de texte sont utilisés, mais il est possible d'utiliser des objets image à la place.
Dans cet exemple, une zone de texte différente s'affiche selon que l'utilisateur sélectionne Afrique ou Europe dans une zone de liste déroulante. Une action dans la zone de liste déroulante utilise une formule SETPROPERTY pour renseigner une variable XML. Dans la variable, la clé est Visibilité
, le pays sélectionné est une propriété, et TRUE
est la valeur affectée à la propriété.
Pour empêcher que les zones de texte restent visibles lorsqu'un autre pays que Europe ou Afrique est sélectionné, la formule définit Visibilité
sur FALSE
pour tous les pays.
Une formule GETPROPERTY sous l'onglet Disponibilité de chaque zone de texte renvoie la clé et la propriété de la variable. Sur une zone, la formule extrait la visibilité pour Europe et, sur l'autre, la visibilité pour Afrique.
Une technique alternative consiste à masquer ou à afficher les lignes contenant les zones de texte.
Cet exemple utilise des dimensions du cube Analysis.
- Créer une variable de rapport et la nommer rv_VisibilityXML.
- Insérer une zone de liste déroulante et la lier à la dimension Région. Nommer la zone de liste déroulante Région.
- Ouvrir les propriétés de la zone de liste déroulante et sélectionner Si la sélection change, exécuter l'action dans Général.
-
Créer une action Définir les paramètres avec rv_VisibilityXML comme paramètre. Spécifier la formule suivante comme valeur du paramètre :
=SETPROPERTY(SETPROPERTY(ReportVariables.rv_VisibilityXML.Text, "visibility","*" ,"false"), "visibility",ReportObjects.Region.Alias,"TRUE")
- Ajouter deux zones de texte au rapport et ajouter du texte. Par exemple, des faits clés concernant l'Afrique et des faits clés sur l'Europe.
-
Cliquer avec le bouton droit sur la zone de texte Afrique et sélectionner Format de l'objet de texte. Saisir la formule suivante dans l'onglet Disponibilité :
=GetProperty(ReportVariables.rv_VisibilityXML.Text,"visibility","Africa")
- Spécifier la même formule pour la zone de texte Europe, en remplaçant "Afrique" par "Europe".