Tutor de grabación de fichas

Objetivos del tutor

Este tutor muestra cómo podemos utilizar en nuestros formularios de grabación de datos las siguientes características:

  1. Avanzar de campo o control con la tecla INTRO o la tecla TAB.

  2. Aceptar los datos grabados pulsando la tecla INTRO solo cuando el foco está en el botón Aceptar.

  3. Aceptar los datos grabados pulsando el botón Aceptar con una tecla aceleradora.

  4. Que el formulario se cierre al Aceptar o que tras pulsar el botón Aceptar aparezca un nuevo formulario vacío para seguir.

  5. Cómo realizar una verificación antes de guardar los datos y en caso de error situar el cursor en el campo con error.

  6. Cómo imprimir un informe generando un fichero PDF automáticamente tras guardar los datos.

Los objetos de este tutor los encontraremos en la carpeta tutores/avanzados/grabación del proyecto de aplicación de vTutor.

Configurando las opciones

Para mostrar los diferentes objetivos de este tutor la solución cuenta con diferentes opciones de configuración que permiten ejecutar las diferentes pruebas de forma sencilla y sin reprogramar. Todas las opciones de configuración se guardan en variables globales en memoria, por lo que cada vez que se arranca el tutor estarán con el valor por defecto. Las configuraciones posibles son las siguientes:

Intro avanza de campo: este interruptor cuando está activado provoca que en el formulario de grabación la tecla INTRO avance de campo o control. Cuando está desactivado la tecla INTRO equivale a pulsar el botón Aceptar y guarda los datos grabados.

Aceptar y seguir: con este interruptor apagado al pulsar el botón Aceptar con ratón, INTRO o tecla aceleradora el formulario se cierra tras guardar la información. Cuando este interruptor está encendido al pulsar el botón Aceptar, tras guardar los datos, se muestra de nuevo el formulario de grabación inicializado, listo para grabar un nuevo registro. Después del alta el nuevo formulario que aparece lanza el cálculo de los contenidos iniciales, emite la señal de inicialización con la que se puede procesar un evento y sitúa el cursor en el primer campo con tabulación.

Proceso pre (verificar): esta opción se desactiva cuando activamos el interruptor Aceptar y seguir ya que solo puede ser ejecutada si el botón Aceptar guarda los datos y cierra el formulario. Cuando activamos este interruptor, en el momento que se pulsa el botón Aceptar estamos forzando a que se realice la verificación que hayamos programado en el evento que se ejecuta al pulsar el botón. En este tutor se verifica a modo de ejemplo que el campo nombre no queda vacío, en caso de error se mostrará un mensaje de aviso, se situará el foco en el campo nombre para su corrección y se paraliza el evento de grabación del registro.

Proceso post (imprimir): esta opción se desactiva cuando activamos el interruptor Aceptar y seguir ya que solo puede ser ejecutada si el botón Aceptar guarda los datos y cierra el formulario. Cuando activamos este interruptor, en el momento en que se pulsa el botón Aceptar y tras guardar los datos grabados se ejecutará la impresión de un informe guardando el fichero en formato PDF en disco en la senda que puede configurarse en el edit debajo del interruptor como se muestra en la imagen.

Grabando registros

Una vez que tenemos configurado el tutor para la prueba que queremos realizar, podemos probarlo grabando registros de forma rápida con uno de los siguientes métodos:

  1. Haciendo clic con el ratón en el botón.

  2. Pulsando las teclas aceleradoras Ctrl+N.

  3. Si ya hemos dado un alta, pulsando el botón INTRO ya que el foco estará en el botón Alta.

Cuando pulsamos el botón Alta se nos mostrará el siguiente formulario:

En función de la configuración seleccionada avanzaremos por los diferentes controles o bien con la tecla TAB o con la tecla INTRO. Además, podremos pulsar en cualquier momento la tecla ESC para salir sin grabar.

El tutor ha sido programado con un único formulario que incluye 2 botones Aceptar, el que se puede ver en la imagen superior que tiene configurada la tecla aceleradora (F12) y que al pulsarlo guarda el registro y se cierra el formulario y el que podemos ver en la imagen inferior con el texto Aceptar y seguir (F11) que permite una grabación continua hasta que se cancele. El motivo por el que se asignan dos teclas aceleradoras diferentes es doble: primero porque al estar ambos botones declarados en el mismo formulario existiría un conflicto, el segundo es que en muchos casos puede interesarnos tener visibles y activos los 2 botones con el objetivo de que uno acepte y cierre (F12) y en caso de estar modificando un registro nos permite aceptar y seguir en el formulario (F11) o lo que es lo mismo aplicar cambios y seguir.

