SETPROPERTY

Denne funktion bruges som en del af en handling til at gemme flere egenskaber i XML. Når den ikke bruges med en handling, kan SETPROPERTY ikke ændre XML – den returnerer kun den aktuelle XML. Denne formel skriver f.eks. som en del af handlingen Indstil parametre til en variabel kaldet DemoXML:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Når den indsættes i en celle, returnerer den samme formel dog den aktuelle værdi for variablen DemoXML:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

Det betyder, at hvis du vil ændre variablen, skal du bruge en handling, der tildeler det output, som returneres af SETPROPERTY-funktionen, tilbage til variablen.

Du kan f.eks. på et listevisningsobjekt, f.eks. et kombinationsfelt, definere en Indstil parametre-handling, der skal udløses, når valget i kombinationsfeltet ændres. Vælg i afsnittet Parametre i dialogboksen Opret handling den variabel, der skal udfyldes som navnet, og definer derefter en SETPROPERTY-funktion som værdien. I visningstilstand udfyldes parameteren, når handlingen udløses.

Du kan tilføje, ændre eller slette en egenskab.

Du kan bruge funktionen til at indstille en enkelt egenskab og værdi eller flere egenskaber, hver med en værdi. Brug den f.eks. til at udfylde en XML-variabel med udsnitsdimensionernes værdier i en rapport. Du kan også bruge funktionen til at slette egenskaber og værdier fra en variabel.

SETPROPERTY kan bruges til at referere til bestemte elementer eller kan bruges til at referere til hyperblokceller.

Brug GETPROPERTY til at returnere værdier fra en variabels egenskaber.

Du kan bruge stjernetegnet (*) i starten eller slutningen af en streng som jokertegn. Det kan f.eks. bruges til at returnere bestemte nøgler eller egenskaber. Stjerner i en streng fungerer ikke som jokertegn. En søgning med jokertegn returnerer kun den første matchede nøgle eller egenskab.
Bemærk

Vi kan ikke garantere den rækkefølge, nøglerne eller egenskaberne matches i.

Disse eksempler er baseret på Samples-programmet og bruger egenskaberne Unique og Caption til at gemme et elements entydige navn og titeltekst:

Syntaks

SETPROPERTY("XML_properties","key","property","value")

Det første argument i formlen kan være en variabel eller streng.

Jokertegnet * kan bruges i nøgle- og egenskabsargumenterne til at overskrive eller slette flere værdier samtidig.

Eksempler på enkelte egenskaber og værdier

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

I alle tre eksempler er dimensionen Product nøglen, og egenskabsnavnet er 'Unique'.

I det første eksempel angives dimensionen Product og det entydige navn for et produkt. I det andet eksempel angives navnet på en hyperblok, der indeholder dimensionen Product. I det tredje eksempel refereres der til rapportvariabler, som indeholder et dimensionsnavn og et element med et entydigt navn.

Nøglen udgør rækkenavnet i XML-definitionen.

Angiv flere egenskaber og værdier

SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})

Eksempel

=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
		Tires].[Car Tires all Season]","Caption","Car Tires all Season")

Flere nøgler

Du kan gemme flere nøgler i en variabel, men ikke med en enkelt SETPROPERTY-funktion. Hvis der skal gemmes flere nøgler, skal der bruges en hyperblok eller indlejres flere SETPROPERTY-funktioner. Eksempel:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

Hver nøgle udgør en række i variablens XML-definition.

Du kan også bruge flere SETPROPERTY-formler i flere handlinger til at udfylde en enkelt XML-variabel – for eksempel for at gemme filterdimensionerne i en dynamisk rapport.

Slet en enkelt egenskab

SETPROPERTY("XML_properties", "key", "property","")

Eksempel

Dette sletter egenskaben Caption fra en variabel, der gemmer det entydige navn og titelteksten for et element i dimensionen Product.

=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")

Slet flere egenskaber

=SETPROPERTY("XML_properties","key","property","","property,"")

Slet alle egenskaber for en række

=SETPROPERTY("XML_propertes","key")

SETPROPERTY i hyperblokke

SETPROPERTY-funktionen kan referere til hyperblokceller. Ved brug med hyperblokke er det muligt at definere disse kombinationer af nøgler, egenskaber og værdier i en XML-variabel:

  • Én nøgle med flere egenskabs- og værdipar
  • Flere nøgler med ét egenskabs- og værdipar
  • Flere nøgler med flere egenskabs- og værdipar
  • Flere nøgler med flere egenskaber og én værdi

Eksempler

I disse eksempler bruges en lodret hyperblok i celle B2, B3 og B4 samt en global variabel kaldet gv_SetProperty. Celle B2 er nøglekolonnen, B3 er egenskabskolonnen, og B4 er de tilsvarende værdier.

Én nøgle med flere egenskabs- og værdipar:

=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)

Flere nøgler med ét egenskabs- og værdipar:

=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")

Flere nøgler med flere egenskabs- og værdipar:

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)

Flere nøgler med flere egenskaber og én værdi;

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")

Redigering og sletning af egenskaber og værdier

Når SETPROPERTY bruges til at referere til hyperblokceller, er følgende handlinger mulige:

  • Slet en række fra XML-definitionen
  • Slet en enkelt værdi
  • Slet flere egenskaber
  • Opdater eller angiv en enkelt værdi
  • Opdater eller angiv flere værdier

Eksempler

Slet en række fra XML-definitionen:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

Slet en enkelt værdi:

=SETPROPERTY(globalvariables.gv_setproperty,"Key","")

Slet flere egenskaber (f.eks. sletning af egenskaberne 1 og 3 fra en liste over egenskaber):
=SETPROPERTY("XML_properties","key","property1","","property3","")

Angiv en enkelt værdi:

=SETPROPERTY("XML_properties","key","property","value")

Angiv flere værdier:

=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")

Rediger flere værdier med jokertegn for nøgle:

Denne variabel har to nøgler, hver med forskellig værdi:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Sådan ændres både Value1 og Value2 til NewValue:

=SETPROPERTY("XML_properties"," key* ","property","new_value")

Jokertegnet identificerer begge nøgler, og formlen ændrer begge deres værdier.

Rediger flere værdier med jokertegn for egenskab:

Denne variabel har to nøgler, hver med to egenskaber og værdier:
<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>

Værdien for Property1 og Property2 i Key1 ændres ved at bruge:

=SETPROPERTY("XML_properties","key","property*","new_value")

Jokertegnet identificerer både Property1 og Property2 for Key1.

Brug et jokertegn for både nøgle og egenskab for at ændre egenskaberne for begge nøgler:

=SETPROPERTY("XML_properties" ,"key*","property*","new_value")