Diálogos

Grupo de comandos de Interfaz que agrupan comandos que generan cuadros de diálogo.

Cambio de contraseña

Comando de instrucción del grupo interfaz que presenta el cuadro de diálogo del sistema para el cambio de la contraseña del usuario en Velneo vServer.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de expresión regular

Mediante una fórmula, estableceremos la expresión regular que queramos que cumpla la contraseña a establecer.

Si en el servidor tenemos configurada una expresión regular para la validación de contraseñas y dejamos este parámetro en blanco, el sistema usará la configurada en el servidor para su validación. Si en este parámetro establecemos una, debemos asegurarnos de que concuerde con la establecida en el ámbito del servidor.

Identificador de la variable local booleana de retorno del resultado de la comprobación

En la variable especificada en este parámetro se retornará 1 si la contraseña cumple con la expresión regular indicada en el parámetro anterior y 0 en caso contrario.

Identificador de la variable local alfabética de retorno de contraseña (sha-3) (Opcional)

En la variable que especifiquemos en este parámetro, se devolverá la contraseña introducida por el usuario con encriptación sha-3.

Identificador de la variable local booleana de retorno de ok (opcional)

Variable local del proceso donde se retornará si el usuario ha aceptado (1) o no (0) el cuadro de diálogo de cambio de contraseña.

Funcionalidad

Al ejecutar el comando se mostrará la ventana de cuadro de diálogo de cambio de contraseña.

Si el usuario acepta se comprobará la expresión regular del primer parámetro contra la contraseña introducida por el usuario. Retornará en la variable del segundo parámetro el resultado de la comprobación, 1 si es correcta o 0, si no lo es.

Si no es correcta, no se modifica la contraseña, sólo se cambia la contraseña si previamente el resultado de la comprobación de la expresión regular ha sido correcto.

Si la contraseña es correcta, retornará en la variable local del tercer parámetro el hash en SHA-3 de la contraseña introducida por el usuario.

Si el usuario acepta, la variable local de retorno de Ok tendrá valor 1, si cancela el diálogo, la variable local de retorno de Ok será 0 y la contraseña del usuario será cambiada en el servidor de Velneo.

Comentarios

La siguiente expresión regular nos permite verificar que una contraseña contiene letras mayúsculas, letras minúsculas, caracteres numéricos y que su tamaño sea de 6 a 12 caracteres.

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$

En este ejemplo, (?=.*\d) verifica la existencia de un carácter numérico, (?=.*[a-z]) la de una letra minúscula y (?=.*[A-Z]) la de una letra mayúscula. Por último, la longitud la verificamos con los valores entre llaves {6,12}. Para ampliar información, ver el capítulo dedicado a las expresiones regulares.

Importante: si la expresión regular la establecemos directamente en una fórmula (o bien en el propio parámetro o bien previamente en el proceso en un comando set), debemos recordar que el carácter \ es el delimitador de las secuencias de escape, por lo tanto, si queremos que no sea tomado como tal sino como el carácter propiamente dicho, tendremos que ponerlo por duplicado, por lo que la fórmula sería:

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$

Ejemplo

Procedemos a cambiar la contraseña usando la expresión regular comentada anteriormente verificando si se introducen los caracteres correctos. Posteriormente mostramos la contraseña encriptada.

Cambio de contraseña ( "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,12}$", CUMPLE_EXPRESION, ENCRIPTADA, OK )
If ( OK )
    If ( ! CUMPLE_EXPRESION )
        Mensaje ( "Contraseña no válida", Información, ,  )
        Finalizar proceso
    Else
        Mensaje ( "Contraseña encriptada: " + ENCRIPTADA, Información, ,  )

Editor de dibujos

Comando de instrucción que edita la imagen contenida en un campo de Velneo.

Origen de la instrucción: ficha de la tabla en curso.

Destino del subproceso: ninguno.

Parámetros

Identificador de campo objeto dibujo

Identificador de un campo de tipo objeto dibujo de la tabla en curso.

Título opcional ventana (opcional)

Expresión de tipo fórmula con el título a presentar en la venta del editor de dibujos.

Funcionalidad

edita la imagen contenida en un campo de Velneo.

Comentarios

Este comando no genera transacción por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.

En un proceso, para que las modificaciones realizadas en la imagen sean guardadas en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura, por ejemplo, mediante el uso de comandos del tipo Modificar ficha seleccionada, etc.

