XML 変数をフィルター次元と併用

動的レポートは、特定のデータソースに依存しません。代わりに、変数とレポートパラメーターを、必須のデータ接続とキューブ、および次元のプレースホルダーとして使用します。

動的レポートをデザインするときは、そのレポートで使用されるデータベースまたはデータ構造はわかりません。次元の数や、どの次元がフィルター次元として使用されるかも不明です。レポートがダッシュボードで使用され、フィルター次元がウィジェット通信に使用される場合は、各フィルター次元から選択された値を保存する必要があります。しかし、次元の詳細がわからないため、変数とパラメーターを次元に個別に割り当てる方法では対処できません。この問題は、指定されたフォーマットの XML 変数にフィルター値を保存することで解決できます。この変数は、タプルレポートパラメーターに割り当てて、ダッシュボードでのウィジェット通信に使用できます。

この解決方法では、複数のアクションで複数の SETPROPERTY 数式を使用して 1 つの XML 変数に値を埋め込みます。

たとえば、製品次元と期間次元をフィルター次元として使用するレポートがあるとします。ユーザーがこれらの次元から選択した値は、rv_product と rv_period という名前のレポート変数に渡されます。これらのレポート変数は、SETPROPERTY 数式で参照され、もう 1 つのレポート変数 rv_XMLFilters に値を埋め込むために使用されます。

Product フィルター次元の場合、この SETPROPERTY 数式は [パラメーターを設定] アクションで次のように使用されます。

=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Product]","Unique",ReportVariables.rv_product.text)

Period 次元の場合、次の数式が使用されます。

=SETPROPERTY(ReportVariables.rv_XMLFilters,"[Period]","Unique",ReportVariables.rv_period.text)

ユーザーが製品と期間のフィルターから値を選択すると、XMLFilters 変数に rv_product と rv_period から値が埋め込まれます。例を以下に示します。

<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 変数をタプルレポートパラメーターに割り当てると、レポートがダッシュボードに表示されていた場合に、この変数に格納されていた値がウィジェット通信に使用されます。