Guía del usuario del cliente web de Spotfire®

Propiedades en expresiones

Hay tres tipos de propiedades disponibles en Spotfire que se pueden usar en expresiones y para controlar diferentes configuraciones: propiedades de documento, propiedades de tabla de datos y propiedades de columna. Las propiedades pueden interpretarse de dos maneras distintas: ya sea como valores reales o como valores de texto que puedan utilizarse en lugar de medidas o nombres de columnas.

Para obtener información general sobre los diferentes tipos de propiedades, consulte Propiedades del documento, propiedades de la columna y propiedades de la tabla de datos.

Nota: Algunas de las funciones descritas aquí solo se pueden crear, o solo se puede acceder a ellas, mediante el cliente Spotfire instalado. Puede escribir todas las expresiones mencionadas en el cliente web, pero el cliente instalado tiene algunos accesos directos e interfaces que no están disponibles en el navegador.

Insertar como texto

Cuando desee utilizar una propiedad de cadena en una expresión en la que debería interpretarse como una medida o un nombre de columna, debe utilizar una sintaxis específica. Esto a veces se denomina expresión de preprocesador.
Nota: Esta funcionalidad se introdujo para poder agregar fácilmente controles de propiedad del documento en áreas de texto (solo cliente instalado) y para permitir que los usuarios del panel de control usen estos controles para cambiar columnas, etc., y actualizar visualizaciones en el análisis. Si solo desea utilizar el valor de una propiedad en una expresión, consulte Insertar como valor a continuación. Si la expresión se puede escribir usando las funciones de propiedad estándar, por ejemplo, DocumentProperty(), en lugar de usar una expresión de preprocesador, generalmente esto es preferible.
Al insertar como texto, el nombre de la propiedad debe incluirse enmarcado entre los siguientes signos: "${" y "}". Por tanto, una propiedad de un documento puede tener la siguiente apariencia: ${MyProperty}. En el caso de una propiedad de tabla de datos, la primera parte debería corresponder al nombre de la tabla de datos con los símbolos especificados anteriormente, seguidos de un punto y del nombre de la propiedad, también en las llaves: ${My Data Table}.{MyProperty}. Para una propiedad de columna, también se requiere el nombre de la columna: ${My Data Table}.{Column Name}.{MyProperty}.
Nota: Si se requieren cambios en un elemento utilizado por la sintaxis de preprocesador agregado automáticamente, debe actualizar manualmente la expresión. Por ejemplo, si se cambia el nombre de una columna o una tabla de datos utilizada en una expresión de preprocesador (por ejemplo, si tiene la expresión [MyColumn] * ${Multiplier} y se cambia el nombre de MyColumn), debe actualizar manualmente la expresión para usar el nuevo nombre. Esto se debe a que las expresiones que utilizan ($ -syntax) de preprocesador no se pueden deconstruir automáticamente en partes individuales, como nombres de columnas o nombres de tablas de datos, de la forma en que las propiedades utilizadas como valores pueden hacerlo. El preprocesador maneja el texto antes de realizar cualquier análisis o verificación de tipo y, como resultado, no es posible saber qué partes de dicha cadena son nombres de columna y cuáles no. Sin embargo, el preprocesador se puede utilizar para escribir expresiones que de otro modo serían difíciles o imposibles de escribir.
Llamada a la propiedad en la expresión Descripción
${MyProperty} Indica la propiedad del documento denominada MyProperty.
${My Data Table}.{MyProperty} Denota la propiedad de tabla de datos denominada MyProperty que se definió para la tabla de datos "My Data Table".
${My Data Table}.{Column Name}.{MyProperty} Indica la propiedad de la columna denominada MyProperty que se definió para la columna "Column Name" en la tabla de datos "My Data Table".
$map("template", "concatenation string") La función $map() se utiliza para asignar propiedades de valores de lista a una única cadena. El primer argumento es una plantilla que se usará para cada valor de la lista. Por su parte, el segundo es una especificación de cómo se deben conectar los valores de la lista en la expresión resultante.

Consulte Propiedades de los valores de lista (selección múltiple), a continuación, para obtener más información.

Ejemplos:

$map("sum([${PropertyName}])", ",")

<$map("[${PropertyName}]", "NEST")>

$esc(expression) Sustituye el signo "]" de los nombres de columna por "]]" y encierra los nombres de columna de escape entre los símbolos "[" y "]". El argumento es una expresión que podría ser un valor o una función de propiedad que empiecen con el signo de dólar ($).

Ejemplos:

$esc(${MyProperty})

$esc($csearch([Data Table], "Col*"))

$csearch([Data Table], "search string") La función $csearch() se utiliza para seleccionar un número de columnas de una tabla de datos mediante una expresión de búsqueda con limitación. El primer argumento corresponde a una tabla de datos, mientras que el segundo es una cadena que contiene la expresión de búsqueda que determina los nombres de columna que se devolverán. La función da como resultado una lista con los nombres de columna (sin escape) provenientes de la tabla de datos que coinciden con la expresión de búsqueda.

