SETPROPERTY
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")但是,在插入单元格时,相同的公式返回 DemoXML 变量的当前值:<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>因此,若要修改变量,必须使用操作将 SETPROPERTY 函数返回的输出指派给变量。
例如,在列表视图对象(如组合框)上,定义“设置参数”操作,使其在组合框中的选择更改时触发。在“创建操作”对话框的“参数”部分,选择要填充为“名称”的变量,将 SETPROPERTY 函数定义为“值”。在“视图”模式下,当触发操作时,参数即可填充。
可以添加、修改或删除任何属性。
可以使用此函数设置单个属性和值或者每个都有一个值的多个属性。例如,可使用报告中的切片维度的值填充 XML 变量。还可以使用此函数从变量中删除属性和值。
可使用 SETPROPERTY 引用特定元素或引用超级数据块单元格。
若要从变量的属性返回值,使用 GETPROPERTY。
我们无法保证关键字或属性的顺序也匹配。
下面的示例使用名为“Unique”和“Caption”的属性存储元素的唯一名称和标题:
语法
SETPROPERTY("XML_properties","key","property","value")
公式的第一个参数可以是变量或字符串。
* 通配符可与键以及属性参数结合使用,以便同时覆盖或删除多个值。
单个属性和值的示例
-  
			            
=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") 
在所有三个示例中,“产品”维度为键,而属性名称为“唯一”。
在第一个示例中,指定“产品”维度和产品的唯一名称。在第二个示例中,指定包含“产品”维度的超级数据块的名称。第三个示例引用含有维度名称以及元素唯一名称的报告变量。
在 XML 定义中,键构成行名称。
设置多个属性和值
SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"}) 
		       示例
=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
		Tires].[Car Tires all Season]","Caption","Car Tires all Season") 
	     多个键
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 
			每个键构成变量的 XML 定义中的一行。
或者,在多个操作中使用多个 SETPROPERTY 公式以填充单个 XML 变量 - 例如,将筛选器维度存储在动态报告中。
删除单个属性
SETPROPERTY("XML_properties", "key", "property","") 
		       示例
从存储“产品”维度的元素的唯一名称和标题的变量中删除“标题”属性。
=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","") 
		       删除多个属性
=SETPROPERTY("XML_properties","key","property","","property,"") 
		       删除行的所有属性
=SETPROPERTY("XML_propertes","key") 
		       以超级数据块执行 SETPROPERTY
SETPROPERTY 函数可引用超级数据块单元格。与超级数据块一起使用时,可以定义 XML 变量中的键、属性和值的组合:
- 有多个属性和值对的一个键
 - 有一个属性和值对的多个键
 - 有多个属性和值对的多个键
 - 有多个属性和一个值的多个键
 
示例
这些示例在 B2、B3 和 B4 单元格中使用垂直超级数据块和名为 gv_SetProperty 的全局变量。单元格 B2 是键列,B3 是属性列,B4 是对应的值。
有多个属性和值对的一个键:
				=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)
			
有一个属性和值对的多个键:
				=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")
			
有多个属性和值对的多个键:
				=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)
			
有多个属性和一个值的多个键:
				=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")
			
编辑和删除属性和值
当使用 SETPROPERTY 引用超级数据块单元格时,以下操作成为可能:
- 从 XML 定义删除某行
 - 删除单个值
 - 删除多个属性
 - 更新或设置单个值
 - 更新或设置多个值
 
示例
从 XML 定义删除某行:
				=SETPROPERTY(globalvariables.gv_setproperty,"Key")
			
删除单个值:
				=SETPROPERTY(globalvariables.gv_setproperty,"Key","")
			
=SETPROPERTY("XML_properties","key","property1","","property3","")
			设置单个值:
				=SETPROPERTY("XML_properties","key","property","value")
			
设置多个值:
=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3") 
		       在键上使用通配符更改多个值:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>若要将值 1 和值 2 更改为新值: 
		
				 =SETPROPERTY("XML_properties"," key*
					","property","new_value")
			
通配符标识出两个键,而公式则更改它们的值。
在属性上使用通配符更改多个值:
<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> 
		       若要更改键 1 的属性 1 和属性 2 的值,使用:
				
					=SETPROPERTY("XML_properties","key","property*","new_value")
			
通配符标识出键 1 的属性 1 和属性 2。
若要更改两个键的属性,使用键和属性的通配符:
				 =SETPROPERTY("XML_properties"
					,"key*","property*","new_value")