Tengo una lista de actividades por realizar, y cada actividad tiene datos que deben ser ingresados en un formulario propio.
Cada form tiene como origen su propia tabla.
Es decir:
Actividad1 - Form1 con origen Tabla1
Actividad2 - Form2 con origen Tabla 2
Lo que quiero hacer es mostrar, de alguna forma, una lista de actividades y que cuando el usuario seleccione una de estas, se muestre a la derecha, el form correspondiente y el usuario pueda ingresar los datos pertinentes. Pensé en hacer esto con vistas de datos, pero como la tabla de origen no es la misma, el método clásico no funciona.
Si lo que estoy pidiendo es una locura, me dicen. Pero las ideas serán enormemente bienvenidas.
Dependiendo del número de actividades y los campos a rellenar, te podría interesar utilizar controles asociados a variables locales y, mediante manejadores de eventos, escribir en el registro de la tabla correspondiente. Eso te permitiría, por ejemplo, usar una pila de formularios, cada formulario con variables locales, mostrando el formulario adecuado según la elección de actividad y luego rellenar los registros mediante código.
Muchas gracias por las sugerencias; ambas son muy buenas ideas y funcionan bien; el punto es que son muchas actividades (35 aproximadamente), y dicho formulario será el más utilizado, por lo cual necesito que funcione rápido.
Puedes cambiar el formulario mostrado por js, en este caso, la primera vista de datos es un listbox, pero podría ser una rejilla o lo que sea, el tema es que al selecionar una actividad de muestre el formulario adecuado.
Finalmente logré mi objetivo. Creé un form con un separador de formularios, sin tabla de origen, y sin datos.
Luego, apliqué el script que copio abajo, y voila… resuelto en forma simple y elegante
--------------- INICIO DEL SCRIPT -------------------
// Agrega un TAB al separador
// Leo las variables desde el form (deben estar declaradas previamente)
var nombreFormulario = theRoot.varToString (“FRM_NOMBRE_FORM_CONTROLADOR”);
var tituloTab = theRoot.varToString (“FRM_NOMBRE_TAB”);
// Obtengo el formulario que estoy mostrando
var formularioPrincipal = theRoot.dataView();
//Obtenemos el separador de formularios. SEP_WF_FICHA_GEN es el identificador…
// …que tiene el control sepàrador dentro del formulario principal
var controlSeparador = formularioPrincipal.control(“SEP_WF_FICHA_GEN”);
//Añadimos un subformulario al separador
controlSeparador.addForm(nombreFormulario,tituloTab);