SETPROPERTY

Esta função é usada, como parte de uma ação, para salvar várias propriedades em XML. Quando não usada com uma ação, SETPROPERTY não pode modificar XML; ela só retorna o XML atual. Por exemplo, como parte de uma ação Definir parâmetros, esta fórmula grava em uma variável chamada DemoXML:
=SETPROPERTY(ReportVariables.DemoXML.Text, "visibility","ReportObjects.ListView6.Alias" ,"false")
No entanto, quando inserida em uma célula, a mesma fórmula retorna o valor atual da variável DemoXML:
<Table><Row name="visibility"><Property name="ReportObjects.ListView6.Alias" value="False" /></Row></Table>

Portanto, para modificar a variável, é preciso usar uma ação que atribua a saída retornada pela função SETPROPERTY de volta para a variável.

Por exemplo, em um objeto de listview, como uma caixa de combinação, defina uma ação Definir parâmetros a ser acionada quando a seleção da caixa de combinação mudar. Na seção Parâmetros da caixa de diálogo Criar ação, selecione a variável a ser preenchida como o Nome e defina uma função SETPROPERTY como o Valor. No Modo de exibição, o parâmetro é preenchido quando a ação é ativada.

Você pode adicionar, modificar ou excluir qualquer propriedade.

É possível usar a função para definir uma única propriedade e valor ou várias propriedades, cada uma com um valor. Use-a, por exemplo, para preencher uma variável XML com os valores das dimensões de fatia em um relatório. Também é possível usar a função para excluir propriedades e valores de uma variável.

SETPROPERTY pode ser usado para referenciar elementos específicos ou para referenciar células de hiperbloco.

Para retornar valores das propriedades de uma variável, use GETPROPERTY.

É possível usar o caractere asterisco (*) no início ou no final de uma string como um curinga. Por exemplo, para retornar determinadas chaves ou propriedades. Os asteriscos de uma string não agem como curingas. A pesquisa de curinga retorna apenas a primeira chave ou propriedade combinadas.
Nota

Nós não podemos garantir a ordem em que as chaves ou propriedades são correspondidas.

Estes exemplos se baseiam no aplicativo Samples e usam propriedades nomeadas Exclusivo e Legenda para armazenar o nome exclusivo e a legenda de um elemento:

Sintaxe

SETPROPERTY("XML_properties","key","property","value")

O primeiro argumento da fórmula pode ser uma variável ou uma string.

O caractere curinga * pode ser usado com os argumentos de propriedade e chave para substituir ou excluir vários valores simultaneamente.

Exemplos de propriedades e valores únicos

  1. =SETPROPERTY(globalvariables.gv_property,"[Product]","Unique",
    "[Product].[All Tires].[Car Tires All Season]")
  2. =SETPROPERTY(globalvariables.gv_property,reportobjects.Hyperblock4.Text,
    "Unique","[Product].[All Tires].[Car Tires All Season]")
  3. =SETPROPERTY(globalvariables.gv_property,"reportvariables.rv_dimension.text","Unique",
    "reportvariables.rv_element.text")

Nos três exemplos, a dimensão Produto é a chave, e o nome da propriedade é "Exclusivo".

No primeiro exemplo, a dimensão Produto e o nome exclusivo de um produto são especificados. No segundo exemplo, é especificado o nome de um hiperbloco que contém a dimensão Produto. O terceiro exemplo referencia as variáveis de relatório que contêm um nome de dimensão e um nome exclusivo de elemento.

Na definição XML, a chave forma o nome da linha.

Configurar várias propriedades e valores

SETPROPERTY("XML_properties", "key", "property","value",{,"property"}{,"value"})

Exemplo

=SETPROPERTY(globalvariables._gv_property,"[Product]","unique","[Product].[All
		Tires].[Car Tires all Season]","Caption","Car Tires all Season")

Várias chaves

