SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Men när den infogas i en cell returnerar samma formel det aktuella värdet för DemoXML-variabeln:<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>
Om du vill ändra variabeln måste du använda en åtgärd som tilldelar de utdata som returneras av SETPROPERTY-funktionen tillbaka till variabeln.
På exempelvis ett listvyobjekt, som en kombinationsruta, kan du definiera en Ange parametrar-åtgärd som ska utlösas när kombinationsrutan ändras. I sektionen Parametrar i dialogrutan Skapa åtgärd väljer du variabeln som ska fyllas i som namn och definierar en SETPROPERTY-funktion som värde. I visningsläge fylls parametern i när åtgärden utlöses.
Egenskaper kan läggas till, ändras eller raderas.
Med denna funktion kan du ange en enskild egenskap och ett värde eller flera egenskaper som alla har ett värde. Du kan exempelvis fylla i en xml-variabel med värden från sektordimensionerna i en rapport med hjälp av den. Du kan också använda funktionen till att radera egenskaper och värden från en variabel.
Du kan referera till specifika element eller hyperblockceller med SETPROPERTY.
Om du vill returnera värden från egenskaperna för en variabel använder du GETPROPERTY.
Vi kan inte garantera i vilken ordning nycklarna och egenskaperna matchas.
Dessa exempel baseras på exempelprogrammet och använder egenskaper med namnen Unique och Caption för att lagra det unika namnet på och rubriken för ett element:
Syntax
SETPROPERTY("XML_properties","key","property","value")
Det första argumentet i formeln kan vara en variabel eller en sträng.
Du kan använda jokertecknet * med nyckel- och egenskapsargumenten om du vill skriva över eller radera flera värden samtidigt.
Exempel på enskilda egenskaper och värden
-
=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")
I alla tre exempel är dimensionen Product nyckeln och "Unique" egenskapsnamnet.
I det första exemplet anges dimensionen Product och det unika namnet för en produkt. I det andra exemplet anges namnet på ett hyperblock som innehåller dimensionen Product. Det tredje exemplet refererar till rapportvariabler som innehåller ett dimensionsnamn och ett unikt elementnamn.
I xml-definitionen utgör nyckeln radnamnet.
Ställa in flera egenskaper och värden
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})
Exempel
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
Tires].[Car Tires all Season]","Caption","Car Tires all Season")
Flera nycklar
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value")
Varje nyckel utgör en rad i variabelns xml-definition.
Du kan också använda flera SETPROPERTY-formler i flera åtgärder om du vill fylla i en enskild xml-variabel, exempelvis om du vill lagra filterdimensionerna i en dynamisk rapport.
Radera en enskild egenskap
SETPROPERTY("XML_properties", "key", "property","")
Exempel
Följande raderar egenskapen Caption från en variabel som lagrar det unika namnet på och rubriken för ett element i dimensionen Product.
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")
Radera flera egenskaper
=SETPROPERTY("XML_properties","key","property","","property,"")
Radera alla egenskaper i en rad
=SETPROPERTY("XML_propertes","key")
SETPROPERTY i hyperblock
SETPROPERTY-funktionen kan referera till hyperblockceller. När den används med hyperblock kan du definiera följande kombinationer av nycklar, egenskaper och värden i en xml-variabel:
- En nyckel med flera par av egenskap och värde
- Flera nycklar med ett par av egenskap och värde
- Flera nycklar med flera par av egenskap och värde
- Flera nycklar med flera egenskaper och ett värde
Exempel
Dessa exempel använder ett vertikalt hyperblock i cellerna B2, B3 och B4 och den globala variabeln gv_SetProperty. Cell B2 är nyckelkolumnen, B3 är egenskapskolumnen och B4 innehåller de motsvarande värdena.
En nyckel med flera par av egenskap och värde:
=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
Flera nycklar med ett par av egenskap och värde:
=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
Flera nycklar med flera par av egenskap och värde:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
Flera nycklar med flera egenskaper och ett värde:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
Redigera och radera egenskaper och värden
När hyperblockceller refereras med SETPROPERTY kan du använda följande åtgärder:
- Radera en rad från xml-definitionen
- Radera ett enskilt värde
- Radera flera egenskaper
- Uppdatera eller ställa in ett enskilt värde
- Uppdatera eller ställa in flera värden.
Exempel
Radera en rad från xml-definitionen:
=SETPROPERTY(globalvariables.gv_setproperty,"Key")
Radera ett enskilt värde:
=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
=SETPROPERTY("XML_properties","key","property1","","property3","")
Ställa in ett enskilt värde:
=SETPROPERTY("XML_properties","key","property","value")
Ställa in flera värden:
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")
Ändra flera värden med jokertecken på nyckel:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Så här ändrar du både Value1 och Value2 till NewValue:
=SETPROPERTY("XML_properties"," key*
","property","new_value")
Jokertecknet identifierar båda nycklarna och formeln ändrar bådas värden.
Ändra flera värden med jokertecken för egenskap:
<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>
Använd följande om du vill ändra värdet för Property1 och Property2 i Key1:
=SETPROPERTY("XML_properties","key","property*","new_value")
Jokertecknet identifierar både Property1 och Property2 i Key1.
Om du vill ändra egenskaperna för båda nycklarna använder du ett jokertecken för både nyckeln och egenskapen:
=SETPROPERTY("XML_properties"
,"key*","property*","new_value")