Subformularios en tabs
Complemento para manejar subformularios en páginas de controles Tab
Los controles Tabs propician que los formularios se carguen de subformularios pues les hacen sitio y los muestran de mamera muy ordenada y limpia. Esto, que trabajando en local apenas se nota, en cuanto trabajamos en red, supone una pérdida de rendimiento importante; los formularios se tardan en cargar pues tienen que viajar a través de la red los datos del formulario principal y todos los de los subformularios.
La solución está en controlar mediante código qué pestaña tiene el enfoque y "cargar" sólo el subformulario que corresponde a esa pestaña. El resto de los subformularios, que no se muestran, tienen como objeto origen un subformulario vacío. Cuando cambiamos de pestaña, mediante código asignamos el objeto origen que corresponda a la que es visible y en los demás asignamos un formulario vacío.
Para cada subformulario debemos controlar el nombre del objeto origen, el propio nombre del control que contien el subformulario y los campos por los que se vincula a formulario principal, LinkMasterFields y LinKChildFields. Hacer con esto un procedimiento que valiera para todos los casos, es farragoso, porque deberíamos pasar demasiados parámetros, sin embargo, si utilizamos un módulo de clase podemos pasar los parámetros como propiedades con un resultado mucho más limpio.
Así que me hice un módulo de clase para manejar los subformularios en los controles Tabs. Pero, aunque más limpio, seguía siendo pesado ir asignando propiedades y, para más coña, resulta que estaba copiando propiedades que ya estaban escritas en los objetos. En fin, que me hice un asistente que asignara por mí esas propiedades al módulo de clase.
Complemento JBwzTabs
JbwzTabs es un asistente para generar automáticamete el codigo que maneje los subformularios incluidos en páginas de controles Tab, de manera que, mientras el subformulario no esté visible, la propiedad SourceObject se corresponde con un formulario sin datos, liberando así recursos y evitando un tráfico innecesario en la red.
El planteamiento es que primero vd. cree el formulario principal, el control Tab y los subformularios, vinculados correctamente, como haría normalmente, y luego ejecute este asistente.
Al ejecutar el asistente se producirán los siguientes cambios:
Se generará en código necesario, añadiendo, si se precisa, un par de módulo de clase.
Se cambiarán las propiedades de los subformularios para que tengan por origen un formulario vacio mientras no sean visibles.
Se modificará el módulo del formulario añadiéndole los procedimientos necesarios.
Se creará en formulario en blanco y vacío al que apuntan los subformularios cuando no están visibles.
Después de una pantalla de presentación con el comentario anterior, tras pulsar continuar, se nos muestra el formulario como éste de abajo. No ha más que rellenar los campos con lo que queramos y el asistente hará el resto.
Instalación
Debemos descargar el archivo jbwzTabs.accda y proceder a instalar el complemento.