SETPROPERTY

Cette fonction est utilisée dans le cadre d'une action pour enregistrer plusieurs propriétés dans un fichier XML. Lorsqu'elle n'est pas utilisée avec une action, SETPROPERTY ne peut pas modifier le XML - elle renvoie uniquement le fichier XML actuel. Par exemple, dans le cadre d'une action Définir les paramètres, cette formule écrit dans une variable appelée DemoXML :
=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, tel qu'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 à remplir 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, de 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.

Il est possible d'utiliser l'astérisque (*) comme caractère générique au début ou à la fin d'une chaîne, par exemple pour renvoyer des clés ou propriétés spécifiques. Les astérisques placés au sein d'une chaîne ne sont pas considérés comme des caractères génériques. Une recherche contenant un caractère générique renvoie uniquement la première occurrence de la clé ou de la propriété.
Remarque

L'ordre des correspondances pour les clés ou propriétés peut être aléatoire.

Ces exemples sont basés sur l'application Exemples et 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

  1. =SETPROPERTY(globalvariables.gv_property,"[Product]","Unique",
    "[Product].[All Tires].[Car Tires All Season]")
  2. =SETPROPERTY(globalvariables.gv_property,reportobjects.Hyperblock4.Text,
    "Unique","[Product].[All Tires].[Car Tires All Season]")
  3. =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

S'il est possible de stocker plusieurs clés dans une variable, il n'est pas possible de le faire avec une seule fonction SETPROPERTY. Pour enregistrer plusieurs clés, vous devez utiliser un hyperblock ou plusieurs fonctions SETPROPERTY imbriquées. Par exemple :
=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","")

Supprimer des propriétés (par exemple, suppression des propriétés 1 et 3 d'une liste de propriétés) :
=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é :

Cette variable comporte deux clés, chacune avec une valeur différente :
<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é :

Cette variable comporte deux clés, chacune avec deux propriétés et valeurs :
<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")