SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Cependant, lorsqu'elle est insérée dans une cellule, la même formule renvoie la valeur actuelle de la variable DemoXML :<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>
Pour modifier la variable, il est donc nécessaire d'utiliser une action qui affecte à nouveau la sortie renvoyée par la fonction SETPROPERTY à la variable.
Par exemple, sur un objet ListView, comme une zone de liste déroulante, définir une action Définir les paramètres à déclencher lorsque la sélection dans la zone de liste déroulante change. Dans la section Paramètres de la boîte de dialogue Création d'une action, sélectionner la variable à renseigner comme Nom, puis définir une fonction SETPROPERTY comme Valeur. En mode Affichage, le paramètre est renseigné au déclenchement de l'action.
Il est possible d'ajouter, d modifier ou de supprimer une propriété.
Vous pouvez l'utiliser pour définir une seule propriété et sa valeur, ou plusieurs propriétés et leurs valeurs respectives. L'utiliser, par exemple, pour alimenter une variable XML avec les valeurs des dimensions de tranche dans un rapport. Elle permet également de supprimer des propriétés et valeurs d'une variable.
La fonction SETPROPERTY peut être utilisée pour référencer des éléments spécifiques ou des cellules d'hyperblocks.
Pour renvoyer les valeurs des propriétés d'une variable, utiliser la fonction GETPROPERTY.
L'ordre des correspondances pour les clés ou propriétés peut être aléatoire.
Ces exemples utilisent les propriétés Unique et Caption pour stocker le nom unique et la légende d'un élément :
Syntaxe
SETPROPERTY("XML_properties","key","property","value")
Le premier argument de la formule peut être une variable ou une chaîne.
Le caractère générique * peut être utilisé avec les arguments clé et propriété pour écraser ou supprimer plusieurs valeurs simultanément.
Exemples de propriétés et de valeurs uniques
-
=SETPROPERTY(globalvariables.gv_property,"[Product]","Unique", "[Product].[All Tires].[Car Tires All Season]")
-
=SETPROPERTY(globalvariables.gv_property,reportobjects.Hyperblock4.Text, "Unique","[Product].[All Tires].[Car Tires All Season]")
-
=SETPROPERTY(globalvariables.gv_property,"reportvariables.rv_dimension.text","Unique", "reportvariables.rv_element.text")
Dans les trois exemples, la dimension Produit est la clé et le nom de propriété est « Unique ».
Dans le premier exemple, la dimension Produit et le nom unique d'un produit sont définis. Dans le deuxième exemple, le nom d'un hyperblock contenant la dimension Produit est défini. Le troisième exemple référence des variables de rapport qui comportent un nom de dimension et un nom unique d'élément.
Dans la définition XML, la clé forme le nom de la ligne.
Définition de plusieurs propriétés et de leurs valeurs
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})
Exemple
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
Tires].[Car Tires all Season]","Caption","Car Tires all Season")
Clés multiples
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value")
Chaque clé forme une ligne dans la définition XML de la variable.
Il est également possible d'utiliser plusieurs formules SETPROPERTY dans plusieurs actions pour alimenter une variable XML unique, par exemple pour stocker les dimensions de filtre dans un rapport dynamique.
Suppression d'une propriété
SETPROPERTY("XML_properties", "key", "property","")
Exemple
La fonction suivante a pour effet de supprimer la propriété Caption d'une variable dans laquelle sont stockés le nom unique et la légende d'un élément de la dimension Produit.
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")
Suppression de plusieurs propriétés
=SETPROPERTY("XML_properties","key","property","","property,"")
Suppression de toutes les propriétés d'une ligne
=SETPROPERTY("XML_propertes","key")
Utilisation de la fonction SETPROPERTY dans les hyperblocks
La fonction SETPROPERTY peut référencer des cellules d'hyperblock. Lorsqu'elle est utilisée avec les hyperblocks, il est possible de définir les combinaisons suivantes de clés, de propriétés et de valeurs dans une variable XML :
- Une clé avec plusieurs paires propriété et valeur
- Plusieurs clés avec une paire propriété et valeur
- Plusieurs clés avec plusieurs paires propriété et valeur
- Plusieurs clés avec plusieurs propriétés et une seule valeur
Exemples
Ces exemples utilisent un hyperblock vertical dans les cellules B2, B3 et B4 et une variable globale appelée gv_SetProperty. La cellule B2 est la colonne des clés, B3 la colonne des propriétés et B4 les valeurs correspondantes.
Une clé avec plusieurs paires propriété et valeur :
=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
Plusieurs clés avec une paire propriété et valeur :
=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
Plusieurs clés avec plusieurs paires propriété et valeur :
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
Plusieurs clés avec plusieurs propriétés et une seule valeur :
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
Modification et suppression de propriétés et de valeurs
Lorsque la fonction SETPROPERTY est utilisée pour référencer des cellules d'hyperblock, les actions suivantes sont possibles :
- Supprimer une ligne dans la définition XML
- Supprimer une valeur
- Suppression de plusieurs propriétés
- Mettre à jour ou définir une valeur
- Mettre à jour ou définir des valeurs
Exemples
Supprimer une ligne dans la définition XML :
=SETPROPERTY(globalvariables.gv_setproperty,"Key")
Supprimer une valeur :
=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
=SETPROPERTY("XML_properties","key","property1","","property3","")
Définir une valeur :
=SETPROPERTY("XML_properties","key","property","value")
Définir plusieurs valeurs :
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")
Modifier plusieurs valeurs au moyen du caractère générique associé à la clé :
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Pour transformer les valeurs 1 et 2 en NouvelleValeur :
=SETPROPERTY("XML_properties"," key*
","property","new_value")
Le caractère générique identifie les deux clés et la formule modifie leurs deux valeurs.
Modifier plusieurs valeurs au moyen du caractère générique associé à la propriété :
<Table><Row name="Key1"><Property name="property1" value ="Value1"/>
<Property name="property2" value ="Value11"/></Row>
<Row name="Key2"><Property name="property1" value ="Value2" />
<Property name="property2" value ="Value21"/></Row></Table>
Pour modifier la valeur des propriétés 1 et 2 de la clé 1 :
=SETPROPERTY("XML_properties","key","property*","new_value")
Le caractère générique identifie les propriétés 1 et 2 de la clé 1.
Pour modifier les propriétés des deux clés, associer un caractère générique à la clé et à la propriété :
=SETPROPERTY("XML_properties"
,"key*","property*","new_value")