SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Tuttavia, quando viene inserita in una cella, la stessa formula restituisce il valore corrente della variabile DemoXML:<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>
Pertanto, per modificare la variabile, è necessario utilizzare un'azione che consenta di riassegnare alla variabile l'output restituito dalla funzione SETPROPERTY.
In un oggetto vista elenco, ad esempio in una casella combinata, definire un'azione Imposta parametri da attivare al variare della selezione nella casella combinata. Nella sezione Parametri della finestra di dialogo Crea azione selezionare la variabile da compilare come Nome e definire una funzione SETPROPERTY come Valore. In modalità di visualizzazione il parametro viene compilato quando viene attivata l'azione.
È possibile aggiungere, modificare o eliminare qualsiasi proprietà.
È possibile utilizzare la funzione per impostare una singola proprietà e un valore oppure più proprietà, ciascuna con un valore. Ad esempio, per popolare una variabile XML con i valori delle dimensioni sezione in un report. È inoltre possibile utilizzare la funzione per eliminare proprietà e valori da una variabile.
SETPROPERTY può essere utilizzata per fare riferimento a elementi specifici o a celle di iperblocco.
Per restituire valori dalle proprietà di una variabile, utilizzare GETPROPERTY.
non può essere garantito l'ordine in base al quale viene stabilita la corrispondenza di chiavi o proprietà.
Questi esempi utilizzano le proprietà Nome elemento univoco e Didascalia per memorizzare il nome univoco e la didascalia di un elemento:
Sintassi
SETPROPERTY("XML_properties","key","property","value")
Il primo argomento della formula può essere una variabile oppure una stringa.
È possibile utilizzare il carattere jolly * con la chiave e gli argomenti della proprietà per sovrascrivere o eliminare più valori contemporaneamente.
Esempi di proprietà e valori singoli
-
=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")
In tutti e tre gli esempi la dimensione Product è la chiave e Unique è il nome della proprietà.
Nel primo esempio vengono specificati la dimensione Product e il nome univoco di un prodotto. Nel secondo esempio viene specificato il nome di un iperblocco contenente la dimensione "Product". Il terzo esempio fa riferimento alle variabili di report che contengono il nome di una dimensione e il nome univoco di un elemento.
Nella definizione XML la chiave costituisce il nome della riga.
Impostazione di più proprietà e valori
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})
Esempio
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
Tires].[Car Tires all Season]","Caption","Car Tires all Season")
Più chiavi
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value")
Ogni chiave costituisce una riga nella definizione XML della variabile.
In alternativa, utilizzare più formule SETPROPERTY in più azioni per compilare una singola variabile XML, ad esempio per memorizzare le dimensioni filtro in un report dinamico.
Eliminazione di una singola proprietà
SETPROPERTY("XML_properties", "key", "property","")
Esempio
Con questa formula è possibile eliminare la proprietà Caption da una variabile contenente il nome univoco e la didascalia di un elemento della dimensione Product.
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")
Eliminazione di più proprietà
=SETPROPERTY("XML_properties","key","property","","property,"")
Eliminazione di tutte le proprietà di una riga
=SETPROPERTY("XML_propertes","key")
SETPROPERTY negli iperblocchi
La funzione SETPROPERTY può fare riferimento a celle di iperblocco. Quando viene utilizzata con gli iperblocchi, è possibile definire le seguenti combinazioni di chiavi, proprietà e valori in una variabile XML:
- Una chiave con più coppie proprietà e valori
- Più chiavi con una coppia proprietà e valori
- Più chiavi con più coppie proprietà e valori
- Più chiavi con più proprietà e un valore
Esempi
Gli esempi riportati di seguito utilizzano un iperblocco verticale nelle celle B2, B3 e B4 e una variabile globale denominata gv_SetProperty. La cella B2 è la colonna delle chiavi, B3 la colonna delle proprietà e B4 contiene i valori corrispondenti.
Una chiave con più coppie proprietà e valori:
=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
Più chiavi con una coppia proprietà e valori:
=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
Più chiavi con più coppie proprietà e valori:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
Più chiavi con più proprietà e un valore:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
Modifica ed eliminazione di proprietà e valori
Quando si utilizza SETPROPERTY per fare riferimento a celle di iperblocco, sono possibili le azioni elencate di seguito:
- Eliminazione di una riga dalla definizione XML
- Eliminazione di un singolo valore
- Eliminazione di più proprietà
- Aggiornamento o impostazione di un singolo valore
- Aggiornamento o impostazione di più valori
Esempi
Eliminazione di una riga dalla definizione XML:
=SETPROPERTY(globalvariables.gv_setproperty,"Key")
Eliminazione di un singolo valore:
=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
=SETPROPERTY("XML_properties","key","property1","","property3","")
Impostazione di un singolo valore:
=SETPROPERTY("XML_properties","key","property","value")
Impostazione di più valori:
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")
Modifica di più valori mediante un carattere jolly nella chiave:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Per sostituire Value1 e Value2 con NewValue, utilizzare la seguente sintassi:
=SETPROPERTY("XML_properties"," key*
","property","new_value")
Il carattere jolly identifica entrambe le chiavi e la formula modifica entrambi i valori.
Modifica di più valori mediante un carattere jolly nella proprietà:
<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>
Per sostituire il valore di Property1 e Property2 di Key1, utilizzare la seguente sintassi:
=SETPROPERTY("XML_properties","key","property*","new_value")
Il carattere jolly identifica entrambe le proprietà, Property1 e Property2, di Key1.
Per modificare le proprietà di entrambe le chiavi, utilizzare un carattere jolly nella chiave e nella proprietà:
=SETPROPERTY("XML_properties"
,"key*","property*","new_value")