¿No sería genial poder abrir un formulario y pasarle algunos parámetros para inicializar sus objetos de formulario? ¿Y qué tal si pudieras también recuperar los datos para procesarlos, después de que hayan sido modificados por el usuario? 4D v16 R5 facilita mucho tu codificación al simplificar enormemente las comunicaciones con los formularios.
Hasta ahora, cuando querías mostrar datos (no procedentes de la propia base de datos, sino computados o externos) a múltiples usuarios, tenías dos opciones: o escribir código complejo para manejar la visualización de datos en múltiples procesos, o crear tantos formularios como fuera necesario con un montón de variables globales. Pero sabes que las variables globales no son una forma optimizada de codificar, desde el punto de vista de la memoria.
Así que deshazte de tu código complejo y de las variables globales. Con 4D v16 R5 puedes simplemente vincular un objeto a tu formulario y utilizarlo internamente con el nuevo comandoForm . Sin complicaciones… ¡y poderoso!
Pasar parámetros a un formulario
Ahora es posible pasar parámetros en un objeto a un formulario utilizando el DIALOG comando. Cualquier propiedad de este objeto estará entonces disponible desde el contexto del formulario a través del Form comando.
C_LONGINT($window)
C_OBJECT($address)
$address:=Nuevoobjeto
$address.CompanyName:="4D"
$address.LastName:="Dupont"
...
$window:=Abrirventana de formulario("AddressForm";Cuadro de diálogo de formulario móvil)
// El formulario se abre con el objeto $dirección como parámetro
// Esto permite modificar el objeto $dirección en el formulario con el comando Form
DIALOG("AddressForm";$dirección)
CERRAR VENTANA($window)
ALERT("El nuevo nombre de la empresa es: "+$address.CompanyName)
En el formulario «AddressForm «, basta con utilizar el comando Form en el origen de datos del objeto del formulario:
Cuando los usuarios cierran el diálogo, los valores que introdujeron están disponibles en el método de llamada a través del objeto $address .
Pasar parámetros a un subformulario
De la misma manera que se pasa un objeto a un formulario con el comando DIALOG también puede pasar un objeto a un área de subformulario utilizando la lista de propiedades. Luego, puede utilizarlo en el subformulario con el comando Form comando. En el ejemplo siguiente, el objeto InvoiceAddress está vinculado al subformulario.