SETPROPERTY

Deze functie wordt gebruikt als onderdeel van een actie om meerdere eigenschappen in XML op te slaan. Als deze functie niet wordt gebruikt met een actie, kan SETPROPERTY geen XML wijzigen. De functie retourneert alleen de huidige XML. Bijvoorbeeld wanneer deze formule als onderdeel van de actie Parameters instellen naar een variabele met de naam DemoXML schrijft:
=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.

U kunt aan het begin of het einde van een reeks het sterretje (*) gebruiken als jokerteken. Bijvoorbeeld als u bepaalde sleutels of eigenschappen wilt retourneren. Sterretjes binnen een reeks gedragen zich niet als jokerteken. Een zoekopdracht met een jokerteken retourneert alleen de eerste overeenkomende sleutel of eigenschap.
NB

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

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

U kunt meerdere sleutels in een variabele opslaan, maar niet met één SETPROPERTY-functie. Als u meerdere sleutels wilt opslaan, gebruikt u een hyperblock of nest u meerdere SETPROPERTY-functies. Bijvoorbeeld:
=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","")

Meerdere eigenschappen verwijderen (bijvoorbeeld eigenschappen 1 en 3 uit een lijst met eigenschappen verwijderen):
=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:

Deze variabele heeft twee sleutels, elk met een andere waarde:
<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:

Deze variabele heeft twee sleutels, elk met twee eigenschappen en waarden:
<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")