Filas dinámicas

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Objetos y características de diseño > Tablas >

Filas dinámicas

Las filas dinámicas funcionan de la siguiente manera:

 

Una fila dinámica está asociada a un elemento de la fuente de página que se repite.
Cuando se presenta la tabla en pantalla, su número de filas coincidirá de forma dinámica con el número de instancias del elemento de repetición. Cada fila de la tabla corresponderá a una instancia del elemento de repetición.
Cuando defina la fila dinámica, podrá especificar cuántas filas se repetirán por cada instancia del elemento. Por ejemplo, podrá especificar que cada grupo de filas dinámicas (o extensibles) contenga dos filas. En este caso, por cada instancia del elemento se genera todo el grupo de filas de dos filas.
El nodo de contexto para cada fila dinámica (o grupo de filas) será la instancia correspondiente del elemento.
La tabla puede incluir un botón Anexar/Eliminar que permita al usuario final agregar y eliminar filas. Por ejemplo, si el usuario final añade una fila, se añadirá a la estructura de la fuente de página una instancia nueva del elemento de fila asociado. Estas modificaciones se podrán guardar en la fuente de página. Es decir, estos botones permiten al usuario final modificar la fuente de datos.

 

Para crear y definir una tabla con filas dinámicas arrastre el control Tabla hasta la posición deseada del diseño.

 

Ejemplo

La fuente de página tiene un elemento llamado Person que contiene una estructura que se repite (formada por los elementos: First, Last y Phone). El elemento Person puede aparecer varias veces. Si se asocia una fila dinámica (o grupo de filas) al elemento Person, la tabla se generará con tantos grupos de filas como elementos Person haya (ver tabla más abajo). Si cambie el número de elementos Person de la fuente de página, entonces el número de filas de la tabla se modificará automáticamente.

 

 

<First>

<Last>

<Phone>

<Person>

 

 

 

<Person>

 

 

 

<Person>

 

 

 

 

El diseño que aparece en la imagen contiene una tabla formada por un solo grupo de filas dinámicas. El grupo de filas está asociado al elemento Person y está compuesto por una fila y cuatro columnas.

MTDTablesDynamicRowsDes02

Por cada instancia del elemento que está asociado al grupo de filas, se genera el grupo de filas entero. Las expresiones XPath que están dentro del grupo de filas se resuelven con la instancia actual del elemento asociado, que sirve de nodo de contexto.

 

Nota:puede generar una secuencia de datos a partir de una expresión XPath/XQuery y utilizarla como fuente de datos. Sin embargo, este tipo de fuente de datos se crea solamente para dicho uso y no estará disponible como fuente de página en ninguna otra posición del documento.

 

Diferencia entre una tabla extensible y una tabla con filas dinámicas

Una tabla extensible no es lo mismo que una tabla con filas dinámicas:

 

En una tabla extensible la tabla entera está asociada a la estructura de datos de repetición. Por cada instancia de la estructura de datos se genera una tabla nueva.
En una tabla con filas dinámicas hay un grupo de filas que está asociado a la estructura de datos de repetición.

 

 

Estas diferencias tienen dos efectos en el diseño:

Una tabla con filas dinámicas puede tener un encabezado y un pie de tabla que se aplica a toda la tabla. Es decir, es el encabezado o el pie de la tabla. Si necesita un encabezado o un pie de tabla para una tabla extensible, puede añadirlos a mano fuera de la tabla extensible. Si los añade dentro de la tabla extensible, el encabezado o pie se repetirá con cada tabla por cada instancia del elemento de repetición.
En los dispositivos las tablas se suelen presentar entre dos bloques de espacios. Esto significa que las tablas extensibles contendrán espacio vertical entre los pares de tablas repetidas.

 

Para convertir una tabla extensible en una tabla con filas dinámicas haga clic con el botón derecho en la fila que desea convertir en fila dinámica y después seleccione el comando Tabla dinámica o extensible | Convertir esta fila en fila extensible.

 

Crear una tabla con filas dinámicas

 

1.En el cuadro de diálogo "Tabla nueva" que aparece cuando se coloca el control Tabla en el diseño (imagen siguiente), asegúrese de que la casilla Tabla extensible no esté marcada. Después seleccione el botón de opción Nº dinámico de filas. Esto creará una tabla que contiene un grupo de filas dinámicas.

Haga clic para expandir/contraer

2.Especifique el número de columnas que tendrá la tabla y el número de filas que tendrá el grupo de filas (la suma de filas constituye el grupo de filas). También puede especificar si la tabla debe tener encabezado y pie de tabla.
3.Indique si se deben añadir controles Anexar/Eliminar automáticos. Si se añaden, cada fila extensible de la solución tendrá un botón Eliminar y la tabla tendrá un botón Anexar (para anexar filas de tabla). Veamos un ejemplo en la simulación de una solución:

MTDTableDynamicAppendDeleteCtrls

4.Haga clic en Aceptar para terminar y agregar la tabla al diseño.
5.El paso siguiente consiste en asociar el grupo de filas con el elemento de repetición de la fuente de página. Esto se hace arrastrando el elemento correspondiente desde el panel Fuentes de página hasta la tabla. Cada instancia de este elemento generará un grupo de filas en la tabla. La instancia actual también será el nodo de contexto de las expresiones XPath que estén dentro del grupo de filas.
6.Ahora puede agregar contenido a las celdas de la tabla.  El nodo de contexto para las expresiones XPath situadas dentro de celdas de una tabla es el nodo de elemento que está asociado a la fila dinámica (ver paso anterior). Para poder usar el nodo de contexto las expresiones XPath de las celdas de la tabla deben ser relativas al nodo de contexto. El contenido de la celda puede ser una tabla anidada (estática o dinámica), un control de página (con o sin un vínculo a un nodo de la fuente de página) o incluso nodos de la fuente de página. Si arrastra y coloca un nodo de la fuente de página dentro de una celda, los datos de la celda serán editables. Por ejemplo, en el diseño que aparece a continuación se añadieron cuatro controles (de izquierda a derecha): una etiqueta, un campo de edición, otra etiqueta y otro campo de edición.

MTDTableDynamic02
 

Esta fila dinámica produce esta estructura en la solución de MobileTogether.
 
MTDTableDynamicAppendDeleteCtrls

Para obtener más información sobre distribuir columnas dinámicas consulte el apartado Propiedades de las tablas.

 

Para modificar la estructura de la tabla utilice los comandos del menú contextual de la tabla. Por otro lado, puede configurar las propiedades de formato de la tabla en el panel Estilos y propiedades.

 

Consulte también los apartados Tablas extensibles y Columnas dinámicas.

 


© 2019 Altova GmbH