Agrupaciones
Las agrupaciones de StyleVision son compatibles con diseños SPS que utilizan XSLT 2.0 o XSLT 3.0 y con los formatos de salida HTML.
Las agrupaciones sirven para procesar componentes (nodos por lo general) por grupos. Por ejemplo, imagine que tiene un inventario de automóviles. En este inventario hay un elemento llamado auto que almacena los datos de cada automóvil. Si el elemento car tuviera un atributo marca, por ejemplo, podría agrupar los automóviles por marcas. Esto puede ser muy útil en multitud de casos. Por ejemplo:
•Puede reunir todos los automóviles de una misma marca en el documento de salida, bajo el título del nombre de la marca.
•Puede realizar operaciones dentro de un grupo y presentar por separado los resultados de cada grupo. Por ejemplo, puede enumerar por separado el número de modelos disponible de cada marca.
Por último puede procesar un grupo en subgrupos. Por ejemplo, dentro de cada marca, puede agrupar los automóviles por modelo y después por año.
Criterios de agrupación
Los componentes se pueden agrupar usando dos criterios generales: (i) una clave de agrupación (que comprueba el valor de un nodo) y (ii) la posición relativa de los componentes. Estos son los criterios de agrupación disponibles:
•agrupar-por: agrupa los componentes en función de una clave definida mediante XPath. Por ejemplo, los elementos auto se pueden agrupar en función de su atributo marca. La agrupación se establece en el elemento auto y una expresión XPath selecciona el atributo marca.
•agrupar-adyacentes: combina una clave de agrupación con el criterio de posición. Todos los elementos adyacentes que tengan el mismo valor que la clave de agrupación se incluyen en el mismo grupo. Si el valor de la clave de agrupación no es el mismo que el del elemento anterior, este elemento inicia un grupo nuevo.
•agrupar-empezando-por: empieza un grupo nuevo cuando un nodo coincide con un patrón XPath definido. Si no coincide con el patrón XPath definido, el nodo se asigna al grupo actual.
•agrupar-terminando-por: termina un grupo cuando un nodo coincide con un patrón XPath definido. El nodo que coincide con el patrón es el último nodo del grupo. El nodo siguiente empieza un grupo nuevo. Si el nodo posterior al que comienza un grupo no coincide con el patrón XPath definido, el nodo se asigna al grupo actual.
Crear grupos
Puede definir criterios de agrupación tanto en un nodo como en la plantilla current-group. Para crear un grupo haga clic con el botón derecho en el nodo o en la plantilla current-group. En el menú contextual que aparece seleccione el comando Agrupar por. Se abre el cuadro de diálogo "Definir la agrupación de resultados" (imagen siguiente).
En este cuadro de diálogo marque la casilla Habilitar agrupación y después seleccione el Tipo de agrupación. En el cuadro de texto Criterio de agrupación debe escribir la expresión XPath que define la clave de agrupación (para las opciones agrupar-por y agrupar-adyacentes) o el patrón de coincidencia (para las opciones agrupar-empezando-por y agrupar-terminando-por). Al hacer clic en Aceptar aparece un cuadro de diálogo que pregunta si desea ordenar el grupo alfabéticamente (en orden ascendente). Si lo prefiere, puede ordenar los grupos más tarde. La imagen siguiente muestra nodos y plantillas current-group a los que se aplicaron criterios de agrupación.
En el ejemplo de la imagen anterior, se agrupó el nodo person y también los grupos resultantes. Por ejemplo, si los elementos person se agrupan por departamento, los departamentos se pueden ordenar por orden alfabético ascendente. Los grupos creados a partir de este criterio se agrupan otra vez creando una agrupación en la plantilla current-group(). De este modo puede agrupar los elementos person primero por departamento y luego por puesto.
Ordenar grupos
Tras confirmar una definición de agrupación aparece un aviso preguntando si desea ordenar los grupos en orden ascendente o no. Esta ordenación también se puede crear, modificar o eliminar más tarde.
Para definir, modificar o eliminar la ordenación, haga clic con el botón derecho en la plantilla de agrupación y seleccione Ordenar por. Aparece el cuadro de diálogo Definir el criterio de ordenación de los resultados. En la sección de este manual Ordenación encontrará más información. Lo más importante que debe recordar es que para ordenar grupos en función de su criterio de agrupación, debe seleccionar la función XPath current-grouping-key() como criterio de ordenación. Para ver un ejemplo consulte los apartados siguientes.
Ver y editar las opciones de agrupación/ordenación
Para ver y editar las opciones de agrupación/ordenación de una plantilla, haga clic con el botón derecho en la plantilla y seleccione Agrupar por o Ordenar por respectivamente. Esto abre el respectivo cuadro de diálogo donde puede ver/editar las opciones de configuración.
Plantillas definidas por el usuario
Las plantillas definidas por el usuario son plantillas que se aplican a componentes seleccionados por medio de una expresión XPath definida por el usuario. Los nodos seleccionados por la expresión XPath de una plantilla definida por el usuario también se pueden agrupar. En este caso la agrupación se aplica a la plantilla definida por el usuario.