Altova XMLSpy 2023 Enterprise 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.

 

Nota:al introducir expresiones para filtros y fórmulas en la vista Cuadrícula puede que quiera ver una expresión en varias líneas para poder leerla mejor. Para añadir una línea nueva en una expresión pulse Ctrl+Entrar.
JSONGridViewFormulas01

Si el documento es JSON5 o JSONC:

 

La fórmula se escribe en el documento como comentario JSON

El resultado de la fórmula se puede almacenar como código (sin comentarios) en el documento JSON. Para ello haga clic en el icono del disco de la fórmula (imagen siguiente). Si la fórmula no se almacena como contenido JSON se guarda solamente como metadatos del documento para su visualización en la vista Cuadrícula. Tenga en cuenta que el icono del disco solo está disponible en documentos JSON5 y JSONC, pero no en otros tipos de documentos JSON.

 

 

 

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

 

Tenga en cuenta estos aspectos sobre las fórmulas:

 

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

Las fórmulas se almacenan en los metadatos del documento (que está en un archivo JSON de metadatos especial que sirve para toda la aplicación). Si el documento es JSON5 y JSONC, entonces la fórmula se almacena también como comentario en el contenido JSON.

El resultado generado por 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 se puede guardar en el documento haciendo clic en el icono de disco que hay junto a la expresión XQuery. Haga o no clic en el disco, el resultado de la fórmula se calcula y se almacena en los metadatos del 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.

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:en el cuadro de diálogo Configurar la vista Cuadrícula puede indicar si quiere guardar las fórmulas en los documentos JSON5 y JSONC o no. La opción predeterminada es que las fórmulas sí se guardan.

 

Nota:en el cuadro de diálogo Configurar la vista Cuadrícula JSON también puede: (i) definir las opciones de los metadatos (si las fórmulas se guardan automáticamente en el archivo de metadatos, solo tras preguntar o si no se guardan).

 

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

 

© 2017-2023 Altova GmbH