SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Stejný vzorec vložený do buňky však vrátí aktuální hodnotu proměnné DemoXML:<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>
Chcete-li tedy upravit proměnnou, musíte použít akci, která výstup vrácený funkcí SETPROPERTY zapíše zpět do proměnné.
Například u objektu zobrazení seznamu, jako je pole se seznamem, můžete definovat akci Nastavit parametry aktivovanou při změně výběru v poli se seznamem. V části Parametry dialogového okna Vytvořit akci v poli Název vyberte proměnnou, do které chcete zapisovat, a jako její hodnotu definujte funkci SETPROPERTY. V režimu Zobrazení se parametr vyplní, jakmile se spustí akce.
Můžete přidat, upravit či odstranit libovolnou vlastnost.
Funkci můžete využít k nastavení jednotlivé vlastnosti a hodnoty či více vlastností s vlastními hodnotami. Můžete ji využít například k vyplnění hodnot dimenzí řezu v reportu do proměnné XML. Funkci můžete rovněž využít k odstranění vlastností a hodnot z proměnné.
Funkci SETPROPERTY lze využít k odkazování na konkrétní prvky nebo k odkazování na buňky hyperbloku.
Chcete-li vrátit hodnoty z vlastností proměnné, použijte funkci GETPROPERTY.
Nemůžeme zaručit pořadí, ve kterém se klíče nebo vlastnosti přiřadí.
Tyto příklady vycházejí z aplikace Vzorky a využívají vlastnosti s názvy Jedinečná a Popisek k uchování jedinečného názvu a popisku prvku:
Syntaxe
SETPROPERTY("XML_properties","key","property","value")
První argument vzorce může být proměnná nebo řetězec.
Zástupný znak * lze použít s argumenty klíče a vlastnosti k přepsání nebo smazání více hodnot zároveň.
Příklady jednotlivých vlastností a hodnot
-
=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")
Ve všech třech příkladech je dimenze Produkt klíčem a název vlastnosti je „Jedinečná“.
V prvním příkladu jsou zadány dimenze Produkt a jedinečný název. Ve druhém příklady je zadán název hyperbloku obsahujícího dimenzi Produkt. Třetí příklad odkazuje na proměnné reportu, které obsahují název dimenze a jedinečný název prvku.
V definici XML klíč představuje název řádku.
Nastavení více vlastností a hodnot
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})
Příklad
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
Tires].[Car Tires all Season]","Caption","Car Tires all Season")
Více klíčů
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value")
Každý klíč tvoří řádek v definici XML proměnné.
Můžete také použít vzorce SETPROPERTY ve více akcích k vyplnění jednotlivé proměnné XML – například k uchovávání dimenzí filtru v dynamickém reportu.
Odstranění jednotlivé vlastnosti
SETPROPERTY("XML_properties", "key", "property","")
Příklad
Tato akce odstraní vlastnost Popisek z proměnné, která uchovává jedinečný název a popisek prvku dimenze Produkt.
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")
Odstranění více vlastností
=SETPROPERTY("XML_properties","key","property","","property,"")
Odstranění všech vlastností řádku
=SETPROPERTY("XML_propertes","key")
Funkce SETPROPERTY v hyperblocích
Funkce SETPROPERTY může odkazovat na buňky hyperbloku. Při použití s hyperbloky je možné definovat v proměnné XML tyto kombinace klíčů, vlastností a hodnot:
- Jeden klíč s více páry vlastnosti a hodnoty
- Více klíčů s jedním párem vlastnosti a hodnoty
- Více klíčů s více páry vlastnosti a hodnoty
- Více klíčů s více vlastnostmi a jednou hodnotou
Příklady
Tyto příklady využívají vertikální hyperblok v buňkách B2, B3 a B4 a globální proměnnou s názvem gv_SetProperty. Buňka B2 je sloupec klíčů, B3 sloupec vlastností a B4 odpovídajících hodnot.
Jeden klíč s více páry vlastnosti a hodnoty:
=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
Více klíčů s jedním párem vlastnosti a hodnoty:
=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
Více klíčů s více páry vlastnosti a hodnoty:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
Více klíčů s více vlastnostmi a jednou hodnotou:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
Úprava a odstraňování vlastností a hodnot
Je-li funkce SETPROPERTY použita k odkazování na buňky hyperbloku, lze provést tyto akce:
- Odstranění řádku z definice XML
- Odstranění jednotlivé hodnoty
- Odstranění více vlastností
- Aktualizace nebo stanovení jednotlivé hodnoty
- Aktualizace nebo stanovení více hodnot
Příklady
Odstranění řádku z definice XML:
=SETPROPERTY(globalvariables.gv_setproperty,"Key")
Odstranění jednotlivé hodnoty:
=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
=SETPROPERTY("XML_properties","key","property1","","property3","")
Stanovení jednotlivé hodnoty:
=SETPROPERTY("XML_properties","key","property","value")
Stanovení více hodnot:
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")
Změna více hodnot pomocí zástupného znaku v klíči:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Změna hodnot Value1 a Value2 na hodnotu NewValue:
=SETPROPERTY("XML_properties"," key*
","property","new_value")
Zástupný znak identifikuje oba klíče a vzorec mění obě jejich hodnoty.
Změna více hodnot pomocí zástupného znaku ve vlastnosti:
<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>
Postup změny hodnoty vlastností Property1 a Property2 klíče Key1:
=SETPROPERTY("XML_properties","key","property*","new_value")
Zástupný znak identifikuje vlastnosti Property1 i Property2 klíče Key1.
Chcete-li změnit vlastnosti obou klíčů, použijte zástupný znak pro klíč i vlastnost:
=SETPROPERTY("XML_properties"
,"key*","property*","new_value")