Controles

Grupo de comandos de Interfaz que permite interactuar con controles de formulario.

Interfaz: ¿está activado el subcontrol del contenedor de formularios?

Comando de instrucción del grupo Interfaz para separador de formularios, caja de formularios y pila de formularios. Permite conocer si está activo un subformulario concreto de los mismos.

Este comando, al igual que el resto de los comandos de interfaz, solamente puede ser usado en manejador eventos.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista de los subobjetos de tipo separador, caja y pila de formularios declarados en el formulario. Seleccionar el objeto a evaluar

Identificador de subcontrol de formulario

Este parámetro desplegará la lista de los subformularios declarados en el control seleccionado en el parámetro anterior. Seleccionar el que se desea evaluar.

Identificador de variable local booleana de retorno de ok

Variable local que devolverá si el subcontrol está activo (1) o no (0).

Funcionalidad

Este comando de instrucción permite conocer si está activo o no un subformulario concreto de un control de tipo separador, caja o pila de formularios incrustado en un formulario.

Comentarios

Este comando solamente puede ser usado en manejadores de eventos.

Este comando solamente permite actuar sobre sub-controles del formulario en curso; no siendo posible, por tanto, actuar sobre sub-controles de los formularios incluidos dentro de éstos.

Ejemplo

Comprobamos si está activa la rejilla REJ_02 del separador de formularios SEP_FOR

Interfaz: ¿está activo el subcontrol del contenedor de formularios? ( SEP_FOR, REJ_02, ACT )
If ( ! ACT )
    Mensaje ( "No se encuentra activa la rejilla", Información, ,  )
    Finalizar proceso

Interfaz: ¿está habilitado el subcontrol del contenedor de formularios?

Comando de instrucción del grupo Interfaz.

Permite conocer si un subobjeto del control (una pestaña de un separador, por ejemplo) está o no habilitado.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista de los subobjetos de tipo separador, caja y pila de formularios declarados en el formulario. Seleccionar el control sobre el que se desea actuar.

Identificador de subcontrol de formulario

Este parámetro desplegará la lista de los subformularios declarados en el control seleccionado en el parámetro anterior. Seleccionar el que se desea conocer si está o no habilitado.

Identificador de variable local booleana de retorno de ok

Especificación de una variable local que devolverá si el subcontrol está habilitado (1) o no (0).

Funcionalidad

Este comando de instrucción permite conocer si un subformulario de un control de tipo Separador formularios está o no habilitado y guarda en una variable local de tipo booleano su estado. Si es 1 querrá decir que el subcontrol está habilitado, si es 0, que está deshabilitado.

Comentarios

Este comando solamente permite actuar sobre sub-controles del formulario en curso; no siendo posible, por tanto, actuar sobre sub-controles de los formularios incluidos dentro de éstos.

Este comando solamente puede ser usado en manejadores de eventos de objetos.

Ejemplo

Comprobamos si está habilitada la rejilla REJ_02 del separador de formularios SEP_FOR y mostramos su estado mediante un mensaje.

Interfaz: ¿está habilitado el subcontrol del contenedor de formularios? ( SEP_FOR, REJ_02, HAB )
Mensaje ( choose(HAB, "Rejilla habilitada", "Rejilla inhabilitada"), Información, ,  )

Interfaz: ¿está habilitado?

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto que desea comprobar:

Funcionalidad

Este comando de instrucción permite conocer si está habilitado un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco. Si está habilitado devolverá un 1 y si está deshabilitado devolverá un 0.

Comentarios

Este comando solamente puede ser usado en manejadores de eventos.

Además de comprobar si un control está o no habilitado, también podremos habilitarlo o deshabilitado.

Ejemplo

Comprobamos si está habilitado el control de tipo botón BTN_CHECK.

