AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / Desarrollar una aplicación o un sitio web / Controles, ventanas y páginas / Controles: opciones y acciones
  • Presentación
  • Características de un control: entrada obligatoria
  • Entrada obligatoria con bloqueo
  • Entrada obligatoria sin bloqueo
  • Textos y opciones de visualización: ajustes de la entrada obligatoria
  • Características de un control: entrada no válida
  • Configurar la verificación de la entrada
  • Textos y opciones de visualización: ajustes de la entrada no válida
  • Ejemplo
  • Gestión de la entrada obligatoria y no válida mediante programación
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
WINDEV y WINDEV Mobile incluyen varias opciones para gestionar las entradas obligatorias o no válidas, tanto en el editor de ventanas como mediante programación.
Estas opciones están disponibles para los siguientes controles:
  • Control Campo de entrada,
  • Control Combo Box estándar o con entrada,
  • Control Casilla de verificación y Botón de opción,
  • Control Valoración.
Puede indicar la entrada obligatoria:
  • En el texto de ayuda (si el control está vacío),
  • Cambiando el estilo de control,
  • Con un ícono de entrada obligatoria,
  • Con un texto de explicación.
Características de un control: entrada obligatoria
WINDEV y WINDEV Mobile incluyen dos modos de gestión de entrada obligatoria:
  • entrada obligatoria con bloqueo,
  • entrada obligatoria sin bloqueo.

Entrada obligatoria con bloqueo

La entrada obligatoria con bloqueo impide que el usuario salga de los controles requeridos.
Para configurar la entrada obligatoria con bloqueo en un control:
  1. Abra la ventana de descripción del control.
  2. En la pestaña "Detalles", en "Entrada obligatoria/no válida":
    • Seleccione la opción "Entrada obligatoria".
    • Seleccione la opción "Impedir salir del control".
    Observación: para configurar la indicación de la entrada obligatoria, haga clic en "Textos y opciones de visualización"..
  3. Valide la ventana de descripción del control.

Entrada obligatoria sin bloqueo

La entrada obligatoria sin bloqueo permite comprobar al final si algún control requerido ha quedado vacío. Esto evita que el usuario permanezca bloqueado mientras introduce los datos.
Para configurar la entrada obligatoria sin bloqueo en un control:
  1. Abra la ventana de descripción del control.
  2. En la pestaña "Detalles", en "Entrada obligatoria/no válida":
    • Seleccione la opción "Entrada obligatoria".
    • Seleccione "Utilizar InvalidInputDetect".
    Observación: para configurar la indicación de la entrada obligatoria, haga clic en "Textos y opciones de visualización"..
  3. Valide la ventana de descripción del control.
  4. En el código de validación de la ventana (por ejemplo, en el botón utilizado para agregar datos a una base de datos), utilice la función InvalidInputDetect. Esta función comprueba si se han rellenado todos los controles de entrada obligatoria en la ventana actual. Los controles que no cumplan con los requisitos se resaltarán, según las opciones definidas en "Textos y opciones de visualización".
Observación: En el evento opcional "Autorización para cerrar" también se pueden validar los diferentes elementos de una ventana y llamar a la función InvalidInputDetect. Si este evento devuelve False, la ventana actual no se cerrará.

Textos y opciones de visualización: ajustes de la entrada obligatoria

El botón "Textos y opciones de visualización" en la pestaña "Detalles" de la ventana de descripción permite definir cambios en la apariencia del control.
Hay dos modos de visualización disponibles:
  • mostrar una indicación: resalta el control de entrada obligatoria si está vacío ANTES de que se ejecute la función InvalidInputDetect.
  • mostrar un error: resalta el control de entrada obligatoria si está vacío DESPUÉS de que se ejecute la función InvalidInputDetect.
