SETPROPERTY

Denne funksjonen brukes som en del av en handling for å lagre flere egenskaper i XML. Når den ikke brukes med en handling, kan ikke SETPROPERTY endre XML – den returnerer bare gjeldende XML. Denne formelen skriver for eksempel til en variabel som heter DemoXML, som en del av en Angi parametere-handling:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Men når den settes inn i en celle, returnerer den samme formelen den gjeldende verdien av DemoXML-variabelen:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

For å endre variabelen må du derfor bruke en handling som tilordner utdataene som returneres av SETPROPERTY-funksjonen tilbake til variabelen.

På et listevisningsobjekt, for eksempel en kombinasjonsboks, kan du for eksempel definere en Angi parametere-handling som skal utløses når valget i kombinasjonsboksen endres. I parameteravsnittet av dialogen Opprett handling velger du variabelen som skal fylles som navn, og definerer en SETPROPERTY-funksjon som verdien. I visningsmodusen fylles parameteren ut når handlingen utløses.

Du kan legge til, endre eller slette enhver egenskap.

Du kan bruke funksjonen for å angi en enkel egenskap og verdi eller flere egenskaper, hver med en verdi. Bruk den for eksempel for å fylle en XML-variabel med verdiene fra skivedimensjonen i en rapport. Du kan også bruke funksjonen for å slette egenskaper og verdier fra en variabel.

SETPROPERTY kan brukes for å referere til spesifikke elementer eller kan brukes for å referere til hyperblokkceller.

Bruk GETPROPERTY til å returnere verdier fra egenskapene for en variabel.

Du kan bruke stjerne-tegnet (*) på starten eller slutten av en streng som jokertegn. For eksempel for å returnere bestemte nøkler eller egenskaper. Stjerner i en streng fungerer ikke som jokertegn. Et søk med jokertegn returnerer bare den første nøkkelen eller egenskapen som stemmer overens.
Merk

Vi kan ikke garantere rekkefølgen nøkler eller egenskaper sammenlignes i.

Disse eksemplene er basert på Eksempler-applikasjonen og bruker egenskaper med navn Unik og Tittel til å lagre det unike navnet og tittelen til et element:

Syntaks

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

Det første argumentet i formelen kan være en variabel eller en streng.

* jokertegnet kan brukes sammen med nøkkel- og egenskapsargumentene for å skrive over eller slette flere verdier samtidig.

Eksempler på enkeltegenskaper og verdier

  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 eksemplene er produktdimensjonen nøkkelen og egenspaksnavnet er 'unik'.

I det første eksemplet er produktdimensjonen og det unike navnet til et produkt spesifisert. I det andre eksemplet er navnet til en hyperblokk som inneholder produktdimensjonens spesifisert. Det tredje eksemplet handler om rapportvariabler som inneholder et dimensjonsnavn og et unikt elementnavn.

I XML-definisjon utgjør nøkkelen radnavnet.

Angi flere egenskaper og verdier

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

Du kan lagre flere nøkler i en variabel, men ikke med en enkel SETPROPERTY-funksjon. For å lagre flere nøkler bruker du en hyperblokk eller nester flere SETPROPERTY-funksjoner. For eksempel:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

Hver nøkkel utgjør en rad i XML-definisjonen av variabelen.

Eller bruk flere SETPROPERTY-formler i flere handlinger for å fylle en enkel XML-variabel - for eksempel for å lagre filterdimensjonene i en dynamisk rapport.

Slette en enkel egenskap

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

Eksempel

Dette sletter Tittel-egenskapen til en variabel som lagrer det unike navnet og tittelen til et element i produktdimensjonen.

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

Slette flere egenskaper

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

Slette alle egenskaper i en rad

=SETPROPERTY("XML_propertes","key")

SETPROPERTY i hyperblokker

SETPROPERTY-funksjonen kan referere til hyperblokkceller. Når de brukes i hyperblokker er det mulig å definere denne kombinasjonen av nøkler, egenskaper og verdier i en XML-variabel:

  • Én nøkkel med flere egenskaper og verdipar
  • Flere nøkler med én egenskap og ett verdipar
  • Flere nøkler med flere egenskaper og verdipar
  • Flere nøkler med flere egenskaper og én verdi

Eksempler

Disse eksemplene bruker en vertikal hyperblokk i cellene B2, B3 og B4 og en global variabel med navnet gv_SetProperty. Celle B2 er nøkkelkolonnen, B3 egenskapskolonnen og B4 tilhørende verdier.

Én nøkkel med flere egenskaper og verdipar:

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

Flere nøkler med én egenskap og ett verdipar:

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

Flere nøkler med flere egenskaper og verdipar:

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

Flere nøkler med flere egenskaper og én verdi:

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

Redigere og slette egenskaper og verdier

Hvis SETPROPERTY brukes for å referere til hyperblokkceller er disse handlinger mulige:

  • Slette en rad fra XML-definisjonen
  • Slette en enkel verdi
  • Slette flere egenskaper
  • Oppdatere eller angi en enkel verdi
  • Oppdatere eller angi flere verdier

Eksempler

Slette en rad fra XML-definisjonen:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

Slette en enkel verdi:

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

Slette flere egenskaper (for eksempel slette egenskaper 1 og 3 fra en liste med egenskaper):
=SETPROPERTY("XML_properties","key","property1","","property3","")

Angi en enkel verdi:

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

Angi flere verdier:

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

Endre flere verdier med jokertegn på nøkkel:

Denne variabelen har to nøkler, hver har en annen verdi:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
For å endre både Verdi1 og Verdi2 til NyVerdi:

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

Jokertegnet identifiserer begge nøkler og formelen endrer begge verdiene.

Endre flere variabler med jokertegn på egenskap:

Denne variabelen har to nøkler, hver med to egenskaper og verdier:
<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>

For å endre verdien til Egenskap1 og Egenskap2 for Nøkkel1, bruk:

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

Jokertegnet identifiserer både Egenskap1 og Egenskap2 til Nøkkel1.

For å endre egenskapene til begge nøkler, bruk et jokertegn på både nøkkel og egenskap:

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