Ejemplos:

$csearch([Data Table],"*")

$csearch([Data Table], "Col*")

Cuando el signo $ se encuentre en una expresión, la propiedad se sustituirá por su valor correspondiente antes de que se evalúe la expresión real (paso previo al procesamiento). Esto significa que puede escribir una expresión como esta: ${Property1}-${Property2}. El valor de Property1 es el nombre de columna Column1, y el valor Property2 es Column2, por lo que la expresión resultante será la siguiente: [Column1]-[Column2].

Si no desea que el valor de la propiedad se interprete como un nombre de columna, sino como un valor de cadena literal, debería incluir la llamada de la propiedad entre comillas. Por ejemplo, si cuenta con una propiedad denominada "MyProperty" con el valor "MyValue", la expresión ${MyProperty} devolverá la expresión MyValue resultante, en la que se recupera la columna MyValue. Sin embargo, la expresión "${MyProperty}" devolvería la cadena de texto "MyValue". Si el valor de la cadena consta de varias palabras (p. ej., "My Value"), deberá utilizar $esc() o incluir corchetes en la expresión de la propiedad para devolver una columna como valor: [${MyProperty}]. Consulte Detalles del lenguaje de las expresiones para obtener más información sobre los nombres de las columnas.

Tenga en cuenta que es muy importante utilizar en todo momento la sintaxis correcta para la expresión. De lo contrario, puede que obtenga un resultado diferente de lo esperado. Si se introduce una propiedad como una columna cuando la expresión espera una cadena, se recuperará el primer valor de la columna especificada. En el caso de las columnas de cadenas, el resultado puede ser una expresión válida, pero si se trata de una columna de otro tipo de datos, alternativamente puede recibir un mensaje de error.

En el cliente instalado, si se inserta una propiedad mediante el botón Insertar propiedades de los cuadros de diálogo Agregar columna calculada o Expresión personalizada, esta se agregará automáticamente mediante la sintaxis del texto (preprocesador).

Puede hacer clic con el botón secundario en la propiedad en el campo Propiedades disponibles para la columna y seleccionar Insertar como texto en el menú emergente.

Si una propiedad que incluye un nombre de columna debe utilizarse en un eje, existe un método abreviado denominado Establecer a partir de propiedad disponible en el menú emergente de los selectores de columnas (solo cliente instalado). Si se requieren cambios en la sintaxis agregada automáticamente, debe utilizar el cuadro de diálogo Expresión personalizada para modificar la expresión. Haga clic con el botón secundario en el selector de la columna y seleccione Eliminar todo en caso de que desee eliminar la expresión de la propiedad del eje.

Una propiedad también se puede emplear para especificar una medida de agregación. Por ejemplo, puede definir una propiedad denominada MyMeasure con el valor predeterminado "sum". Si se utiliza esta propiedad en una expresión, deberá agregar manualmente paréntesis y argumentos para la medida en la expresión en la que se utilice. Puede crear un selector de propiedades en un área de texto que muestre una lista de medidas de agregación fija que desee que esté disponible en una expresión de eje, lo que permitirá a los usuarios del cliente web cambiar dicha expresión de eje mediante el selector de propiedades.

Dado que las propiedades de la cadena insertadas como texto suelen interpretarse como nombres de columna, es posible que en ocasiones no consiga el resultado esperado cuando cree una expresión personalizada. Si la propiedad de la cadena se interpreta como un valor (por ejemplo, en expresiones condicionales), este deberá enmarcarse con comillas. Por ejemplo, si desea sustituir la cadena "ProductA", utilizada en una condición de expresión de eje como Sum(if(([Product])=("ProductA"),[Quantity],null)),, por una propiedad de documento, esta deberá enmarcarse con comillas para que la expresión funcione:

Sum(if ([Product] = "${MyProduct}",[Quantity],null))

Además, puede insertar la propiedad como una función en lugar de texto para recuperar los mismos resultados (consulte a continuación Insertar como valor):

Sum(if ([Product] = DocumentProperty("MyProduct"),[Quantity],null))

Insertar como valor

Si el valor de una propiedad va a formar parte de una expresión, se recomienda el uso de las funciones de propiedad estándar: ColumnProperty(), DataTableProperty() y DocumentProperty() para encapsular el nombre de la propiedad. Por ejemplo, utilice esta sintaxis para escribir una expresión con una propiedad de documento que incluya el tipo de cambio multiplicado por la columna de valor que exprese la conversión de alguna divisa:
DocumentProperty("ExchangeRate")*[Value Column]

Tenga en cuenta que el nombre de la propiedad debe escribirse siempre entre comillas cuando se apliquen las funciones de propiedad. Si desea que una propiedad se interprete como un valor cuando se utiliza el cliente instalado, debe hacer clic con el botón secundario en la propiedad en el campo Propiedades disponibles para la columna y seleccionar Insertar como valor en el menú emergente.

