SETPROPERTY
=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.
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
-
=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")
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
=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","")
=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:
<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:
<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")