Gestión de formularios

Acabo de probar una aplicación ajena. Su funcionamiento está basado en formularios modales. Es una frustración trabajar con una interfaz de programa de este tipo. En un programa de unas mínimas funciones y que generalmente se hagan de forma serial todavía se puede perdonar, pero en un programa de gestión es un atentado a la usabilidad.
Criterium CyP tiene mas de 600 formularios y gestiona muchos procesos empresariales distintos, si se trabajase de forma modal sería insufrible. Además hay que tener en cuenta que en la mayoría de las PYMES una misma persona realiza muchas funciones distintas; al contrario que en las grandes corporaciones donde el rango de funciones y procesos asignados es muy limitado.

No es nada extraño que estés emitiendo un albarán y llegue el jefe y te diga que revises los trabajadores que están trabajando en un proyecto o que le envíes un fax a un cliente. Mientras estás en eso, te llama un proveedor exigiendo un pago y hay que revisar sus facturas pendientes de pago. Para redondear te llega un trabajador diciéndote que se le olvidó hacer el marcaje de tiempo por la mañana, y el encargado de fábrica llega detrás diciendo que necesita una ficha de entrega de EPIs. Con un sistema modal, el pobre y sufrido trabajador terminaría bastante estresado. En un sistema como el de Criterium CyP no hay problema, simplemente se van abriendo formularios y cambiando entre ellos de forma totalmente natural.
No hay problema con el número de formularios abiertos de forma simultánea, de hecho hay un sistema de prueba de carga y gestión de memoria que permite abrir y cerrar X formularios y puede manejar hasta 500 formularios abiertos a la vez sin excesivos contratiempos. Por supuesto esta capacidad está determinada por el ordenador donde se ejecuta la aplicación.
El inconveniente de los sistemas que permiten múltiples formularios es que hay que gestionar un adecuado sistema que nos permita movernos entre los mismos. En los MDI se suele solucionar con un listado en un menú del formulario principal. Sin embargo, en aplicaciones SDI como la nuestra hay que implementar un método menos básico.
Algunos escritorios utilizados en Linux agrupan las ventanas de una misma aplicación y permiten su selección individual. El comportamiento en Windows no es este, solo muestra una vez la aplicación y no permite la selección individual de los formularios de la misma. La alternativa sería mostrar todas las ventanas en la barra de tareas para permitir su selección, pero este método masificaría la barra de tareas. Siempre le queda al usuario la posibilidad de seleccionar con el ratón, pero realmente no es un método muy usable. A medida que se van abriendo formularios se hace necesario estar apartando o minimizando algunos de ellos para conseguir la selección apetecida.

Para solucionar esto hemos programado un gestor de formularios específico para nuestra aplicación. Se muestra pulsando la tecla F10. Se podría haber optado por un método mas sexy, en la línea de los conmutadores de aplicaciones actuales, pero hemos preferido optar por la simplicidad y la eficacia. Se muestra un listado de los formularios abiertos. Opcionalmente se muestra una previsualización del formulario, incluso si el mismo está minimizado. Con un simple Intro o DobleClick nos situaremos en el formulario deseado. Nos puede costar cogerle el truco, pero una vez conseguido se hace una prestación insustituible.

Otra necesidad importante para aplicaciones con el tipo de interfaz que utilizamos es la memorización de la posición y tamaño de los formularios. No se preocupe por esto, ya que esta información se guarda en la propia base de datos asociada al usuario.
Para facilitar el posicionar y dimensionar se nos ha ocurrido que sería interesante hacer parcialmente transparente el formulario que estamos moviendo o cambiando de tamaño. Esto nos permite afinar en estas tareas. De hecho esta es una prestación que hemos copiado descaradamente de KDE, aunque como es lógico lo tienen otros escritorios; ya que el proceso de aprendizaje mutuo entre ellos es constante.

(P.D. 02-09-2009: Prestación desactiva, depende excesivamente de las características del equipo donde se ejecuta la aplicación y puede molestar mas que agradar. En un futuro podría ponerse como capacidad opcional.)


Esta prestación va en la línea de otra recientemente incorporada, la posibilidad de modificar la transparencia de un formulario. De esta forma, si no tuviésemos suficiente pantalla para posicionar varios formularios para que sean visibles simultáneamente, podríamos hacer traslúcido un formulario para trabajar sobre el mismo viendo los datos de otro formulario situado detrás.
Así mismo, hemos incorporado a los formularios una función de Roll-Down y Roll-Up que se activa pulsando con el botón derecho del ratón en su barra de título. Es una forma interesante de ocultar provisionalmente un formulario para visualizar la información que hay detrás.


Todas estas prestaciones, junto con MindMapDesk, se meten en el territorio de los gestores de ventanas y entornos de escritorio pero lo cierto es que el trabajo con una aplicación como Criterium CyP es constante e intensivo, por ello tenemos la responsabilidad de hacerselo lo mas placentero posible al usuario.

Producto: 
Tags: