SETPROPERTY

Diese Funktion wird als Teil einer Aktion verwendet, um mehrere Eigenschaften in XML zu speichern. Wird SETPROPERTY nicht in Verbindung mit einer Aktion verwendet, kann die Funktion XML nicht ändern - sie gibt nur die aktuelle XML zurück. Die folgende Formel, die Teil einer Aktion Parameter setzen ist, schreibt beispielsweise in eine Variable namens DemoXML:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Wenn sie jedoch in eine Zelle eingefügt wird, gibt dieselbe Formel den aktuellen Wert der DemoXML-Variable zurück:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

Um die Variable zu ändern, müssen Sie also eine Aktion verwenden, die die Ausgabe zuweist, die von der SETPROPERTY-Funktion an die Variable zurückgegeben wird.

Definieren Sie beispielsweise bei einem ListView-Objekt wie einem Kombinationsfeld eine Aktion Parameter setzen, die ausgelöst werden soll, wenn sich die Auswahl im Kombinationsfeld ändert. Wählen Sie im Bereich Parameter des Dialogs Aktion erstellen die zu füllende Variable als Name aus, und definieren Sie die Funktion SETPROPERTY als Wert. Im Ansichtsmodus wird der Parameter gefüllt, wenn die Aktion ausgelöst wird.

Sie können Eigenschaften hinzufügen, ändern oder löschen.

Sie können die Funktion verwenden, um eine einzelne Eigenschaft und einen Wert oder mehrere Eigenschaften mit Werten festzulegen. Sie können sie beispielsweise verwenden, um eine XML-Variable mit den Werten der Slice-Dimensionen in einem Bericht zu füllen. Sie können die Funktion auch verwenden, um Eigenschaften und Werte einer Variablen zu löschen.

Mit SETPROPERTY können Sie bestimmte Elemente oder Hyperblock-Zellen referenzieren.

Um Eigenschaftswerte einer Variablen zurückzugeben, verwenden Sie GETPROPERTY.

Sie können das Sternchen (*) am Anfang oder Ende einer Zeichenfolge als Platzhalter verwenden, Um beispielsweise bestimmte Schlüssel oder Eigenschaften zurückzugeben. Innerhalb von Zeichenfolgen können Sternchen nicht als Platzhalter verwendet werden. Bei einer Suche mit Platzhalter wird nur der erste übereinstimmende Schlüssel oder die erste übereinstimmende Eigenschaft zurückgegeben.
Hinweis

Es besteht keine Garantie für die Reihenfolge, in der Schlüssel oder Eigenschaften zugeordnet werden.

Diese Beispiele verwenden Eigenschaften namens Eindeutig und Caption, um den eindeutigen Namen und die Caption eines Elements zu speichern:

Syntax

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

Das erste Argument der Formel kann eine Variable oder eine Zeichenfolge sein.

Das Platzhalterzeichen * kann mit den Schlüssel- und Eigenschaftsargumenten verwendet werden, um mehrere Werte gleichzeitig zu überschreiben oder zu löschen.

Beispiele für einzelne Eigenschaften und Werte

  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 allen drei Beispielen ist die Dimension Product der Schlüssel, und der Eigenschaftsname ist 'Unique'.

Im ersten Beispiel werden die Dimension Product und der eindeutige Name eines Produkts angegeben. Im zweiten Beispiel wird der Name eines Hyperblocks angegeben, der die Dimension Product enthält. Im dritten Beispiel werden Berichtsvariablen referenziert, die einen Dimensionsnamen und einen eindeutigen Elementnamen enthalten.

In der XML-Definition bildet der Schlüssel den Zeilennamen.

Mehrere Eigenschaften und Werte festlegen

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

Beispiel

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

Mehrere Schlüssel

Sie können mehrere Schlüssel in einer Variablen speichern, aber nicht mit einer einzigen SETPROPERTY-Funktion. Um mehrere Schlüssel zu speichern, müssen Sie einen Hyperblock oder ineinander verschachtelte SETPROPERTY-Funktionen verwenden. Beispiel:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

Jeder Schlüssel bildet eine Zeile in der XML-Definition der Variablen.

Alternativ verwenden Sie mehrere SETPROPERTY-Formeln in mehreren Aktionen, um eine einzelne XML-Variable zu füllen – z. B. um die Filterdimensionen in einem dynamischen Bericht zu speichern.

Einzelne Eigenschaft löschen

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

Beispiel

In diesem Beispiel wird die Eigenschaft Caption einer Variablen gelöscht, die den eindeutigen Namen und die Caption eines Elements der Dimension Product speichert.

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

Mehrere Eigenschaften löschen

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

Alle Eigenschaften einer Zeile löschen

=SETPROPERTY("XML_propertes","key")

SETPROPERTY in Hyperblocks

Mit der Funktion SETPROPERTY können Sie Hyperblock-Zellen referenzieren. In Verbindung mit Hyperblocks ist es möglich, diese Kombinationen aus Schlüsseln, Eigenschaften und Werten in einer XML-Variablen zu definieren:

  • Ein Schlüssel mit mehreren Eigenschaft-Wert-Paaren
  • Mehrere Schlüssel mit einem Eigenschaft-Wert-Paar
  • Mehrere Schlüssel mit mehreren Eigenschaft-Wert-Paaren
  • Mehrere Schlüssel mit mehreren Eigenschaften und einem Wert

Beispiele

In diesen Beispielen wird ein Hyperblock in den Zellen B2, B3 und B4 sowie eine globale Variable mit dem Namen gv_SetProperty verwendet. Zelle B2 ist die Schlüsselspalte, B3 ist die Eigenschaftenspalte, und B4 enthält die entsprechenden Werte.

Ein Schlüssel mit mehreren Eigenschaft-Wert-Paaren:

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

Mehrere Schlüssel mit einem Eigenschaft-Wert-Paar:

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

Mehrere Schlüssel mit mehreren Eigenschaft-Wert-Paaren:

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

Mehrere Schlüssel mit mehreren Eigenschaften und einem Wert:

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

Eigenschaften und Werte bearbeiten und löschen

Bei Verwendung von SETPROPERTY für die Referenzierung von Hyperblock-Zellen sind folgende Aktionen möglich:

  • Eine Zeile aus der XML-Definition löschen
  • Einzelnen Wert löschen
  • Mehrere Eigenschaften löschen
  • Einzelnen Wert aktualisieren oder festlegen
  • Mehrere Werte aktualisieren oder festlegen

Beispiele

Eine Zeile aus der XML-Definition löschen:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

Einzelnen Wert löschen:

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

Mehrere Eigenschaften löschen (z. B. Eigenschaften 1 und 3 aus einer Liste von Eigenschaften):
=SETPROPERTY("XML_properties","key","property1","","property3","")

Einzelnen Wert festlegen:

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

Mehrere Werte festlegen:

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

Mehrere Werte ändern mit Platzhalter für Schlüssel:

Diese Variable besitzt zwei Schlüssel mit unterschiedlichen Werten:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
So ändern Sie sowohl Value1 als auch Value2 in NewValue:

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

Der Platzhalter identifiziert beide Schlüssel, und die Formel ändert deren Werte.

Mehrere Werte ändern mit Platzhalter für Eigenschaft:

Diese Variable besitzt zwei Schlüssel, jeder davon mit zwei Eigenschaften und Werten:
<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>

So ändern Sie den Wert von Property1 und Property2 von Key1:

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

Der Platzhalter identifiziert sowohl Property1 als auch Property2 von Key1.

Um die Eigenschaften beider Schlüssel zu ändern, verwenden Sie einen Platzhalter für Key und Property:

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