El editor de dibujos de Velneo incluye dos botones: “Aceptar” y “Cancelar”, si el usuario modifica la imagen si pulsa “Aceptar” se guardarán los cambios, si pulsa “Cancelar”, no.

Para facilitar la creación de la fórmula del segundo parámetro podremos hacer uso del asistente para edición de fórmulas.

El proceso quedará paralizado mientras el diálogo permanezca abierto. Una vez haya sido cerrado, el proceso continuará su ejecución.

Este comando solamente podrá ser usado en procesos ejecutados en primer plano. No es funcional el procesos ejecutados en 2º plano (multitarea) ni en tercer plano (en el servidor) ni en 4º plano (en el servidor, asíncrono).

Ejemplo

Leemos el registro 5 de usuarios y editamos el campo FOTO con el editor de editor de dibujos.

Cargar lista ( USUARIOS@ejemplo, ID, 5, , ,  )
    Seleccionar ficha por posición (  1 )
    Modificar ficha seleccionada
        Editor de dibujos ( FOTO, "Edición de fotografía" )

Interfaz: Configurar overlay

Comando de instrucción de proceso que permite añadir una capa oscura por debajo de las ventanas modales, pudiendo personalizar tanto el color como el % de transparencia.

Origen de la instrucción: ninguno.

Destino del subproceso: ninguno.

Parámetros

Fórmula de color (opcional)

Nos permitirá especificar el color que queremos usar.

El color podremos especificarlo tanto en formato hexadecimal (ejemplo: "#2D90F2"), como por su nombre (ejemplo: "red").

Si se deja vacío, asumirá el color por defecto, que es el negro.

Fórmula de transparencia (opcional)

Nos permitirá especificar el porcentaje de transparencia que tendrá esa capa de color. Debe ser un número comprendido entre 0 y 100 (0, sin transparencia, 100 totalmente trasparente). Si se deja vacío, asumirá el valor por defecto, que es 72.

Funcionalidad

Este comando de instrucción de proceso permite añadir una capa oscura por debajo de las ventanas modales usando el color y el porcentaje de trasparencia que se indique en sus parámetros. Si se deja vacío alguno de ellos, tomará los valores por defecto: color = negro y transparencia = 72).

Esta capa oscura ayuda al usuario a entender que solo la ventana modal está activa y que el resto de la interfaz no es funcional.

Comentarios

Solo si no resolvemos un parámetro asumirá el valor por defecto. Es decir, que si queremos parametrizarlo y lo resolvemos con campos o variables y éstos están vacíos, asumirían un color erróneo en el caso del color y un 0 en el caso de la transparencia.

El comando se aplicará en toda la aplicación a partir del momento en el que se ejecute, así que lo habitual será lanzarlo en desde un manejador de evento del marco.

Si queremos parametrizarlo, podríamos guardar la información en un registro de una tabla de la aplicación o en variables globales en disco y aplicarlo desde un manejador de evento del marco.

Ejemplos

Aplicar el overlay con los valores por defecto en el manejador de evento de pre-inicializado del marco:

Interfaz: Configurar overlay ( ,  )

Tenemos una tabla con un único registro donde guardamos los parámetros configurables de la aplicación, entre ellos tenemos los campos COLOR (alfabético) y TRANSPARENCIA (numérico) para configurar el overlay y en el formulario donde se editan añadimos un botón "aplicar", que dispara el manejador de evento siguiente:

