Hacer campos de solo lectura en ventanas. Resumen Modulo Nivel Requerimientos Funciones universales, Sistema B1 Validaciones. Avanzado. 2.9.0.0 o superior. Escenario. El cliente desea que los campos de Teléfono Móvil y Proyecto, en la pestaña General de los Datos Maestros de Socios de Negocios sean de solo lectura. <Imagen> Configuración necesaria. Para hacer el campo Teléfono Móvil sea de solo lectura: 1. Una función universal de tipo Macro que cambie el foco y deshabilite el campo de Teléfono Móvil. 2. Un sistema de B1 Validación que determine cuando el usuario trata de poner el foco en el campo de Teléfono Móvil. Para hacer que el campo de selección del proyecto sea de solo lectura. 1. Una función universal de tipo Macro que cambie el foco a otro campo y deshabilite la casilla de selección del proyecto. 2. Una función universal de tipo Macro que bloquee el evento. 3. Un sistema B1 Validación que valide cuando el usuario trate de hacer clic en la casilla de selección del proyecto. 4. Un sistema de B1 Validación cuando el usuario trate de seleccionar algo en la casilla de selección de proyecto. Paso 1. Haciendo el campo de teléfono móvil de solo lectura. El primer paso es hacer que el campo del Teléfono Móvil sea de solo lectura. Para hacer esto debemos crear una función universal de tipo Macro, que mueva el foco a otro campo y deshabilite el campo de Teléfono Móvil. Posteriormente utilizaremos el Sistema B1 Validación para disparar nuestra función en el momento indicado. Para crear funciones universales ingresar a Gestión > Add-Ons > B1 Usability Package > Configuración de Módulos > Funciones universales: Configuración. Iniciamos cambiándonos a modo Crear y seleccionando la Función universal de tipo Macro e ingresamos el siguiente código: Focus($[$43.0.0]); Disable($[$51.0.0]); Las siguientes pantallas nos muestran la función universal creada, con algunos comentarios informativos: Para hacerlo más fácil de describir, nombraremos esta función universal ”Teléfono móvil deshabilitado”. Cuando trabaje con funciones universales similar a la anterior, necesita configurar el Sistema B1 Validación para determinar el momento específico en el cual se va a utilizar. Mejor dicho cuando el usuario trate de poner el foco en el campo haciéndole clic en la ventana de Datos Maestros de Socio de Negocios. Puede encontrar la ventana de Sistema B1 Validación en Gestión > Add-Ons > B1 Usability Package > Módulos Configuración > Sistema B1 Validación. En esta ventana, necesita llenar la información correcta de cuando ejecutar la función universal. Como estamos tratando de hacer de solo lectura el campo en la ventana de Datos Maestro de Socio de Negocios, necesitamos escribir en Tipo de formulario 132. Puede encontrar el Uid (132) habilitando en Vista la Información del Sistema. El campo que haremos de solo lectura es el 51, número que llenaremos en el campo Artículo. Queremos que esta validación tome lugar en todos los estatus del formulario, por lo cual seleccionaremos Todo en la casilla de selección de Modo de formulario. Queremos ejecutar esto cuando el campo, en este caso el Teléfono Móvil, reciba el clic del usuario, así que seleccionamos en BeforeAction la opción de False. El resto de las opciones de configuración las dejamos de la misma manera, salvo en el campo de selección de la función universal que se ejecutará cuando la condición se cumpla. Esto se captura en la sección llamada Condición en donde seleccionaremos la función universal creada con anterioridad. La siguiente pantalla muestra la ventana con la configuración finalizada. Paso 2. Haciendo el campo de selección de proyecto de tipo solo lectura. El segundo paso es hacer el campo de selección de proyecto de solo lectura. Esto requiere un poco más de esfuerzo, sin embargo, el esfuerzo extra requerido es limitado. Para realizar esto, necesitamos crear dos funciones universales de tipo Macro y configurar un Sistema B1 Validación para ejecutarlas en el momento indicado. Como tenemos dos Funciones universales, requerimos dos Sistema B1 Validación. La primera función universal quedaría de la siguiente manera: Focus($[$43.0.0]); Disable($[$222.0.0]); La imagen que se muestra a continuación muestra la Función Universal terminada con algunos comentarios informativos. A esta función universal la llamaremos: ”Deshabilitar proyecto”. La siguiente Función Universal que se necesita es la siguiente: Block(); Nuevamente, esta función universal será de tipo Macro. La imagen a continuación muestra cómo se vería creada incluyendo algunos comentarios de la funcionalidad. La Función Universal anterior la guardaremos con el nombre Deshabilitar Combobox proyecto. Una vez que hemos configurados nuestras dos Funciones Universales, configuraremos el Sistema B1 Validación para ejecutarlas en un momento específico. Como comentamos anteriormente, tenemos dos funciones universales a ejecutar. El formulario sigue siendo 134 (Datos Maestros de Socio de Negocio). El campo de selección de proyecto es el Uid 222, valor que ingresaremos en el campo Artículo. Seleccionamos el valor Todo en la casilla Modo de formulario. El evento que validará será el Clic. BeforeAction será True (verdadero) ya que queremos que se ejecute antes de que acepte el foco en la casilla de selección. El resto de las opciones las dejaremos por defecto, excepto en la cual elegimos la función universal llamada Deshabilitar Proyecto la cual se ejecutará. La siguiente pantalla muestra la Sistema B1 Validación con la configuración. Para ejecutar la función universal que hemos creado para que el campo sea de solo lectura, requerimos una Sistema B1 Validación adicional. El formulario y el Artículo son los mismos, también ejecutaremos en todos los Modos del formulario así que seleccionamos el valor Todos. Ponemos el valor true en la casilla BeforeAction, ya que queremos que se ejecute antes de que puedan seleccionar algo en la casilla. Las demás opciones se dejan por defecto excepto donde seleccionamos la función universal llamada Deshabilitar Proyecto2. La siguiente imagen muestra cómo quedaría la configuración mencionada. Uso de la funcionalidad. Probar esta funcionalidad es muy sencillo. Solo ingrese a la ventana de Datos Maestros de Socio de Negocios y trate se ingresar a los campos que acaba de configurar como de solo lectura. Hay un par de maneras diferentes de ingresar al campo, para estar seguros que funciona como debe de ser, ambos métodos deben de ser probados. 1. Haciendo clic en el campo. 2. Presionando la tecla TAB hasta llegar al campo. Estos dos métodos son los básicos para posicionarse en un campo, pero existen otros métodos aun mas complicados. Diferentes tipos de campos funcionan de manera diferente y deberán ser probados de manera diferente. El campo de selección de proyecto puede ser seleccionado en los modos Actualizar y Ok, lo que desbloquea el campo. Después de esto si presiona TAB y selecciona el campo sería posible. Sin embargo si trata de seleccionar usando el Mouse, lo posicionará en la casilla de Tel.1, y bloqueará el campo de proyecto. Utilizar el teclado para seleccionar un valor no será posible, ya que el campo está bloqueado antes de ser seleccionado. Si estas pruebas son exitosas, sus respectivos campos ahora son de solo lectura.