Altova XMLSpy 2024 Professional Edition 

Una fórmula es una expresión XQuery 3.1 que genera unos resultados (un conjunto de nodos o un cálculo) que aparecen en la Vista Cuadrícula JSON. En la imagen siguiente, por ejemplo, se calcula el precio total de los elementos 1 a 4 y el resultado (28) aparece en una línea aparte. Cada fórmula funciona de forma independiente y no se ve afectada por el resto de filtros o fórmulas.

 

Para más información sobre generar expresiones XQuery para documentos JSON consulte el apartado Expresiones XQuery para JSONJSON.

JSONGridViewFormulas01

 

 

 

En la imagen anterior la fórmula calcula el total de los elementos de una secuencia. Cada uno de estos elementos es el producto de los valores price y quantity de cada uno de los objetos que contiene la matriz items. La iteración para seleccionar cada uno de los objetos y asignarlos a su vez a la variable $item se indica con: for $item in ?items?*. En este punto es importante anotar el nodo de contexto, que es el elemento principal de la fórmula y, por consiguiente, el elemento principal del nodo items. Para obtener cada producto se buscan los nodos secundarios price y quantity del objeto que esté actualmente en la variable $item y se multiplican esos dos valores. Los productos que se obtienen de esta forma son los elementos de la secuencia, que luego se suman para obtener el precio total.

 

Crear una fórmula

Siga estos pasos para crear una fórmula:

 

1.Seleccione el nodo al que quiere añadir la fórmula, sea como elemento del mismo nivel o como secundario. Haga clic con el botón derecho y añada el elemento del mismo nivel o secundario. Al decidir dónde quiere que aparezca la fórmula (como elemento del mismo nivel o secundario) tenga en cuenta que el nodo de contexto de la expresión XQuery de la fórmula será el nodo principal de esa fórmula. Por ejemplo, en la expresión XQuery de la imagen anterior el nodo de contexto es el nodo principal de la fórmula (totalPrice) y de su elemento del mismo nivel, la matriz items. Para crear la fórmula de la imagen anterior se anexó un nodo del mismo nivel a la matriz items (imagen siguiente).

2.Cambie el tipo de nodo a Fórmula (imagen siguiente).

JSONGridViewFormulas02AddNode

3.Haga doble clic en la celda que contiene el icono f(x) e introduzca el nombre de la fórmula (imagen siguiente). Si el documento es JSON5 o JSONC aparece un icono de disco. Puede hacer clic en este icono para guardar los resultados de la fórmula en el documento.

JSONGridViewFormulas03NameNode

4.Por defecto, la expresión XQuery es la cadena 'XQuery', por lo que el resultado será la cadena XQuery (que aparece en la celda bajo la expresión). Haga doble clic en la celda de la expresión e introduzca la expresión, después pulse Entrar. La fórmula se evalúa y aparece el resultado. Otras fórmulas no cambian.

5.Si hay varias fórmulas en el documento haga clic en el comando de menú JSON | Volver a evaluar todo para actualizar los resultados de todas las fórmulas. Este comando es especialmente útil si las fórmulas del documento buscan datos que cambian de forma dinámica (como tasas de cambio).

 

Resumen

Tenga en cuenta estos aspectos sobre las fórmulas, sobre todo las propiedades especiales de los documentos JSON5 y JSONC:

 

El nodo de contexto de la expresión XQuery de la fórmula es el nodo principal del nodo de la fórmula.

Para añadir una línea nueva en una expresión pulse Ctrl+Entrar. Esto es útil si quiere ver una expresión en varias líneas para leerla mejor.

Las expresiones XQuery de las fórmulas de un documento se almacenan en un archivo de metadatos para su uso posterior. Este archivo se encuentra en (Mi) carpeta de documentos: Altova\XMLSpyCommon\json-metadata.json. Las fórmulas se aplicarán automáticamente a partir de este archivo cuando el documento se vuelve a abrir en la vista Cuadrícula.

En los documentos JSON5 y JSONC también puede guardar las fórmulas como comentarios. Para ello, seleccione la opción Persistencia de la Configuración de la vista Cuadrícula (Herramientas | Opciones | Vista | Configurar la vista Cuadrícula). Esta opción está seleccionada por defecto.

El resultado calculado de una fórmula aparece en la celda bajo la expresión XQuery de la fórmula. En el caso de JSON5 y JSONC, el resultado también se puede almacenar en el documento. Si se ha seleccionado la opción Persistencia (véase el punto anterior), aparecerá un icono de disco junto a la expresión XQuery. Active este icono para guardar el resultado de la fórmula en el documento.

ic_jsongridFormulaOutputNotSaved

El resultado de la fórmula no se ha guardado en el contenido JSON; haga clic para guardarlo. Solo en JSON5 y JSONC.

ic_jsongridFormulaOutputSaved

El resultado de la fórmula se ha guardado en el contenido JSON; haga clic para revertir la acción guardar. Solo en JSON5 y JSONC.

Haga o no clic en el disco, el resultado de la fórmula se calcula y se almacena en los metadatos del documento.

Si el resultado de la fórmula es un cálculo que se almacena en el contenido, se almacena como una propiedad con el nombre que haya asignado a la fórmula. Por ejemplo, en la fórmula totalPrice mencionada anteriormente, el resultado se almacena así: "totalPrice": 28.

Observe que: En documentos JSON5 y JSONC las fórmulas se guardan como comentarios JSON y sus resultados se guardan como propiedades JSON.

 

Nota:Sólo es posible guardar o las fórmulas o sus resultados en documentos JSON que sean JSON5 o JSONC. Sin embargo, las fórmulas de la vista Cuadrícula de cualquier documento JSON siempre se aplicarán al documento cuando se muestre en la vista Cuadrícula dado que siempre se almacenan en el archivo de metadatos de la aplicación.

 

Fórmulas en tablas

Si todas las celdas de una columna de tabla (en Vista Diseño de tabla) contienen la misma fórmula, entonces la fórmula aparece solamente una vez, en el encabezado de la columna (imagen siguiente). Los resultados del cálculo de la fórmula aparecen en las celdas correspondientes. La fórmula del encabezado de la columna es una representación de la vista Cuadrícula. En el contenido del documento JSON (en la Vista Texto), la fórmula se repite por cada elemento fila de tabla.

JSONGridViewFormulasInTables01

Si alguna de las fórmulas es diferente (como en la celda resaltada de la imagen siguiente), cada fórmula aparece en su respectiva celda.

JSONGridViewFormulasInTables02

Volver a evaluar todas las fórmulas

Para actualizar los resultados de todas las fórmulas del documento haga clic en el comando de menú JSON | Volver a evaluar todo.

 

Procedimiento para acciones relevantes

 

Para añadir una columna nueva vacía a la tabla: Cambie de la Vista Diseño de tabla a la Vista Lista, haga clic con el botón derecho en cualquier par clave:valor de la lista y anexe o inserte un nuevo par clave:valor desde el menú contextual del elemento. Al cambiar de vuelta a la Vista Diseño de tabla se crea una columna nueva para el par clave:valor que anexó/insertó. Ahora puede editar esta columna en la vista Cuadrícula.

Su todas las fórmulas de una columna de tabla son iguales que la que aparece en el encabezado y quiere crear una distinta para una sola celda, cambie a la Vista Lista y edite la fórmula de esa celda.

 

© 2018-2024 Altova GmbH