Tabla "Edit sales"
La tabla "Edit Sales" como en el caso de la tabla "Edit Offices", la tabla se ha creado en una página de nivel superior separada. Cuando la solución se ejecuta, a esta página se accede desde la página de nivel superior (consulte la captura de pantalla a la izquierda). Haciendo clic en el botón Tabla "Edit Sales" se carga la tabla "Edit Sales" (captura de pantalla de la derecha). La tabla "Sales" presenta filas múltiples, cada una de las cuales tienen una columna "ID" (elementos de ventas) que se puede editar, una oficina editable y columnas de Mes, Año y de Licencias y un control "Eliminar" (siguiente captura de pantalla a la derecha). Además existe un control "Anexar fila" debajo de la última fila, un botón Enviar localizado en la barra de la tabla "Edit Sales" y un botón Atrás para regresar a la página anterior (sería la página de nivel superior en este caso).
A ambos botones Editar del diseño (siguiente captura de pantalla) les ha sido asignada la acción "Ir a la página" en sus eventos respectivos AlPulsarBotón(haga clic con el botón derecho y seleccione Acciones de control para AlPulsarBotón). Estas acciones de "Ir a la página" (segunda captura de pantalla) cargan las páginas de destino correspondientes.
Crear una tabla "Sales" editable
La tabla "Sales" de la BD tiene la estructura que se muestra en la estructura jerárquica de datos de $DB2 (siguiente captura de pantalla). Debido a que el atributo @id es la clave primaria, no se puede cambiar. Esto significa que cuando se anexa un nuevo registro, el usuario final no puede introducir un valor @id usando la solución. El valor @id debe generarse de forma automática usando una expresión XQuery. La expresión XQuery se inserta usando el comando del menú contextual, Comprobar existencia antes de la página se cargue (Valor XPath):
let $all := $DB2/DB/RowSet/Row/@id
let $ids := remove($all, index-of($all, ""))
let $id := if (empty($ids)) then 1 else max($ids) + 1
return $id
En el diseño haremos lo siguiente:
Actividad | Método |
Mostrar todas las filas (Sales) | Agregar una tabla de repetición con la fila Sales como elemento de repetición. |
Incluir controles para agregar y eliminar filas | Cuando se agrega la tabla, se habilita la inclusión automática de los controles Eliminar/Anexar |
Activar la edición de valores editables | Agregar un cuadro combinado y los controles de campo "Editar" que tienen enlaces de fuente de página. |
Volver a guardar cambios en la BD | Agrega la acción Guardar en el evento AlPulsarBotónEnviar de la página. Con el botón derecho $DB2 y active Crear GrupoOriginaldeFilas |
Regresar a la página de nivel superior | Agregar la acción "Ir a la página" al evento AlPulsarBotónAtrás de la página. |
Al arrastrar el elemento de control "Tabla" desde el Panel "Controles" y soltarlo en el diseño aparece el cuadro de diálogo "Tabla nueva" (captura de pantalla siguiente). Especifique que la tabla se repitirá, introduzca el número de columnas(5)y de filas (2), active la casilla de verificación Controles Eliminar/Anexar y luego haga clic en Aceptar. Se agregarán las etiquetas como títulos de las celdas en la primera fila. Se agrega una etiqueta a la primera celda de la segunda fila para el valor @id que no se puede editar. En esta etiqueta (DB:id), se crea un enlace del nodo de origen al nodo @id de $DB2.
|
Se agrega un cuadro combinado para la oficina (con un enlace de nodo de origen a @Office) y se agregan los campos editados para las celdas "mes", "año", "licencias" con los enlaces de fuente de página a los nodos correspondientes.
|
Haga clic en Página | Acciones de página para abrir el cuadro de diálogo "Acciones de página" (siguiente captura de pantalla) Las acciones están definidas para los siguientes eventos:
•AlPresionarBotónEnviar: guarda todas las columnas de la página en la BD ($DB1) y regresa a la página de nivel superior. Si desea añadir la acción Volver a cargar para que la BD se vuelva a cargar sin que los datos sufran cambios en el caso de que el registro no se guarde en la BD (consulte la captura de pantalla anterior) •AlPulsarBotónAtrás: regresa a la página de nivel superior..
La estructura de la fuente de página también ha de incluir un elemento ConjuntoFilaOriginal que es una copia del elemento ConjuntoFila. Los datos originales se guardan en el elemento ConjuntoFilaOriginal para que se puedan editar las columnas del elemento ConjuntoFila. El elemento ConjuntoFilaOriginal se actualiza con el valor nuevo sólo cuando los datos se vuelven a guardar en la BD. |