SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Als de formule in een cel wordt ingevoegd, retourneert dezelfde formule echter de huidige waarde van de DemoXML-variabele:<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>
Als u de variabele wilt wijzigen, moet u een actie gebruiken om de uitvoer die door de SETPROPERTY-functie wordt geretourneerd weer aan de variabele toe te wijzen.
Stel bijvoorbeeld in een lijstweergaveobject, zoals een keuzelijst met invoervak, een actie Parameters instellen in die geactiveerd moet worden als de selectie in de keuzelijst met invoervak verandert. Selecteer in de sectie Parameters van het dialoogvenster Actie maken de te vullen variabele als de naam en definieer een SETPROPERTY-functie als waarde. In de weergavemodus wordt de parameter gevuld wanneer de actie wordt geactiveerd.
U kunt elke eigenschap toevoegen, wijzigen of verwijderen.
U kunt de functie gebruiken om een individuele eigenschap en waarde in te stellen of meerdere eigenschappen, elk met een waarde. Gebruik deze functie bijvoorbeeld om een XML-variabele in te vullen met de waarden van de segmentdimensies in een rapport. U kunt de functie ook gebruiken om eigenschappen en waarden uit een variabele te verwijderen.
SETPROPERTY kan worden gebruikt om naar specifieke elementen of naar hyperblockcellen te verwijzen.
Gebruik GETPROPERTY om waarden te retourneren van de eigenschappen van een variabele.
We kunnen de volgorde waarin sleutels of eigenschappen worden geretourneerd, niet garanderen.
Deze voorbeelden zijn gebaseerd op de voorbeeldapplicatie en maken gebruik van eigenschappen met de namen Uniek en Bijschrift om de unieke naam en het bijschrift van een element op te slaan:
Syntaxis
SETPROPERTY("XML_eigenschappen","sleutel","eigenschap","waarde")
Het eerste argument van de formule kan een object of een tekenreeks zijn.
Het jokerteken * kan in de sleutel- en eigenschappenargumenten worden gebruikt om meerdere waarden tegelijk te overschrijven of te verwijderen.
Voorbeelden van individuele eigenschappen en waarden
-
=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 alle drie de voorbeelden is de Product-dimensie de sleutel en Uniek de eigenschapsnaam.
In het eerste voorbeeld worden de Product-dimensie en de unieke naam van een product opgegeven. In het tweede voorbeeld wordt de naam opgegeven van een hyperblock dat de Product-dimensie bevat. In het derde voorbeeld wordt verwezen naar rapportvariabelen die een naam van een dimensie en een unieke naam van een element bevatten.
In de XML-definitie vormt de sleutel de rijnaam.
Meerdere eigenschappen en waarden opslaan
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})
Voorbeeld
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
Tires].[Car Tires all Season]","Caption","Car Tires all Season")
Meerdere sleutels
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value")
Elke sleutel vormt een rij in de XML-definitie van de variabele.
Of gebruik meerdere SETPROPERTY-formules in meerdere acties om één XML-variabele te vullen, bijvoorbeeld om de filterdimensies in een dynamisch rapport op te slaan.
Een individuele eigenschap verwijderen
SETPROPERTY("XML_properties", "key", "property","")
Voorbeeld
Hiermee wordt de eigenschap Bijschrift verwijderd uit een variabele die de unieke naam en het bijschrift van een element uit de dimensie Product opslaat.
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")
Meerdere eigenschappen verwijderen
=SETPROPERTY("XML_properties","key","property","","property,"")
Alle eigenschappen van een rij verwijderen
=SETPROPERTY("XML_propertes","key")
SETPROPERTY in hyperblocks
De SETPROPERTY-functie kan verwijzen naar hyperblockcellen. Als deze wordt gebruikt met hyperblocks, is het mogelijk om deze combinaties van sleutels, eigenschappen en waarden te definiëren in een XML-variabele.
- Eén sleutel met meerdere eigenschap/waarde-paren
- Meerdere sleutels met één eigenschap/waarde-paar
- Meerdere sleutels met meerdere eigenschap/waarde-paren
- Meerdere sleutels met meerdere eigenschappen en één waarde
Voorbeelden
Deze voorbeelden maken gebruik van een verticaal hyperblock in de cellen B2, B3 en B4 en een globale variabele met de naam gv_SetProperty. Cel B2 is de kolom met sleutels, B3 is de kolom met eigenschappen en B4 bevat de bijbehorende waarden.
Eén sleutel met meerdere eigenschap/waarde-paren:
=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
Meerdere sleutels met één eigenschap/waarde-paar:
=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
Meerdere sleutels met meerdere eigenschap/waarde-paren:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
Meerdere sleutels met meerdere eigenschappen en één waarde:
=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
Eigenschappen en waarden bewerken en verwijderen
Als SETPROPERTY wordt gebruikt om naar hyperblockcellen te verwijzen, zijn de volgende acties mogelijk:
- Een rij verwijderen uit de XML-definitie
- Eén waarde verwijderen
- Meerdere eigenschappen verwijderen
- Eén waarde bijwerken of instellen
- Meerdere waarden bijwerken of instellen
Voorbeelden
Een rij verwijderen uit de XML-definitie:
=SETPROPERTY(globalvariables.gv_setproperty,"Key")
Eén waarde verwijderen:
=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
=SETPROPERTY("XML_properties","key","property1","","property3","")
Eén waarde instellen:
=SETPROPERTY("XML_properties","key","property","value")
Meerdere waarden instellen:
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")
Meerdere waarden wijzigen met jokerteken in sleutel:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Ga als volgt te werk om zowel Value1 als Value2 te wijzigen in NewValue:
=SETPROPERTY("XML_properties"," key*
","property","new_value")
Het jokerteken verwijst naar beide sleutels en de formule wijzigt de waarden van beide sleutels.
Meerdere waarden wijzigen met jokerteken in eigenschap:
<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>
Ga als volgt te werk om Property1 en Property2 van de eerste sleutel te wijzigen:
=SETPROPERTY("XML_properties","key","property*","new_value")
Het jokerteken verwijst naar Property1 en Property2 van Key1.
Als u de eigenschappen van beide sleutels wilt wijzigen, gebruikt u een jokerteken voor zowel de sleutel als de eigenschap:
=SETPROPERTY("XML_properties"
,"key*","property*","new_value")