SETPROPERTY

Funkcja ta jest wykorzystywana jako część akcji do zapisywania wielu właściwości w formacie XML. W przypadku gdy nie jest używana z akcją funkcja SETPROPERTY nie może zmodyfikować pliku XML – zwraca ona tylko bieżący kod XML. Na przykład ta formuła stanowiąca część akcji Ustaw parametry powoduje zapisanie danych w zmiennej o nazwie DemoXML:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
Jednak po wstawieniu do komórki ta sama formuła zwraca bieżącą wartość zmiennej DemoXML:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

Aby zmodyfikować zmienną, należy użyć akcji przypisującej dane wyjściowe zwrócone przez funkcję SETPROPERTY z powrotem do zmiennej.

Na przykład w obiekcie widoku listy, takim jak pole kombi, zdefiniuj wywoływanie akcji Ustaw parametry w przypadku zmiany zaznaczenia w polu kombi. W sekcji Parametry w oknie dialogowym Utwórz akcję wybierz zmienną do wypełnienia jako Nazwa i zdefiniuj funkcję SETPROPERTY jako Wartość. W Trybie widoku parametr jest wypełniany, gdy akcja zostanie wywołana.

Możesz dodawać, modyfikować lub usuwać dowolne właściwości.

Można użyć tej funkcji do określenia pojedynczych właściwości i wartości lub wielu właściwości, każda z wartością. Można z niej skorzystać na przykład do wypełnienia zmiennej XML wartościami wymiary wycinka w raporcie. Możesz również użyć tej funkcji do usuwania właściwości i wartości ze zmiennej.

SETPROPERTY można użyć do odwoływania się do określonego elementu lub można użyć do odwoływania się do komórek hiperbloku.

Aby zwrócić wartości z właściwości zmiennej, użyj GETPROPERTY.

Można użyć znaku gwiazdki (*) na początku lub na końcu ciągu jako symbolu wieloznacznego. Przykładowo, aby zwrócić określone klucze lub właściwości. Gwiazdki w ciągu nie działają jak symbole wieloznaczne. Wyszukiwanie za pomocą symboli wieloznacznych zwraca tylko pierwszy dopasowany klucz lub właściwość.
Uwaga

Nie możemy zagwarantować kolejności, w której klucze lub właściwości są dopasowywane.

W przykładach wykorzystano właściwości o nazwach Unique i Caption do przechowywania unikatowej nazwy i podpisu elementu:

Składnia

SETPROPERTY("właściwości_XML","klucz","właściwość","wartość")

Pierwszym argumentem formuły może być zmienna lub ciąg.

Symbol wieloznaczny * można używać z argumentami klucza i właściwości do jednoczesnego zastąpienia lub usunięcia wielu wartości.

Przykłady pojedynczych właściwości i wartości

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

We wszystkich trzech przykładach wymiar produktu stanowi klucz a nazwa właściwości jest 'unikatowa'.

W pierwszym przykładzie są określone wymiar Produkt i nazwa unikatowa produktu. W drugim przykładzie nazwa hiperbloku zawierającego wymiar produktu jest określona. Trzeci przykład zawiera odwołania do zmiennych raportu zawierających nazwę wymiaru i nazwę unikatową elementu.

W definicji XML klucz generuje nazwę wiersza.

Określ wiele właściwości i wartości

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

Przykład

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

Wiele kluczy

Można przechowywać wiele kluczy w zmiennej, ale nie przy pomocy pojedynczej funkcji SETPROPERTY. Aby przechowywać wiele kluczy, użyj hiperbloku lub zagnieźdź wiele funkcji SETPROPERTY. Na przykład:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

Każdy klucz stanowi wiersz w definicji XML lub zmiennej.

Lub skorzystaj z wielu formuł SETPROPERTY w wielu akcjach do wypełniania jednej zmiennej XML – na przykład do przechowywania wymiarów filtra w raporcie dynamicznym.

Usuwanie pojedynczej właściwości

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

Przykład

Powoduje to usunięcie właściwości Podpis ze zmiennej w której przechowywana jest nazwa unikatowa i podpis elementu wymiaru Produkt.

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

Usuń wiele właściwości

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

Usuwanie wszystkich właściwości wiersza

=SETPROPERTY("XML_propertes","key")

SETPROPERTY w hiperblokach

Funkcja SETPROPERTY może odwoływać się do komórek hiperbloku. Przy jej użyciu z hiperblokiem możliwe jest zdefiniowanie następujących kombinacji kluczy, właściwości i wartości w zmiennej XML:

  • Jeden klucz z wieloma właściwościami i parami wartości
  • Wiele kluczy z jedną właściwością i parą wartości
  • Wiele kluczy z wieloma właściwościami i parami wartości
  • Wiele kluczy z wieloma właściwościami i jedną wartością

Przykłady

W tych przykładach korzysta się z pionowego hiperbloku w komórkach B2, B3 i B4 oraz globalnej zmiennej o nazwie gv_SetProperty. Komórka B2 to kolumna kluczy, B3 to kolumna właściwości zaś B4 to kolumna odpowiadających im wartości.

Jeden klucz z wieloma właściwościami i parami wartości:

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

Wiele kluczy z jedną właściwością i parą wartości:

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

Wiele kluczy z wieloma właściwościami i parami wartości:

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

Wiele kluczy z wieloma właściwościami i jedną wartością:

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

Edytowanie i usuwanie właściwości i wartości

Przy korzystaniu z SETPROPERTY do odwoływania się do komórek hiperbloku są możliwe następujące akcje:

  • Usuwanie wiersza z definicji XML
  • Usuwanie pojedynczej wartości
  • Usuń wiele właściwości
  • Aktualizacja lub ustawianie pojedynczej wartości
  • Aktualizacja lub ustawianie wielu wartości

Przykłady

Usuwanie wiersza z definicji XML:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

Usuwanie pojedynczej wartości:

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

Usuwanie wielu właściwości (na przykład usuwanie właściwości 1 i 3 z listy właściwości):
=SETPROPERTY("XML_properties","key","property1","","property3","")

Ustawianie pojedynczej wartości:

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

Ustawianie wielu wartości:

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

Zmiana wielu wartości klucza przy pomocy symbolu wieloznacznego:

Ta zmienna ma dwa klucze, każdy z inną wartością:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Aby zmienić zarówno Wartość1 jak i Wartość2 na NowąWartość:

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

Symbol wieloznaczny identyfikuje oba klucze zaś formuła zmienia obie ich wartości.

Zmiana wielu wartości właściwości przy pomocy symbolu wieloznacznego:

Ta zmienna ma dwa klucze, każdy z dwiema właściwościami i wartościami:
<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>

Aby zmienić wartość Właściwości1 i Właściwości2 Klucza1, użyj:

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

Symbol wieloznaczny identyfikuje zarówno Właściwość1 jak i Właściwość2 Klucza1.

Aby zmienić właściwości obu kluczy, użyj symbolu wieloznacznego dla obu kluczy i właściwości:

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