// Rem ( Comprobamos si tienen valor los dos campos )
If ( (#TRANSPARENCIA!0) & ( #COLOR!"") )
	// Rem ( Si tiene los dos parámetros los usamos para aplicar el overlay )
	Interfaz: Configurar overlay ( #COLOR, #TRANSPARENCIA )
Else if ( #TRANSPARENCIA!0 )
	// Rem ( Si solo tiene transparencia, se aplica overlay solo con la transparencai )
	Interfaz: Configurar overlay ( , #TRANSPARENCIA )
Else if ( #COLOR ! "" )
	Libre
	// Rem ( Si solo tiene el color, se aplica overlay solo con la transparencia )
	Interfaz: Configurar overlay ( #COLOR,  )
Else
	Libre
	// Rem ( Si ambos están vacíos, aplicar configuración por defecto )
	Interfaz: Configurar overlay ( ,  )

Comando de instrucción que nos permite establecer la posición de un formulario en cuadro de diálogo y su tamaño.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Posición X (opcional)

Expresión de tipo fórmula con la posición en el eje X donde queremos situar la esquina superior izquierda de formulario. Debe ser un valor numérico entero.

Puede ser un valor negativo. Útil cuando se trabaja con varias pantallas para abrirlo en la pantalla izquierda cuando la aplicación la estamos ejecutando en la derecha.

Si se deja vacío, se presentará centrado en pantalla en el eje X.

En Linux no es posible establecer posiciones fuera de la pantalla. El sistema no lo va a permitir y lo va a ajustar a los límites de la misma. En Windows y en macOS sí.

Posición Y (opcional)

Expresión de tipo fórmula con la posición en el eje Y donde queremos situar la esquina superior izquierda de formulario. Debe ser un valor numérico entero.

Puede ser un valor negativo. Útil cuando se trabaja con varias pantallas para abrirlo en la pantalla izquierda cuando la aplicación la estamos ejecutando en la derecha.

Si se deja vacío, se presentará centrado en pantalla en el eje Y.

En Velneo Web este parámetro no permite valores negativos (restricción del navegador).

En Linux no es posible establecer posiciones fuera de la pantalla. El sistema no lo va a permitir y lo va a ajustar a los límites de la misma. En Windows y en macOS sí.

Tipo de ajuste de tamaño (opcional)

Permite configurar el tipo de ajuste del tamaño del formulario. Los valores posibles son:

  • Automático en base al contenido: el tamaño del formulario se ajustará automáticamente en función de su contenido.

  • Personalizado. Nos permitirá establecer un tamaño personalizado.

Si usamos este comando de instrucción de proceso en un manejador de evento de Post-Inicializado de un formulario sin layouts, esta propiedad no puede tener el valor Automático en base al contenido, ya que en ese caso no se visualizará el cuadro de diálogo. Para resolverlo hay que usar el valor Personalizado indicando el ancho y alto deseado, aunque lo aconsejable es usar siempre layouts para que el contenido crezca/decrezca de manera correcta.

Ancho personalizado (opcional)

Si en el parámetro tipo de ajuste de tamaño hemos seleccionado el valor personalizado, en ese parámetro especificaremos el ancho, en píxels, que debe tener el formulario. El tamaño lo especificaremos mediante una fórmula, por lo que podrá tratarse de un dato constante, una variable, etc. Si lo dejamos vacío, tomará el tamaño dado en diseño.

Alto personalizado (opcional)

Si en el parámetro tipo de ajuste de tamaño hemos seleccionado el valor personalizado, en ese parámetro especificaremos el alto, en píxels, que debe tener el formulario. El tamaño lo especificaremos mediante una fórmula, por lo que podrá tratarse de un dato constante, una variable, etc. Si lo dejamos vacío, tomará el tamaño dado en diseño.

Funcionalidad

Este comando de instrucción de proceso permite establecer posición y tamaño de un cuadro de diálogo.

Comentarios

El formulario tiene que estar configurado como cuadro de diálogo. Habitualmente el comando lo ejecutaremos en el evento anterior a su creación. Pero realmente podremos ejecutarlo una vez abierto el formulario si nos interesa cambiar su posición y/o dimensiones.

Ejemplo

Interfaz: Establecer posición y tamaño de cuadro de diálogo ( 0, 0, Personalizado, 800, 600 )

Interfaz: notificación

Comando de instrucción que nos permite mostrar notificaciones sin bloqueo de la interfaz.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula del mensaje

Expresión de tipo fórmula con el texto a presentar en la notificación. Podemos usar etiquetas html para formatear el texto.

Icono del mensaje

Nos permite mostrar un icono que se mostrará a la izquierda del texto de la notificación; por ejemplo, un icono de advertencia, peligro, información... Podemos seleccionar un dibujo declarado tanto en el proyecto en curso como en proyectos heredados. En el caso de que no queramos usar ningún icono, seleccionaremos el valor .ninguno.

Icono de cierre

Nos permite personalizar el icono de cierre que se usa por defecto para las notificaciones. Podemos seleccionar un dibujo declarado tanto en el proyecto en curso como en proyectos heredados. En el caso de que queramos usar el icono por defecto, seleccionaremos el valor .por defecto.

Fórmula de tiempo en espera en segundos, por defecto 7 (opcional)

Permite configurar el tiempo que la notificación permanecerá en pantalla antes de cerrarse automáticamente. Si se deja vacío durará 7 segundos, que es el tiempo por defecto. Si se pone un 0, la notificacióndebe ser cerrada por el usuario.

Funcionalidad

Nos permite mostrar una notificación al usuario sin paralizar la interfaz de la aplicación.

Comentarios

A diferencia del comando de instrucción mensaje, la notificación ni bloquea la interfaz ni tampoco paraliza la ejecución del proceso mientras la ventana está abierta en pantalla.

Este comando de instrucción solamente puede ser usado en procesos ejecutados en local (primer o segundo plano).

Ejemplo

Cargar lista ( ALBARANES, SIN_FACTURAR, , )
    If ( sysListSize )
        Interfaz: Notificación ( "Tienes " + sysListSyze + " albaranes pendienes de facturar", , , 0 )

Comando de instrucción que nos permite obtener la posición de un formulario en cuadro de diálogo y su tamaño.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Posición X: variable local de retorno (opcional)

Identificador de una variable local que recogerá la posición del formulario en el eje X.

Posición Y: variable local de retorno (opcional)

Identificador de una variable local que recogerá la posición del formulario en el eje Y.

Ancho: variable local de retorno (opcional)

Identificador de una variable local que recogerá el ancho del formulario en píxels.

Alto: variable local de retorno (opcional)

Identificador de una variable local que recogerá el alto del formulario en píxels.

Funcionalidad

Este comando de instrucción de proceso permite obtener la posición en pantalla y el tamaño de un formulario en modo cuadro de diálogo.

Comentarios

El formulario tiene que estar configurado como cuadro de diálogo. Habitualmente el comando lo ejecutaremos desde un manejador de evento del propio formulario.

Ejemplo

Interfaz: Obtener posición y tamaño de cuadro de diálogo ( POS_X, POS_Y, ANCHO, ALTO )

Mensaje

Comando de instrucción que presenta una ventana con un mensaje.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Fórmula de mensaje

Expresión de tipo fórmula con el texto del mensaje a presentar. Podemos usar etiquetas html para formatear el texto.

Icono

Tipo de icono que se mostrará junto con el mensaje. Los iconos disponibles son:

Fórmula de tiempo de espera en segundos

Segundos transcurridos los cuales la ventana será cerrada automáticamente. Si este parámetro es 0, la ventana permanecerá abierta hasta que intervenga el usuario.

Fórmula título opcional

Expresión de tipo fórmula que permite establecer un título opcional de la ventana. Si no se especifica título alguno, se usará como título el nombre del ejecutable. Ejemplo: vClient. Si el proceso es ejecutado en tercer plano (en el servidor), lo que aquí definamos se mostrarán en la primera columna de la ventana de mensajes de Velneo vAdmin, y podremos usarlo para filtrar en el combobox “título”:

Funcionalidad

Comando de instrucción que presenta una ventana con un mensaje que podrá ser cerrada automáticamente o no en función de si se ha establecido un valor en el parámetro Fórmula de tiempo de espera en segundos o no. La ventana, incluirá un botón que permitirá al usuario cerrarla.

Comentarios

Hay que tener en cuenta que este comando paralizará el proceso mientras la ventana esté abierta; por tanto, si se trata de un proceso transaccional, paralizará la ejecución de la transacción mientras la ventana permanezca abierta.

Si usamos este comando en un proceso disparado en 2º plano (multitarea), el mensaje que emitamos no será mostrado en una ventana, sino en la barra de estado de Velneo vClient.

Si usamos este comando en un proceso disparado en tercer plano (en el servidor), el mensaje será mostrado en el panel de mensajes de Velneo vAdmin.

Ejemplo

Mostramos un texto concatenando distintos valores. En este caso la fecha y hora actual del sistema.

Mensaje ( "<B>Fecha actual</B>: " + currentDate() + " <B>Hora actual</B>: " + currentTime(), Información, ,  )

Pregunta

Comando de instrucción que presenta una ventana con una pregunta y dos botones: Sí y No.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de mensaje

Expresión fórmula con la pregunta a presentar al usuario. Para facilitar su especificación podemos hacer uso del asistente para edición de fórmulas.

Identificador de la variable local booleana de retorno

Declaración de una variable local.

Fórmula de título opcional (Opcional)

Expresión fórmula con el texto que queramos mostrar en el título de la ventana de la pregunta. Para facilitar su especificación podemos hacer uso del asistente para edición de fórmulas.

Funcionalidad

Comando de instrucción que presenta una ventana con una pregunta y dos botones: “Sí” y “No”.

Comentarios

Hay que tener en cuenta que este comando paralizará el proceso mientras la ventana esté abierta; por tanto, si se trata de un proceso transaccional, paralizará la ejecución de la transacción mientras la ventana permanezca abierta. Una vez haya sido cerrada, el proceso continuará su ejecución.

Este comando solamente podrá ser usado en procesos ejecutados en primer plano. No es funcional el procesos ejecutados en 2º plano (multitarea) ni en tercer plano (en el servidor).

Ejemplo

Preguntamos si deseamos borrar los registros de los usuarios. Si la respuesta es No ( 0 ) salimos del proceso y en caso contrario Si ( 1 ) procedemos al borrado de los registros de la tabla de usuarios.

Pregunta ( "¿ Desea continuar borrando los registros ?", RESPUESTA,  )
If ( RESPUESTA = 0 )
    Finalizar proceso
Else
    Cargar lista ( USUARIOS@ejemplo, ID, , , ,  )
        Recorrer lista eliminando fichas
            Libre

Ventana de selección de directorio

Comando de instrucción del grupo Ficheros y Directorios que informa de la existencia de un directorio o carpeta del disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de variable local alfabética de retorno de senda

El comando retornará en esta variable local la senda del directorio seleccionado por el usuario.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si el usuario ha aceptado el cuadro de diálogo de selección de directorio o false (0) si lo ha cancelado.

Fórmula de senda por defecto (Opcional)

Senda por defecto en la que mostrará el cuadro de diálogo de selección de directorio al usuario. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Funcionalidad

Muestra al usuario un cuadro de diálogo de selección de directorio del sistema, mostrando la senda establecida por defecto.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto el cuadro de diálogo de selección de directorio mostrará ésta si no hemos definido otra.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

El proceso quedará paralizado mientras el diálogo permanezca abierto. Una vez haya sido cerrado, el proceso continuará su ejecución.

Este comando solamente podrá ser usado en procesos ejecutados en primer plano. No es funcional el procesos ejecutados en 2º plano (multitarea) ni en tercer plano (en el servidor).

Ejemplo

Seleccionamos un directorio guardándolo en la variable local SENDA mostrando posteriormente el nombre del directorio.

Si cancelamos salimos del proceso.

Ventana de selección de directorio ( SENDA, OK, rootPath() )
If ( ! OK )
    Finalizar proceso
Else
    Mensaje ( "Directorio seleccionado: " + SENDA, Información, ,  )

Ventana de selección de fichero

Comando de instrucción del grupo Ficheros y directorios que muestra al usuario un cuadro de diálogo de selección de fichero del sistema y retorna la senda del fichero seleccionado por el usuario.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Identificador de variable local alfabética de retorno de senda

El comando retornará en esta variable local la senda del fichero seleccionado por el usuario.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si el usuario ha aceptado el cuadro de diálogo de selección de fichero o false (0) si lo ha cancelado.

Fórmula de filtro de archivos (Opcional)

Filtro de archivos que limitará las posibilidades de selección de fichero del usuario. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc. La sintaxis que se ha de seguir en este parámetro es:

[Exp1 (*.ext1 [*.ext2 *.ext3...)];;[Exp2 (*.ext4 [*.ext5 *.ext6...])]]

"Imágenes (*.png *.bmp *.jpg);;Ficheros de texto (*.txt);;Ficheros XML (*.xml)"

Si no se especifica nada en este parámetro, será lo mismo que especificar "Todos los archivos (*.*)".

Fórmula de senda por defecto (Opcional)

Senda por defecto en la que mostrará el cuadro de diálogo de selección de fichero al usuario. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Funcionalidad

Muestra al usuario un cuadro de diálogo de selección de fichero del sistema, permitiendo seleccionar ficheros de acuerdo al filtro de archivos definido y en la senda por defecto establecida.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto el cuadro de diálogo de selección de fichero mostrará ésta si no hemos definido otra.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

El proceso quedará paralizado mientras el diálogo permanezca abierto. Una vez haya sido cerrado, el proceso continuará su ejecución.

Este comando solamente podrá ser usado en procesos ejecutados en primer plano. No es funcional el procesos ejecutados en 2º plano (multitarea) ni en tercer plano (en el servidor).

Ejemplo

Seleccionamos un fichero *.pdf guardándolo en la variable local FICHERO. Ejecutamos el fichero que se abrirá con la aplicación asignada por el sistema operativo para ese tipo de fichero como predeterminado.

Si cancelamos salimos del proceso.

Ventana de selección de fichero ( FICHERO, OK, "*.pdf", homePath() )
If ( ! OK )
    Finalizar proceso
Else
    Ejecutar documento ( "file:///"+FICHERO,  )

Última actualización