Tutor de cambio de marco

Para poder ejecutar un proyecto de aplicación éste debe contener un marco con el identificador AUTOEXEC, que será el marco que se cargue al ejecutar la aplicación.

Pero en el proyecto (o en proyectos heredados) podemos definir más marcos, con distintos contenidos y cargar uno un otro según convenga al arrancar la aplicación.

Por ejemplo, podemos tener una aplicación con distintos módulos, diseñar un marco para cada módulo y cargar uno un otro según el usuario que la ejecute.

En este tutor vamos a ver un sencillo ejemplo de cómo se programa.

Lo encontraremos en la carpeta Tutores/Procesos y eventos avanzados/Tutor de cambio de marco.

Lo primero que hemos hecho la sido crear el marco MAR_ALT (marco alternativo) que simplemente incluye un formulario con un texto que avisa que se está ejecutando la aplicación con el marco alternativo.

En el proyecto de datos hemos creado una variable global de tipo booleano con persistencia en disco (CAM_MAR) que la usaremos para evaluar si se carga el marco alternativo o no.

Ahora sólo falta saber cómo podemos hacer para cargar un marco un otro. Para ello debemos crear un un proceso sin origen que debe tener el identificador ON_INIT_CLIENT.

En dicho proceso, evaluaremos las condiciones que sea y cargaremos el marco alternativo si procede, si no lo cargamos, se cargará el AUTOEXEC. El proceso que hemos programado es este:

Rem ( Si el usuario ha configurado ejecurtar con el marco alternativo, lo cargamos )
If ( $CAM_MAR@velneo_vTutor_dat.dat )
    Establecer marco ( MAR_ALT@velneo_vTutor_app, BOK )
Rem ( Volvemos a dejar a 0 la varaible global que condiciona la carga del marco )
Modificar variable global ( CAM_MAR@velneo_vTutor_dat, 0,  )

Probando el tutor

No tenemos más que ejecutar la solución, cargar la ficha del tutor, activar el check que se indica en el formulario, cerrar y volver a ejecutar la solución. En la siguiente ejecución, se cargará el marco alternativo.

Si en el proceso ON_INIT_CLIENT no se carga ningún marco, entonces se cargará el AUTOEXEC.

Última actualización