En cualquier aplicación empresarial donde se maneja información y permisos de lectura y escritura de la misma es necesario gestionar de forma sencilla los controles de los formularios y su estado de edición, es decir que estén habilitados o deshabilitados según los criterios de configuración, usuario o circunstancias que se produzcan durante la ejecución. En esta vitamina vamos a aprender a deshabilitar controles de formulario con el API de Velneo V7.

La solución propuesta en esta vitamina permite con una sola instrucción habilitar o deshabilitar todos los controles de un formulario, teniendo en cuenta aspectos importantes como que cuando deshabilitamos los controles no lo haremos a las vistas de datos (rejillas, casilleros, árboles, etc.) pues muestran información por la que debemos dejar al usuario moverse y cuyo control de permisos de edición se hará en el propio objeto.

Para que el usuario puede consultar toda la información del formulario tampoco debemos deshabilitar los separadores de pestañas (subformularios), ni las pilas ni cajas de formularios, tampoco los splitter ni las cajas de grupo. Si quieres cambiar alguno de estos criterios sólo tienes que revisar el array de tiposEnabled de la función deshabilitarControles() añadiendo o quitando los que te interesen. En la documentación de la clase VMainWindow encontrarás el enum de tipos de controles.

Deshabilitar controles de formulario con el API de Velneo V7

Deshabilitar todos los controles con una instrucción Velneo V7

Para implementar esta vitamina sólo tienes que hacer lo siguiente. Añade el código de las funciones deshabilitaControles() y habilitaControles() en un fichero JavaScript en el directorio de scripts. Es conveniente que tengas un repositorio de funciones JavaScript en el proyecto de datos o aplicación más bajo en el árbol de herencia, para que pueda ser usado desde todos los formularios de tus aplicaciones.

En cada formulario puedes ejecutar el siguiente código en el manejador de evento Post-inicializado o en el punto de ejecución donde te interese ya que al ejecutar la función deshabilitaControles( formulario ) estarás haciéndolo con una sola instrucción a todos los controles del formulario sean del tipo que sean.

Recuerda que la primera línea con el #include debes sustituirla por la del fichero JavaScript que hayas añadido en tu repositorio con las funciones deshabilitaControles() y habilitaControles(). Esto puedes hacerlo usando el botón “#i” Asistente: #include otro JavaScript de la toolbar del editor de scripts.

En ese manejador de evento, tras deshabilitar todos los controles, habilito el botón habilitar controles. Es decir, que tras ejecutar ese función genérica siempre podemos habilitar individualmente los controles que nos interesen.

Para habilitar los controles de un formulario, tan sólo tienes que ejecutar este código.

Formulario cnotroles habilitados

A continuación está el código de las funciones deshabilitaControles() y habilitaControles() que debes añadir en un fichero JavaScript del directorio de scripts de tu proyecto de datos o aplicación.

Funciones configurales o personalizadas

Estas funciones que hemos visto son genéricas, pero a partir de ellas podemos crear nuestras propias funciones que habiliten o deshabiliten controles en base a una configuración que puede estar guardada en una tabla o a criterios personalizados en base al usuario, sus grupos de usuario, etc.

Es decir, que la función puede leer información de los identificadores de controles a deshabilitar o habilitar en un momento dado y aplicarlos de forma automática. Por este motivo es tan importante que seamos estrictos a la hora de poner los identificadores de los controles en los formularios de nuestras aplicaciones.

Ventajas y desventajas del API de Velneo V7 respecto al CSS

Esta vitamina demuestra que deshabilitar y habilitar opciones con el API de Velneo V7 y JavaScript es muy potente. En la próxima vitamina 9 veremos lo sencillo que resulta deshabilitar y habilitar controles mediante CSS. A continuación identifico algunas ventajas de hacerlo mediante el API de Velneo V7 y JavaScript o con CSS:

Ventajas de hacerlo con el API de Velneo V7 JavaScript:

  • Muy configurable y personalizable mediante programación.
  • Muy potente al permitir aplicarlo a todas las propiedades y funciones.
  • Código muy reutilizable y de aplicación directa, no en cascada.

Ventajas de hacerlo con CSS:

  • Más sencillo de aplicar.
  • Se aplica en cascada a todos los formularios que se abran desde aquel en el que se haya aplicado el estilo.
  • Permite individualizar el estilo de múltiples controles a la vez

 

Si te ha gustado este artículo, por favor compártelo con los tuyos en las redes sociales

[social_share/]

Share This