En ambos casos, hay varias opciones disponibles:
  • Modificar estilo del control: Esta opción cambia el estilo del control. El estilo de la indicación y el error se puede establecer en la pestaña "Estilo" del control.
  • Mostrar ícono de entrada obligatoria: Esta opción muestra un ícono específico en el control. El ícono y su posición en relación con el área de entrada se pueden definir en la pestaña "Estilo" del control ("Entrada obligatoria (texto de ayuda/error): Explicación e ícono", botón "Ícono".
    Si se selecciona esta opción, se puede introducir el texto de explicación. Este texto se mostrará al pasar por encima del control y al hacer clic en el ícono. Observación: Si no se especifica el texto de explicación, se mostrará un texto predeterminado.
  • Mostrar texto de explicación: Muestra el texto de explicación debajo del control. Si no se especifica el texto de explicación, se mostrará un texto predeterminado. Atención: Esta opción modifica la interfaz. Si se selecciona esta opción, el texto de ayuda seleccionado se muestra directamente debajo del control en la ventana en modo de edición. Puede que necesite adaptar la interfaz para que el control se muestre en su totalidad.
Características de un control: entrada no válida
WINDEV y WINDEV Mobile permiten comprobar si la entrada corresponde a una máscara definida con una variable de tipo InputMask. Si no corresponde, la entrada se considera no válida cuando se llama a la función InvalidInputDetect.

Configurar la verificación de la entrada

Para configurar la verificación de la entrada en un control:
  1. Defina una variable de tipo InputMask que corresponde a la máscara de entrada que se aplicará al control.
    Atención: No olvide definir el procedimiento WLanguage llamado por la propiedad CheckIfValidInput de la variable InputMask. Este procedimiento se llamará automáticamente cuando se utilice la función InvalidInputDetect para determinar si el texto introducido es válido.
  2. Defina la máscara de entrada mediante la propiedad InputMask en el código del control.
  3. Abra la ventana de descripción del control.
  4. En la pestaña "Detalles", en "Entrada obligatoria/no válida":
    • Seleccione "Utilizar InvalidInputDetect".
    • Configure las opciones para indicar la entrada obligatoria en "Textos y opciones de visualización".
  5. Valide la ventana de descripción del control.
  6. En el código de validación de la ventana (por ejemplo, en el botón utilizado para agregar datos a una base de datos), utilice la función InvalidInputDetect. Esta función perite comprobar si hay entradas no válidas o vacías.

Textos y opciones de visualización: ajustes de la entrada no válida

El botón "Textos y opciones de visualización" en la pestaña "Detalles" de la ventana de descripción permite definir cambios en la apariencia del control.
Si la entrada no es válida, existen varias opciones:
  • Modificar estilo del control: Modifica el estilo de control. El estilo de los diferentes elementos de la entrada no válida puede definirse en la pestaña "Estilo" del control.
  • Mostrar ícono de entrada obligatoria: Muestra un ícono específico en el control. El ícono y su posición en relación con el área de entrada se pueden definir en la pestaña "Estilo" del control ("Entrada no válida: Explicación e ícono", botón "Ícono".
    Si se selecciona esta opción, se puede introducir el texto de explicación. Este texto se mostrará al pasar por encima del control y al hacer clic en el ícono. Observación: Si no se especifica el texto de explicación, se mostrará un texto predeterminado.
  • Mostrar texto de explicación: Muestra el texto de explicación debajo del control. Si no se especifica el texto de explicación, se mostrará un texto predeterminado. Atención: Esta opción modifica la interfaz. Si se selecciona esta opción, el texto de ayuda seleccionado se muestra directamente debajo del control en la ventana en modo de edición. Puede que necesite adaptar la interfaz para que el control se muestre en su totalidad.

Ejemplo

Este ejemplo incluye un control de Campo de entrada (utilizado para introducir un número de teléfono) y un botón de verificación.
  • El evento "Salida" contiene el siguiente código:
    MySelf.InputMask = gMaskPhone
  • El código de inicialización del proyecto contiene el siguiente código, el cual define la variable de tipo InputMask:
    gsMaskPhone is string = "99 99 99 99 99"
    gMaskPhone is InputMask
     
    gMaskPhone.CheckIfValidInput = CheckIfValidInput
    gMaskPhone.ValidateDuringInput = ValidateDuringInput
    gMaskPhone.FormatDuringInput = FormatDuringInput
    gMaskPhone.FormatDuringExit = FormatDuringExit
    gMaskPhone.FormatDuringEntry = FormatDuringEntry
    gMaskPhone.FormatDuringAssignment = FormatDuringAssignment
     
    INTERNAL PROCEDURE CheckIfValidInput(sText is string): boolean
    RETURN MatchRegularExpression(sText , "[0-9 ]*") _AND_
    Length(StringFormat(sText, ccIgnoreInsideSpace)) = 10
    END
     
    INTERNAL PROCEDURE FormatDuringInput(LOCAL sTextBefore is string,
    LOCAL nCursorBefore is int,
    LOCAL nEndCursorBefore is int, sTextAfter is string,
    nCursorAfter is int,
    nEndCursorAfter is int)
    IF Length(sTextBefore) > Length(sTextAfter) THEN RESULT
    //No action if deleting
    // if at the end
    IF nEndCursorAfter = Length(sTextAfter) +1 THEN
    // include " " if needed at this location
    IF Middle(gsMaskPhone, nEndCursorAfter, 1) = " " THEN
    sTextAfter += " "
    nEndCursorAfter ++
    nCursorAfter = nEndCursorAfter
    END
    END
    END
     
    INTERNAL PROCEDURE ValidateDuringInput(sText string): boolean
    RETURN MatchRegularExpression(sText , "[0-9 ]*")
    END
     
    INTERNAL PROCEDURE ValidateDuringExit(sText string): boolean
    RETURN MatchRegularExpression(sText , "[0-9 ]*")
    END
     
    INTERNAL PROCEDURE FormatDuringExit(sText_INOUT is string)
    FormatStringToPhoneNumber(sText_INOUT)
    END
     
    INTERNAL PROCEDURE FormatDuringEntry(sText_INOUT is string)
    FormatStringToPhoneNumber(sText_INOUT)
    END
    INTERNAL PROCEDURE FormatDuringAssignment(sText_INOUT is string)
    FormatStringToPhoneNumber(sText_INOUT)
    END
     
    INTERNAL PROCEDURE FormatStringToPhoneNumber(sText_INOUT is string)
    sOut is string = ""
    sText_INOUT = StringFormat(sText_INOUT, ccIgnoreInsideSpace + ccIgnoreSpace)
    let nText = 1
    FOR n = 1 _TO_ Length(gsMaskPhone)
    IF nText > Length(sText_INOUT) THEN BREAK
    IF gsMaskPhone [n] = " " THEN
    sOut += " "
    ELSE
    sOut += sText_INOUT[nText]
    nText ++
    END
    END
    sText_INOUT = sOut
    END
  • El botón de verificación contiene el siguiente código:
    InvalidInputDetect()
Gestión de la entrada obligatoria y no válida mediante programación
WINDEV y WINDEV Mobile incluyen diferentes propiedades y funciones para gestionar la entrada obligatoria y no válida mediante programación:
  • Propiedades disponibles:
    InvalidInputMessageLa propiedad InvalidInputMessage obtiene y establece el mensaje que se mostrará si el control contiene datos no válidos (máscara de entrada o valor fuera de límites).
    InvalidInputPreventExitLa propiedad InvalidInputPreventExit permite determinar si es posible salir del control en caso de entrada no válida.
    MandatoryInputEl MandatoryInput Property se utiliza para determinar si se requiere un control y para activar o desactivar la entrada de datos requerida.
    MandatoryInputMessageEl MandatoryInputMessage Property se utiliza para identificar y establecer el mensaje que se mostrará si el control se deja vacío (cuando el MandatoryInput Property está activado).
  • Funciones disponibles:
    InvalidInputDetectDetecta y señala un error en los controles con entrada obligatoria que se dejan vacíos y/o con datos no válidos.
    InvalidInputListControlCrea una lista de controles con entrada obligatoria o datos no válidos.
    InvalidInputShowMessageMuestra un error de entrada no válido para el control especificado.
Versión mínima requerida
  • Versión 26
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 19/06/2023

Señalar un error o enviar una sugerencia | Ayuda local