Interfaz: ¿está habilitado? ( BTN_CHECK, HAB )
If ( ! HAB )
    Mensaje ( "No se encuentra habilitado el botón”, Información, ,  )
    Finalizar proceso

Interfaz: ¿está visible?

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a evaluar:

Funcionalidad

Este comando de instrucción permite conocer si es visible o no un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco. Si está visible devolverá un 1 y si está oculto devolverá un 0.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Además de comprobar la visibilidad de un control, también podremos mostrarlo.

Ejemplo

Cortamos la lista de registros REJ del subformulario REJ_01 que se encuentra en el separador de formularios SEP_FOR en el caso de que el subformulario REJ_01 esté visible.

Interfaz: ¿está visible? ( SEP_FOR.REJ_01, VIS )
If ( VIS )
    Interfaz: procesar ( SEP_FOR.REJ_01.REJ, Todas )
        Cortar lista ( 0,  )

Interfaz: ¿tiene foco?

Comando de instrucción del grupo Interfaz tiene o no el foco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a evaluar:

Funcionalidad

Este comando de instrucción permite conocer si un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco tiene o no el foco. Si lo tiene devolverá un 1 y si no lo tiene devolverá un 0.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Además de comprobar si un control tiene o no el foco, también podremos dárselo.

Ejemplo

Si tienen foco el campo NOM establecemos el valor del mensaje en la variable local VAR_MSG que pueda estar mostrándose en el control de texto estático en el formulario.

Interfaz: ¿tiene foco? ( NOM, FOCO )
If ( FOCO )
    Set ( VAR_MSG, "Actualmente tiene foco el campo NOM" )

Interfaz: activar subcontrol del contenedor de formularios

Comando de instrucción del grupo Interfaz.

Permite activar un subformulario concreto de los mismos.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista de los subobjetos de tipo separador, caja y pila de formularios declarados en el formulario. Seleccionar el objeto en el que se desea fijar el foco.

Identificador de subcontrol de formulario

Este parámetro desplegará la lista de los subformularios declarados en el control seleccionado en el parámetro anterior. Seleccionar el que se desea activar.

Funcionalidad

Este comando de instrucción permite activar un subformulario concreto de un control de tipo separador, caja o pila de formularios incrustado en un formulario.

Comentarios

Este comando solamente puede ser usado en manejadores de eventos.

Este comando solamente permite actuar sobre sub-controles del formulario en curso; no siendo posible, por tanto, actuar sobre sub-controles de los formularios incluidos dentro de éstos.

Este comando, al igual que el resto de los comandos de interfaz, solamente puede ser usado en manejadores de eventos de objetos.

Este comando no es funcional en separadores que contengan formularios con la propiedad punto de inserción activada. El motivo es que desde el origen actual no se tiene conocimiento del formulario o formularios añadidos al punto de inserción.

Ejemplo

Activamos un subcontrol u otro dependiendo del valor de la variable REJ.

If ( REJ = 1 )
    Interfaz: activar subcontrol del contenedor de formularios ( SEP_FOR, REJ_01 )
Else
    Interfaz: activar subcontrol del contenedor de formularios ( SEP_FOR, REJ_02 )

Interfaz: deshabilitar

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a deshabilitar:

Funcionalidad

Este comando de instrucción permite deshabilitar un subobjeto de un objeto. Cuando un objeto está deshabilitado, el usuario final no podrá interactuar con él.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Ejemplo: en un formulario podremos ejecutar eventos para que, en función de una condición, mediante el uso de este comando y del comando Interfaz: habilitar, un subcontrol del formulario esté habilitado o no.

También podremos habilitar o deshabilitar subobjetos de un objeto declarando una condición en la propiedad Condición de activo del propio subobjeto.

Este comando de instrucción de proceso no es funcional en el caso de que el control sea un botón.

Ejemplo

En la pérdida de foco del control del campo #NAME podemos comprobar si el campo #NAME de la ficha en curso está vacío deshabilitando el control BTC_ACE (Botón aceptar)

If ( isEmpty(#NAME) )
    Interfaz: deshabilitar ( BTN_ACE )

Interfaz: Establecer estilo de días en calendario

Comando de instrucción que permite configurar la interfaz de los días de calendarios.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Permite seleccionar el control al que se le aplicará el estilo.

Se puede aplicar a los siguientes controles de formularios:

Aplicado desde un manejador de evento del marco AUTOEXEC sin seleccionar control, se aplicará a todos los calendarios de todos los formularios de la aplicación. En este caso lo dispararemos desde la señal de pre-inicialización del marco.

Aplicado desde un manejador de evento de un formulario sin seleccionar control, se aplicará a todos los calendarios del mismo. En este caso lo dispararemos desde la señal de pre-inicialización del formulario.

Si seleccionamos un control específico, se aplica sólo a ese control de ese formulario. En este caso debemos dispararlo desde la señal de post-inicializado del mismo, ya que se debe disparar cuando el control ya ha sido creado.

Fórmula de color de fondo (opcional)

Expresión de tipo fórmula con el código hexadecimal del color de fondo que queremos aplicar. Ejemplo: "#FA1A08".

Fórmula de color de texto (opcional)

Expresión de tipo fórmula con el código hexadecimal del color del texto que queremos aplicar. Ejemplo: "#EBFA08".

Día de la semana (opcional)

Cadena con los números de día de 1 a 7 o letras para los días a los que se aplicará el estilo separados por comas:

  • De 1 a 7, día de la semana de lunes a domingo.

  • "H" o "T" para aplicar estilo al día de hoy (admitir mayúsculas y minúsculas). Ejemplo: "1,2,3,4,5".

  • "S" para aplicar estilo al día seleccionado en el calendario (admitir mayúsculas y minúsculas).

Día/Mes del año (opcional)

Cadena con los días y meses del año a los que se aplicará el estilo en todos los años, separados por comas y con el formato (d/M), ejemplo: "1/1,02/02,10/10".

Fechas (opcional)

En este parámetro podremos especificar, o bien una variable local de tipo fecha con la fecha a la que aplicar el estilo, o bien o una variable local array de tipo fecha con las fechas a las que se quiere aplicar el estilo.

Funcionalidad

Este comando de instrucción permite configurar la interfaz de los días de calendarios.

Comentarios

Si el estilo lo aplicamos a un control de tipo calendario desde un evento que no sea de pre-inicializado, el estilo aplicado no se refrescará hasta que interactuemos con el mismo. Una forma de forzarlo es asignando un valor al campo/variable editado en el control.

Podremos aplicar múltiples comandos con diferentes fechas al mismo control. Así, podremos personalizar colores de los días de lunes a viernes, de los sábados y domingos, de los festivos del año...

Si no se establecen valores en las fórmulas de días ni colores el control se inicializa a su valor inicial por defecto.

Si especificamos días pero no colores no afectará al control.

En caso de aplicar varios estilos para el mismo día, se verá con lo que tenga anteriormente aplicado más lo que aplique el último comando, por ejemplo en un primer comando podemos aplicar colores de fondo a todos y en segundo colores de texto a todos.

Si aplicamos un color de texto o un color de fondo dos veces, se verá el último que se haya aplicado.

Ejemplo

Vamos a personalizar un calendario con los siguientes colores:

Color de fondo para todos los días: blanco.

Color de texto para días hábiles (de lunes a viernes): gris.

Color de texto para fines de semana y festivos: rojo.

Color de texto para el día en curso: azul oscuro.

Color de fondo para el día seleccionado: azul claro.

Queremos aplicarlo a todos los calendarios de la aplicación así que lo ejecutaremos en el evento de pre inicializado del marco AUTOEXEC sin asignar control alguno:

// Rem ( Personalización de calendarios )
// Rem ( Guardar en un array los días festivos del año )
Array: Set ( FESTIVOS, 1, "7/04/2023",  )
Array: Set ( FESTIVOS, 2, "1/05/2023",  )
Array: Set ( FESTIVOS, 3, "15/08/2023",  )
Array: Set ( FESTIVOS, 4, "12/10/2023",  )
Array: Set ( FESTIVOS, 5, "1/11/2023",  )
Array: Set ( FESTIVOS, 6, "6/12/2023",  )
Array: Set ( FESTIVOS, 7, "8/12/2023",  )
Array: Set ( FESTIVOS, 8, "25/12/2023",  )
// Libre
// Rem ( Aplicar color de fondo general )
Interfaz: Establecer estilo de días en calendario ( , "#FFFFFF", , "1,2,3,4,5,6,7", , FESTIVOS )
// Libre
// Rem ( Aplicar color de texto de lunes a viernes )
Interfaz: Establecer estilo de días en calendario ( , , "#928B8B", "1,2,3,4,5", ,  )
// Libre
// Rem ( Aplicar color de texto para fines de semana y festivos )
Interfaz: Establecer estilo de días en calendario ( , , "#D00505", "6,7", , FESTIVOS )
// Libre
// Rem ( Aplicar color de fondo para el día seleccionado )
Interfaz: Establecer estilo de días en calendario ( , "#AAF9FA", , "S", ,  )
// Libre
// Rem ( Aplicar color de fondo para hoy )
Interfaz: Establecer estilo de días en calendario ( , , "#026190", "H", "1,2,3,4,5,6,7",  )

Interfaz: establecer foco

Comando de instrucción que permite establecer el foco en un control.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto sobre el que se quiere fijar el foco:

Funcionalidad

Este comando de instrucción permite fijar el foco en un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

En el caso de rejillas, este comando de instrucción nos permitirá seleccionar una columna de rejilla en la que posicionarse, abriendo la edición en el caso de que esté configurada.

Ejemplo: este comando nos permitirá fijar, desde un evento, el foco en un control concreto del mismo.

Si el objeto de origen es una ventana modal no podrá enviarse el foco a ningún objeto de la ventana que la contenga (por ejemplo, desde un formulario modal no podremos enviar el foco a un sub-objeto del marco principal del proyecto).

Cuando usamos este comando desde un evento de inicializado de un formulario, existe una diferencia funcional entre formularios en vista y formularios en cuadro de diálogo que es necesario conocer, ya que no puede evitarse:

En cuadro de diálogo: sólo se lanza el evento de ganancia de foco del control especificado en el manejador de evento inicializado.

En vista: primero gana foco el primer control de formulario y después gana foco el control especificado en el manejador de evento inicializado. Si el control especificado en el manejador de evento inicializado coincide que es el primer control, el evento sólo se ejecuta una vez.

Cuando establecemos foco con este comando no se dispara el manejador de evento asociado a las señales de pérdida de foco del control ni de ganancia de foco del control que recibe el foco. Esto es así porque, por un lado, somos nosotros los que estamos gestionando el foco, así que debemos ser nosotros los que realicemos la acción necesaria en ese caso (por ejemplo, lanzar el manejador de evento que deba ejecutarse al ganar el foco el control actual). Por otro lado, cuando se ejecuta un manejador de evento no se disparan otras señales y sus manejadores de evento ya que podría dar lugar a recursividades o ejecuciones en cascada no deseadas.

Ejemplo

Antes de aceptar un formulario comprobamos si los campos indicados están vacíos y establecemos el foco en el campo que se ha verificado.

If ( isEmpty(#NAME) )
    Interfaz: establecer foco ( NOM )
    Set retorno proceso = NO
If ( isEmpty(#SEC_ACT) )
    Interfaz: establecer foco ( SEC_ACT_NOM )
    Set retorno proceso = NO

Interfaz: establecer fuente

Comando de instrucción que permite aplicar una fuente principal del proyecto.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto al que se aplicará la fuente:

Nombre de fuente

Nombre de la fuente a aplicar al subobjeto.

Funcionalidad

Permite aplicar una fuente.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

En las propiedades de un proyecto de aplicación, podemos definir fuentes y asignarles un nombre. Con este comando y el nombre que se le ha dado a la fuente podemos fijar a un objeto dicho estilo de elementos. Un ejemplo útil sería, si el usuario no ha rellenado un dato obligatorio en un formulario, lo detectamos y aplicamos con este comando una fuente negrita a la fuente de la etiqueta del campo sin rellenar, con lo que el usuario lo localizará rápidamente.

Ejemplo

Establecemos una fuente específica en el caso de que el control del campo #NAME no tenga contenido estableciendo el foco y el control en dicho control.

If ( isEmpty(#NAME) )
    Interfaz: establecer fuente ( NOM, Nombre_Fuente )
    Interfaz: establecer foco ( NOM )
    Set retorno proceso = NO

Interfaz: establecer hoja de estilo CSS

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto al que se le va a aplicar el css:

Fórmula texto hoja de estilo CSS

Expresión de tipo fórmula con el código fuente del CSS a aplicar. Para facilitar la especificación de la fórmula podremos hacer uso del asistente para edición de fórmulas.

Funcionalidad

Permite modificar de forma dinámica el aspecto visual de un objeto o de un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

El estilo aplicado afectará a todos los sub-objetos del objeto o sub-objeto al que se le ha aplicado. Es decir, si aplicamos una CSS al marco será aplicado a todos los sub-objetos del mismo y a todos las ventanas que se obtengan desde el mismo.

Para obtener información sobre las CSS aplicables a Velneo pulsa aquí.

Pulsa aquí para ver un ejemplo completo de personalización de objetos y controles.

Si en la fórmula vamos a escribir directamente el código fuente correspondiente al CSS a aplicar, debemos tener en cuenta que, dado que la comilla (“) es el carácter que se usa en las fórmulas para delimitar constantes, si en el código fuente del CSS hay comillas, tendremos que sustituir éstas en la fórmula por la secuencia de escape “\c”.

Ejemplo:

Código fuente original de CSS:

nameEdit->setStyleSheet("color: blue;""background-color: yellow;""selection-color: yellow;""selection-background-color: blue;");

Fórmula en Velneo:

"nameEdit->setStyleSheet(\ccolor: blue;\c\cbackground-color: yellow;\c\cselection-color: yellow;\c\cselection-background-color: blue;\c);"

Las hojas de estilo CSS afectan en función del estilo visual. En Windows, por ejemplo, la cabeceras de las rejillas no pueden ser modificadas ya que el estilo visual no lo permite. Si aplicamos un CSS en el marco principal de la aplicación, éste no será aplicado a los objetos disparados desde manejadores de evento del mismo. En este caso debemos aplicar e CSS desde el propio objeto que se dispara.

Ejemplo

Establecemos una hoja de estilo CSS para las rejillas en el manejador de eventos PRE_INI del marco por defecto de la aplicación (AUTOEXEC):

Rem ( Aplicar hoja de estilo )
Interfaz: establecer hoja de estilo CSS ( , "/* - - - CSS REJILLA- - - - */
QTableView {
 selection-background-color: #A6C7EE;
 selection-color: #000;
 column-background-color: #FFF;
 column-color: #757575;
 alternate-background-color: #EEEEEE;
 padding: 5px;
 border-width: 1px;
 border-style: solid;
 border-color: #CECECE;
 background: #FFF;
}" )

Interfaz: establecer hoja de estilo filescript

Comando de instrucción del grupo Interfaz.

Dicha hoja de estilos estará almacenada dentro del proyecto en curso o de un proyecto heredado, dentro de la carpeta de scripts.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto al que se le va a aplicar el css:

Path script file

Fichero CSS a ejecutar. Se desplegará una lista con todos los ficheros accesibles desde el proyecto en curso. Seleccionaremos el deseado. En la ventana de selección del fichero podemos activar la opción aplicar macros. Si se activa lo que se hace es sustituir el id_ref de proyecto por la macro (CurrentProject). De esta forma, cuando movamos el script y el proceso de un proyecto a otro, la referencia se conservará gracias a la macro, apuntando al fichero correspondiente buscándolo en el proyecto en curso.

Funcionalidad

Permite modificar de forma dinámica el aspecto visual de un objeto o de un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco almacenada en un fichero del proyecto o de un proyecto heredado.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

El estilo aplicado afectará a todos los sub-objetos del objeto o sub-objeto al que se le ha aplicado. Es decir, si aplicamos una CSS al marco será aplicado a todos los sub-objetos del mismo y a todos las ventanas que se obtengan desde el mismo.

Para obtener información sobre las CSS aplicables a Velneo pulsa aquí.

Pulsa aquí para ver un ejemplo completo de personalización de objetos y controles.

Las hojas de estilo CSS afectan en función del estilo visual. En Windows, por ejemplo, la cabeceras de las rejillas no pueden ser modificadas ya que el estilo visual no lo permite.

Ejemplo

Establecemos una hoja de estilo CSS de un Script del proyecto en el manejador de eventos PRE_INI del objeto marco por defecto de la aplicación (AUTOEXEC):

Rem ( -------------------------------------------- )
Rem ( Aplicar hoja de estilo desde Scripts)
Rem ( -------------------------------------------- )
Interfaz: establecer hoja de estilo CSS (filescript) ( .AUTOEXEC, (CurrentProject)/Scripts_CSS.css )

Interfaz: establecer paleta

Este comando, si bien sigue funcional en la versión actual, en próximas versiones podrá desaparecer, así que recomendamos su sustitución por el uso de CSS, que podremos aplicar mediante el comando de instrucción de proceso Interfaz: establecer hoja de estilo CSS.

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto al que se aplicará la paleta:

Nombre de paleta

Nombre de la paleta de colores a aplicar al subobjeto.

Funcionalidad

Permite aplicar una paleta de colores.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

En las propiedades de un proyecto de aplicación, podemos definir paletas de colores y asignarles un nombre. Con este comando y el nombre que se le ha dado a la paleta podemos fijar a un objeto dicho estilo de elementos.

Un ejemplo útil sería, si el usuario no ha rellenado un dato obligatorio en un formulario, lo detectamos y aplicamos con “set paleta” un color rojo a la fuente de la etiqueta del campo sin rellenar, con lo que el usuario lo localizará rápidamente.

Ejemplo

Aplicamos la Paleta_1 de colores al control NOM en caso de que la variable local APLICAR_PALETA sea 1.

If ( APLICAR_PALETA = 1 )
    Interfaz: establecer paleta ( NOM, Paleta_1 )

Interfaz: habilitar

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a habilitar:

Funcionalidad

Este comando de instrucción permite habilitar un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco. Cuando un objeto está habilitado, el usuario final podrá interactuar con él, si está deshabilitado, no.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Ejemplo: en un formulario podremos ejecutar eventos para que, en función de una condición, mediante el uso de este comando y del comando Interfaz: deshabilitar, un subcontrol del formulario esté habilitado o no.

También podremos habilitar o deshabilitar subobjetos de un objeto declarando una condición en la propiedad Condición de activo del propio subobjeto.

Ejemplo

Si el campo #NAME de la ficha en curso contiene información el control BTC_ACE (Botón aceptar) será habilitado.

If ( isEmpty(#NAME) = 0 )
    Interfaz: habilitar ( BTN_ACE )

Interfaz: habilitar el subcontrol del contenedor de formularios

Comando de instrucción del grupo Interfaz.

Permite habilitar/deshabilitar un subobjeto del control (una pestaña de un separador, por ejemplo).

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista de los subobjetos de tipo separador, caja y pila de formularios declarados en el formulario. Seleccionar el control sobre el que se desea actuar.

Identificador de subcontrol de formulario

Este parámetro desplegará la lista de los subformularios declarados en el control seleccionado en el parámetro anterior. Seleccionar el que se desea habilitar o deshabilitar.

Fórmula de condición

Expresión de tipo fórmula para establecer la condición que debe cumplirse para que el subcontrol esté habilitado. Para facilitar su introducción podemos hacer uso del asistente para edición de fórmulas.

Funcionalidad

Este comando de instrucción permite habilitar/deshabilitar un subformulario de un control de tipo Separador formularios mediante la especificación de una condición.

Si la condición se cumple, el subcontrol estará habilitado, si no se cumple, estará deshabilitado; es decir, el usuario no podrá acceder al mismo.

Comentarios

Este comando solamente permite actuar sobre sub-controles del formulario en curso; no siendo posible, por tanto, actuar sobre sub-controles de los formularios incluidos dentro de éstos.

Este comando solamente puede ser usado en manejadores de eventos de objetos.

Este comando exige que al menos un subformulario del objeto esté habilitado. En el caso de querer deshabilitarlos todos lo que tendremos que hacer es deshabilitar el control en sí (el separador) mediante el uso del comando de instrucción Interfaz: deshabilitar en el formulario.

Ejemplo

Habilitamos un sub-control u otro dependiendo del valor de la variable REJ.

If ( REJ = 2 )
    Interfaz: habilitar subcontrol del contenedor de formularios ( SEP_FOR, REJ_02 )
Else
    Interfaz: habilitar subcontrol del contenedor de formularios ( SEP_FOR, REJ_01 )

Interfaz: mostrar

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a mostrar:

Funcionalidad

Este comando de instrucción permite hacer visible un sub-objeto del objeto actual o de cualquiera de sus sub-objetos o del marco.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Ejemplo: en un formulario podremos ejecutar eventos para que, en función de una condición, mediante el uso de este comando y del comando Interfaz: ocultar, un subcontrol del formulario sea mostrado u ocultado.

También podremos mostrar u ocultar subobjetos de un objeto declarando una condición en la propiedad Condición visible del propio subobjeto.

Ejemplo

Mostramos los controles en caso de que el usuario sea administrador.

If ( sysIsAdministrator )
    Rem ( Botón suprimir )
    Interfaz: mostrar ( BTN_SUP )

Interfaz: ocultar

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto a ocultar:

Funcionalidad

Este comando de instrucción permite ocultar un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Ejemplo: en formulario podremos ejecutar eventos para que, en función de una condición, mediante el uso de este comando y del comando Interfaz: mostrar, un control del mismo sea mostrado u ocultado.

También podremos mostrar u ocultar subobjetos de un objeto declarando una condición en la propiedadCondición visible del propio subobjeto.

Este comando de instrucción no es funcional para ocultar columnas de rejillas.

Ejemplo

Ocultar los controles en caso de que el usuario no sea administrador.

If ( ! sysIsAdministrator )
    Interfaz: ocultar ( BTN_ACE_SEG )
    Rem ( Botón suprimir )
    Interfaz: ocultar ( BTN_SUP )

Interfaz: quitar foco

Comando de instrucción del grupo Interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de control

Este parámetro desplegará la lista con todos los objetos y sub-objetos accesibles desde el origen actual. Si algún objeto contiene a su vez otros sub-objetos, junto a su identificador aparecerá un nodo que podremos desplegar para acceder a los mismos. Seleccionar el objeto/sub-objeto al que se desea quitar el foco:

Funcionalidad

Este comando de instrucción permite quitar el foco de un subobjeto del objeto en curso o de cualquiera de sus sub-objetos o del marco.

Comentarios

Este comando, puede ser usado tanto en manejadores de eventos.

Ejemplo: este comando nos permitirá quita, desde un evento, el foco a un control concreto del mismo y llevarlo, mediante el comando Interfaz: activar foco objeto, a otro control.

Si el objeto de origen es una ventana modal no podrá quitarse el foco de ningún objeto de la ventana que la contenga (por ejemplo, desde un formulario modal no podremos quitar el foco a un sub-objeto del marco principal del proyecto).

Ejemplo

Comprobamos si tiene foco el control FCH_ALTA y si lo tiene quitamos el foco de dicho control y lo establecemos en el control TXT_HOR.

Interfaz: ¿tiene foco? ( FCH_ALTA, TIENE )
If ( TIENE )
    Interfaz: quitar foco ( FCH_ALTA )
    Interfaz: establecer foco ( TXT_HOR )

Última actualización