XML 变量与筛选器维度结合使用
动态报告不依赖于某个数据源。相反,变量和报告参数可用作所需数据连接与多维数据集以及维度的占位符。
动态报告的设计者无法了解报告将与何种数据库或数据结构结合使用,并且也不了解,例如,维度数量或哪些维度将用作筛选器维度。如果报告将在仪表板中使用并且筛选器维度将用于小组件通信,那么必须储存从每个筛选器维度中选择的值。但是,因为维度未知,所以通过将各个变量和参数指派到每个维度无法完成此操作。解决方案是将筛选器值储存在指定格式的 XML 变量中。可将该变量指派到元组报告参数并用于仪表板上的小组件通信。
该解决方案是在多个操作中使用多个SETPROPERTY公式以填充单个 XML 变量。
例如,您有一个报告,其中“产品”和“期间”维度是筛选器维度。用户从这些维度的选择传递给名为“rv_product”和“rv_period”的报告变量。随后,SETPROPERTY 公式将引用这些报告变量来填充名为“rv_XMLFilters”的第三个报告变量。
对于“产品”筛选器维度,在“设置参数”操作中使用 SETPROPERTY 公式:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Product]","Unique",ReportVariables.rv_product.text)
。
对于“期间”维度,将使用下列公式:
=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Period]","Unique",ReportVariables.rv_period.text)
当用户从“产品”和“期间”筛选器中选择时,将使用“rv_product”和“rv_period”的值填充 XMLFilters 变量。例如:
<Table><Row
name="[Period]"><Property name="unique" value="[Period].[All Years].[2012]"
/></Row><Row name="[Product]"><Property name="unique"
value="[PRODUCT].[All Tires].[Special Offers]"
/></Row></Table>
通过将 XML 变量指派到元组报告参数,如果报告在仪表板中显示,则变量中储存的值可用于小组件通信。