versión 11 (Modificado)
DIALOG ({tabla; }formulario; *)
Parámetro | Tipo | Descripción | |
tabla | Tabla | Tabla a la cual pertenece el formulario o | |
Tabla por defecto si se omite | |||
formulario | Formulario | Formulario a mostrar como diálogo | |
* | * | Utilizar el mismo proceso |
Descripción
El comando DIALOG presenta el formulario formulario al usuario. Este comando se utiliza con frecuencia para obtener información del usuario a través del uso de variables o para presentar información al usuario, como opciones para realizar una operación.
Es común presentar el formulario dentro de una ventana creada por el comando Open window.
Este es un ejemplo típico de un diálogo:
Utilice DIALOG en lugar de ALERT, CONFIRM, o Request cuando la información que debe presentarse o reunirse es más compleja de lo que estos comandos pueden manejar.
Nota: es posible prohibir la entrada de datos en campos o cajas de diálogo (y limitar la entrada de datos a variables únicamente) utilizando una opción en las Preferencias de 4D (página Compatibilidad). Esta restricción corresponde al funcionamiento de versiones anteriores de 4D.
A diferencia de ADD RECORD o MODIFY RECORD, DIALOG no utiliza el formulario de entrada actual. Usted debe especificar el formulario (formulario proyecto o formulario tabla) a utilizar en el parámetro formulario. Igualmente, el panel de botones no se utiliza por defecto si se omiten los botones. En este caso, sólo la tecla Esc le permitirá salir del formulario.
El diálogo se acepta si el usuario hace clic en el botón Aceptar o presiona la tecla Enter (teclado numérico) o si se ejecuta el comando ACCEPT.
Recuerde que la validación no hace que se guarden los datos modificados: si el diálogo incluye campos, debe llamar explícitamente al comando SAVE RECORD para guardar los datos que hayan sido modificados.
El diálogo se cancela si el usuario hace clic en el botón Cancelar o presiona la tecla de anulación Esc o si se ejecuta el comando CANCEL.
Si pasa el parámetro opcional *, el formulario se carga y muestra en la última ventana del proceso actual y el comando termina su ejecución mientras deja el formulario activo en pantalla.
Este formulario luego reacciona "normalmente" a las acciones del usuario y se cierra cuando el código 4D relacionado con el formulario (método de objeto o método de formulario) llama al comando CANCEL o ACCEPT. Si el proceso actual termina, los formularios creados de esta forma se cierran automáticamente de la misma forma que si se hubiera llamado el comando CANCEL. Este modo de apertura es particularmente útil para mostrar una paleta flotante con un documento, sin necesidad de otro proceso.
Nota: debe crear una ventana antes de llamar la instrucción
DIALOG("form";*); si no es posible utilizar la ventana de diálogo actual en el proceso ni la ventana creada por defecto para cada proceso. De lo contrario, se genera el error -9909.
Después de llamar a DIALOG, si el diálogo se acepta la variable sistema OK toma el valor 1 ; si se cancela toma el valor 0.
Ejemplos
1. El siguiente ejemplo muestra el uso del comando DIALOG para especificar los criterios de búsqueda. Un formulario personalizado que contiene las variables vNombre y vEstado le permite al usuario introducir los criterios de búsqueda.
Open window (10;40;370;220) ` Abrir una ventana modal DIALOG("Diálogo de búsqueda") ` Mostrar el diálogo de búsqueda CLOSE WINDOW ` No necesita más la ventana modal If (OK=1) ` Si se acepta el diálogo QUERY ([Empresa];[Empresa]Nombre=vNombre;*) QUERY ([Empresa];&;[Empresa]Estado=vEstado) End if
2, El siguiente ejemplo puede usarse para crear una paleta de herramientas `Muestra la paleta de herramientas
$palette_window:=Open form window("tools";Palette form window)
DIALOG("tools";*) `Give back the control immediately
`Muestra ventana del documento principal $document_window:=Open form window("doc";Standard form window)
DIALOG("doc")
Ver también
ACCEPT, ADD RECORD, CANCEL, Open window.
Variables sistema o conjunto
Después de llamar a DIALOG, si se acepta el diálogo, la variable sistema OK toma el valor 1; si se cancela toma el valor 0.