Ver todos los registros
Los registros de la base de datos de clientes que están almacenados en la estructura $PERSISTENT se presentan en forma de tabla con filas dinámicas (imagen siguiente).
Así se configuró la tabla:
•La tabla tiene una sola fila de encabezado que está situada fuera de la fila dinámica.
•La final dinámica (es decir, la fila que se repite), está vinculada al elemento $PERSISTENT/Root/Customer de la fuente de página. Como resultado, en la solución se crea una fila nueva por cada elemento Customer.
•La celda de cada columna de la tabla contiene un control de tipo Etiqueta que está vinculado a los nodos de atributo del elemento Customer correspondiente: name, street, zip y city.
•Cada etiqueta tiene definido el mismo conjunto de acciones para su evento AlHacerClicEnEtiqueta (imagen siguiente). Estas acciones permiten editar por separado todos los registros de clientes y guardarlos por separado en la base de datos de clientes (véase Editar un registro actual). Como el conjunto de acciones es el mismo para las cuatro etiquetas, las acciones se definieron en un grupo de acciones que se reutiliza en cada una de las cuatro etiquetas.
Grupo de acciones para editar direcciones
Más abajo puede ver una imagen del grupo de acciones que se añadió para el evento AlHacerClicEnEtiqueta de cada etiqueta. Tras la imagen encontrará un descripción detallada del grupo de acciones.
Nota: | el nodo en el que se añadió el grupo de acciones es el nodo $PERSISTENT/Root/Customer. Es decir, este es el nodo de contexto de todas las expresiones XPath que aparecen en el grupo de acciones. |
A continuación explicamos qué consiguen las acciones de este grupo de acciones:
•La acción Eliminar nodo(s) elimina todos los nodos de atributo secundarios de $EDIT/Customer. Recuerde que esta fuente de página contiene un solo registro, el registro del cliente que el usuario está editando en ese momento.
•Los nodos de atributo del nodo $EDIT/Customer que se eliminaron se sustituyen por los nodos de atributo del registro que deseamos editar. Se trata de los nodos de atributo del nodo de contexto actual: $PERSISTENT/Root/Customer. Esta sustitución se lleva a cabo por medio de la acción Anexar nodo(s).
•La acción Permitir crea una variable llamada $save que va a la subpágina Edit Address (imagen anterior) y captura su resultado. El resultado de la subpágina se devuelve cuando el usuario hace clic en el botón Save de la página. Este botón ejecuta la acción Cerrar la subpágina y devuelve su resultado (que es el nodo Customer). Por tanto, este nodo se almacena en la variable $save.
•La acción Condición If-Then comprueba si existe la variable $save.
•Si existe la variable $save, se ejecuta la cláusula Entonces de la acción. Esto hace que los nodos de atributo del elemento Customer actual de la base de datos de clientes se elimine y que los nodos de atributo del elemento $EDIT/Customer se anexen al registro de cliente actual de la base de datos de clientes (por medio de la acción Anexar nodo(s)). De este modo, los datos editados del cliente sustituyen a los datos antiguos del cliente en la base de datos de clientes.
•Si el usuario hace clic en el botón Cancel, se ejecuta la acción Cerrar la subpágina sin devolver resultados. El efecto es que la solución vuelve a la página de nivel superior sin modificar la base de datos de clientes.