Você pode armazenar várias chaves em uma variável, mas não com uma única função SETPROPERTY. Para armazenar várias chaves, use um hiperbloco ou aninhe várias funções SETPROPERTY. Por exemplo:
=SETPROPERTY(SETPROPERTY("XML_properties","key","property","value"),
"key","property","value") 

Cada chave forma uma linha na definição XML da variável.

Como opção, use várias fórmulas SETPROPERTY em várias ações para preencher uma única variável XML, por exemplo, para armazenar as dimensões de filtro em um relatório dinâmico.

Excluir uma única propriedade

SETPROPERTY("XML_properties", "key", "property","")

Exemplo

Isso exclui a propriedade Legenda de uma variável que armazena o nome exclusivo e a legenda de um elemento da dimensão Produto.

=SETPROPERTY(globalvariables._gv_property,"[Product]","caption","")

Excluir várias propriedades

=SETPROPERTY("XML_properties","key","property","","property,"")

Excluir todas as propriedades de uma linha

=SETPROPERTY("XML_propertes","key")

SETPROPERTY em hiperblocos

A função SETPROPERTY pode referenciar células de hiperbloco. Quando usada com hiperblocos, é possível definir estas combinações de chaves, propriedades e valores em uma variável XML:

  • Uma chave com vários pares de propriedade e valor
  • Várias chaves com um par de propriedade e valor
  • Várias chaves com vários pares de propriedade e valor
  • várias chaves com várias propriedades e um valor

Exemplos

Estes exemplos usam um hiperbloco vertical nas células B2, B3 e B4 e uma variável global chamada gv_SetProperty. A célula B2 é a coluna de chaves, B3 é a coluna de propriedades e B4 contém os valores correspondentes.

Uma chave com vários pares de propriedade e valor:

=SETPROPERTY(globalvariables.gv_setproperty,"[Product]",B3,B4)

Várias chaves com um par de propriedade e valor:

=SETPROPERTY(globalvariables.gv_setproperty,B2,"Property","Value")

Várias chaves com vários pares de propriedade e valor:

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,B4)

Várias chaves com várias propriedades e um valor:

=SETPROPERTY(globalvariables.gv_setproperty,B2,B3,"Value")

Editar e excluir propriedades e valores

Quando SETPROPERTY é usado para referenciar células de hiperbloco, estas ações são possíveis:

  • Excluir uma linha da definição XML
  • Excluir um único valor
  • Excluir várias propriedades
  • Atualizar ou definir um único valor
  • Atualizar ou definir vários valores

Exemplos

Excluir uma linha da definição XML:

=SETPROPERTY(globalvariables.gv_setproperty,"Key")

Excluir um único valor:

=SETPROPERTY(globalvariables.gv_setproperty,"Key","")

Excluir várias propriedades (por exemplo, excluir propriedades de 1 e 3 de uma lista de propriedades):
=SETPROPERTY("XML_properties","key","property1","","property3","")

Definir um único valor:

=SETPROPERTY("XML_properties","key","property","value")

Definir vários valores:

=SETPROPERTY("XML_properties","key","property1","value1","property2",
"Value2","Property3","Value3")

Altere vários valores com o caractere curinga na chave:

Esta variável tem duas chaves, cada uma com um valor diferente:
<Table><Row name="Key1"><Property name="property" value ="Value1" /></Row>
<Row name="Key2"><Property name="property" value ="Value2" /></Row></Table>
Para alterar Value1 e Value2 para NewValue:

=SETPROPERTY("XML_properties"," key* ","property","new_value")

O caractere curinga identifica as chaves, e a fórmula altera ambos os valores.

Altere vários valores com o caractere curinga na propriedade:

Esta variável tem duas chaves, cada uma com dois valores e propriedades:
<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>

Para alterar o valor de Property1 e Property2 de Key1, use:

=SETPROPERTY("XML_properties","key","property*","new_value")

O caractere curinga identifica Property1 e Property2 de Key1.

Para alterar as propriedades de ambas as chaves, use um caractere curinga na chave e na propriedade:

=SETPROPERTY("XML_properties" ,"key*","property*","new_value")