Por supuesto, también puede escribir o editar manualmente la sintaxis de la propiedad, directamente.

Propiedades con valores de lista (selección múltiple): solo cliente instalado

Las propiedades de selección múltiple, o propiedades de valores de lista, se basan en una lista de valores en lugar de en un único valor. Pueden crearse cuando se defina un control de propiedad de cuadro de lista (selección múltiple) en un área de texto (solo cliente instalado). No se puede usar una propiedad de valores de lista en todos los lugares en los que se pueda aplicar una propiedad de un único valor normal, pero sí que resulta un método eficaz para especificar varias columnas en un eje.

Las propiedades de valores de lista requieren trabajo manual adicional cuando se emplean en expresiones. Sin embargo, en la mayoría de los casos obtendrá consejos acerca de la apariencia que debería tener la expresión en el contexto actual cuando inserte la propiedad con el botón Insertar propiedades.

Cuando se agrega una propiedad de valores de lista como texto a una expresión personalizada (por ejemplo, en un eje continuo, como el Y, en un gráfico de líneas o el eje de valores en un gráfico de barras) la sintaxis resultará como sigue: $map("sum([${PropertyName}])", ","). En este ejemplo, la agregación predeterminada se establece como "sum", de manera que si desea utilizar una agregación distinta deberá editar la expresión manualmente. La cadena de concatenación se configura como una coma, lo que implica que cada valor de lista debe interpretarse como una columna independiente. Si la propiedad PropertyName contiene una lista con tres columnas: "ColumnA", "ColumnB" y "ColumnC", la expresión resultante tras la expansión será sum([ColumnA]),sum([ColumnB]),sum([ColumnC]). Si la cadena de concatenación se cambia por un signo "+", el eje mostrará la suma de los valores de todas las columnas incluidas en la lista: sum([ColumnA])+sum([ColumnB])+sum([ColumnC]).

En el caso de un eje por categorías, como el eje X en un gráfico de líneas o el eje de categorías en un gráfico de barras, se recomienda mostrar una jerarquía en lugar de valores calculados. La expresión del mapa debe utilizar paréntesis angulares ("<>") y no NEST o CROSS para definir las combinaciones que se mostrarán. Por ejemplo:
<$map("[${PropertyName}]", " NEST")>

Consulte Detalles del lenguaje de las expresiones para obtener más información acerca de las opciones NEST y CROSS.

Nota: Al igual que en la configuración de expresiones con varias columnas, necesitará asegurarse de que las columnas que utiliza son del mismo tipo y que coinciden con el resto de la expresión. Por ejemplo, no puede mezclar columnas continuas y por categorías en algunos ejes, ni tampoco usar el segundo tipo de columnas en expresiones que utilicen agregaciones de cualquier tipo.

Más ejemplos de expresiones

Si no se especifica nada más, los siguientes ejemplos de expresiones asumen que su tabla de datos se denomina "Data Table" y que contiene tres columnas completas llamadas "Column 1", "Column 2" y "Sales":

Column 1, Column 2, Sales 1,2,3 4,5,6
Resultado solicitado Ejemplo de expresión Expresión resultante
Suma de todas las columnas completas en la tabla de datos denominada Tabla de Datos. $map("sum([$csearch([Data Table],"datatype:int")])","+") sum([Column 1])+sum([Column 2])+sum([Sales])
Devolución de una lista de todas las columnas de la tabla de datos denominada Data Table. $csearch([Data Table],"*") Column1,Column 2,Sales
Devolución de un nombre de columna de escape de una propiedad (MyProperty) con el valor "Nombre de columna con corchete (])". $esc(${MyProperty}) [Nombre de columna con corchete (]])]
Uso de una expresión de propiedad de valores de lista como entrada a una función de datos.

En el ejemplo, la propiedad MyListProperty incluye tres nombres de columna: Column 1, Column 2 y Sales.

$map("[Data Table].[${MyListProperty}]", ",") [Data Table].[Column 1],[Data Table].[Column 2],[Data Table].[Sales]
Uso de varias columnas en un eje en el que las columnas se recuperen mediante un control de propiedad.

En los ejemplos, la propiedad MyProperty tiene el valor Column 2.

[Column 1],[${MyProperty}]

o

<[Column 1] NEST [${MyProperty}]>

o

Sum([Column 1]), Sum(${MyProperty}])

etc.

[Column 1],[Column 2]

o

<[Column 1] NEST [Column 2]>

o

Sum([Column 1]), Sum(Column 2])

etc.

Cambio del nombre que aparece en varias columnas de un eje mediante la propiedad de valores de lista.

En el ejemplo, la propiedad MyListProperty incluye tres nombres de columna: Column 1, Column 2 y Sales.

$map("Sum([${MyListProperty}]) as [${MyListProperty}]", ",")

Todas las propiedades de valores de la expresión deben tener el mismo tamaño.

Sum([Column 1]) as [Column 1],Sum([Column 2]) as [Column 2],Sum