SETPROPERTY

Questa funzione viene utilizzata nell'ambito di un'azione per salvare più proprietà nella definizione XML. Quando non viene utilizzata con un'azione, SETPROPERTY non può modificare la definizione XML. Verrà restituita solo la definizione XML corrente. Ad esempio, la seguente formula, nell'ambito di un'azione Imposta parametri, scrive in una variabile denominata DemoXML:
=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.

È possibile utilizzare il carattere asterisco (*) all'inizio e alla fine di una stringa come carattere jolly, ad esempio per restituire particolari chiavi o proprietà. Gli asterischi all'interno di una stringa non svolgono la funzione di carattere jolly. Una ricerca con caratteri jolly restituisce solo la prima chiave o proprietà corrispondente ai criteri specificati.
Nota

non può essere garantito l'ordine in base al quale viene stabilita la corrispondenza di chiavi o proprietà.

In questi esempi, basati sull’applicazione di esempio, vengono utilizzate le proprietà denominate Unique e Caption 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

  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")

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

È possibile memorizzare più chiavi in una variabile, ma non con una singola funzione SETPROPERTY. Per memorizzare più chiavi, utilizzare un iperblocco o nidificare più funzioni SETPROPERTY. Ad esempio:
=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","")

Eliminazione di più proprietà (ad esempio, eliminazione delle proprietà 1 e 3 da un elenco di proprietà):
=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:

La seguente variabile presenta due chiavi, ciascuna con un valore diverso:
<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à:

La seguente variabile presenta due chiavi, ciascuna con due proprietà e valori:
<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")