SETPROPERTY
=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.
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
-
=SETPROPERTY(globalvariables.gv_property,"[Product]","Unique", "[Product].[All Tires].[Car Tires All Season]")
-
=SETPROPERTY(globalvariables.gv_property,reportobjects.Hyperblock4.Text, "Unique","[Product].[All Tires].[Car Tires All Season]")
-
=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
=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","")
=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:
<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:
<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")