El formulario lo encontraremos dentro de la carpeta del tutor y se llama CLT_M_TUT_GRA.

Truco: los registros una vez grabados refrescan automáticamente la rejilla situada en la parte derecha del formulario principal. Esto es así porque el botón Alta (Ctrl+N) ejecuta un evento con el comando de instrucción Interfaz: formulario de alta lo que produce que el alta sea equivalente a seleccionar la opción formulario de alta del menú contextual de la rejilla.

¿Cómo está programado?

Los interruptores son controles Svg que están contenidos dentro de la carpeta recursos de vTutor.

El control para la selección de senda donde guardar los ficheros PDF

Se ha utilizado el control edición senda de directorios para permitir al usuario configurar la senda de disco donde almacenar los informes en formato PDF que se generan cuando el interruptor del proceso POST está activado. Por defecto el valor de la senda se fija en el evento de inicialización del formulario principal, que solo se dispara cuando arranca el tutor. Aún así, se condiciona a que esté vacío el valor de la variable global donde se guarda la senda para que asuma el valor de la función estándar homePath.

Dos botones Aceptar en el mismo formulario

En el tutor solo se utiliza un formulario de grabación llamado TUT_GRAB que contiene entre otros controles dos botones Aceptar (F12) y Aceptar y seguir (F11). Ambos botones están condicionados, con condición opuesta, para que se vean uno u otro en función del estado del interruptor “Aceptar sin cerrar” que modifica el valor de la variable global $ACE_SEG.

El botón Aceptar y seguir (F11) ejecuta el comando de botón “Aceptar sin cerrar”.

El botón Aceptar (F12) ejecuta el evento ACEPTAR_PRE_POS.

Un evento para aceptar y realizar acciones previas y posteriores al guardado de la ficha.

Rem ( Antes de guardar se ejecuta el equivalente a un proceso PRE )
Rem ( Un ejemplo de uso de PRE es la verificación de los datos )

If ( $PRE_VER@velneo_vTutor_dat.dat )
    If ( isEmpty(#NAME) )
        Mensaje ( ~MSJ_GRAB_ESP_NOM@velneo_vTutor_app.app, Stop, 5, ~MSJ_GRAB_ESP_VER@velneo_vTutor_app.app )
        Interfaz: establecer foco ( NOM )
        Finalizar proceso

Rem ( Grabación del registro )

Interfaz: guardar la ficha en alta o modificación

Rem ( Después de guardar se ejecuta el equivalente a un proceso POST )
Rem ( Un ejemplo de uso de POST es la impresión del documento )

If ( $POS_IMP@velneo_vTutor_dat.dat )
    Set ( ID, #ID )
    Cesta: crear cesta local ( CLT_M@velneo_vTutor_dat, CestaClientes )
    Cesta: agregar ficha a la cesta ( CestaClientes )
    Cesta: procesar ( CestaClientes )
        Exportar informe a fichero ( CLT_M_PRT_DEF@velneo_vTutor_app, "" + $SND_PDF@velneo_vTutor_dat.dat+ "/Nota_" + ID + ".pdf" )

Rem ( Para finalizar aceptamos el formulario )

Interfaz: aceptar

El evento está documentado con comandos de instrucción REM donde se puede apreciar que el código está dividido en 4 grandes bloques:

  1. Bloque PRE, condicionado a que esté activo el interruptor PRE (Verificación). Se encarga de verificar si está grabado el nombre, en caso contrario fija el foco en el control edit del campo Nombre y finaliza el evento ya que no se va a guardar la información.

  2. Grabación del registro, utilizando el nuevo comando de instrucción Interfaz: guardar ficha en alta o modificación.

  3. Bloque POST, condicionado a que esté activo el interruptor POST (Imprimir). Se encarga de imprimir la nota grabada generando un fichero en disco en formato PDF. Para hacerlo se utiliza el nuevo comando de instrucción Exportar informe a fichero que como necesita un origen Lista de NOTAS en este caso, utilizamos las instrucciones de cesta para convertir nuestra ficha guardada en una lista de un registro con la que poder ejecutar la instrucción. En la exportación se utiliza tanto la senda configurada para el directorio de destino del fichero y el ID o código del registro para generar un informe diferente para cada NOTA. En caso de generar siempre el mismo fichero se sobre-escribiría quedando solo el último generado.

  4. El último bloque es el que se encarga de Aceptar el formulario con lo que se cierra después de finalizar todos los bloques anteriores. Este comando de instrucción es equivalente al comando de botón Aceptar.

Última actualización