Usar variáveis XML com dimensões de filtro

Os relatórios dinâmicos não dependem de uma origem de dados específica. Em vez disso, as variáveis e os parâmetros do relatório são usados como espaços reservados para a conexão de dados e o cubo necessários, assim como para as dimensões.

O designer de um relatório dinâmico não pode saber com que banco de dados ou estrutura de dados o relatório será usado e não sabe, por exemplo, o número de dimensões ou que dimensões serão usadas como dimensões de filtro. Se o relatório deve ser usado em um painel e as dimensões de filtro devem ser usadas para comunicação dos widgets, os valores selecionados a partir de cada dimensão de filtro devem ser armazenados. Mas como as dimensões são desconhecidas, não é possível fazer isso atribuindo variáveis e parâmetros individuais a cada dimensão. A solução é armazenar os valores do filtro em uma variável XML com um formato especificado. Essa variável pode ser atribuída a um parâmetro do relatório da tupla e usado na comunicação dos widgets em um painel.

Essa solução envolve o uso de várias fórmulas SETPROPERTY em várias ações para preencher uma única variável XML.

Por exemplo, você tem um relatório no qual as dimensões Produto e Período são dimensões de filtro. As seleções do usuário a partir dessas dimensões são passadas para as variáveis de relatórios denominadas rv_product e rv_period. Essas variáveis de relatórios são então referenciadas por fórmulas SETPROPERTY para preencher uma terceira variável de relatório, denominada rv_XMLFilters.

Para a dimensão do filtro Produto, essa fórmula SETPROPERTY é usada em uma ação Definir parâmetros:

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

Para a dimensão Período, é usada esta fórmula:

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

À medida que os usuários selecionam a partir dos filtros Produto e Período, a variável XMLFilters é preenchida com os valores de rv_product e rv_period. Por exemplo:

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

Ao atribuir a variável XML a um parâmetro do relatório da tupla, os valores mantidos na variável podem ser usados para comunicação entre widgets, caso o relatório seja exibido em um painel.