Non sarebbe fantastico se si potesse semplicemente aprire un modulo e passargli alcuni parametri per inizializzare gli oggetti del modulo? E se si potesse anche recuperare i dati da elaborare, dopo che sono stati modificati dall’utente? 4D v16 R5 rende la codifica molto più facile, semplificando notevolmente la comunicazione con i moduli.
Finora, quando si volevano visualizzare dati (non provenienti dal database stesso, ma calcolati o esterni) a più utenti, si avevano due possibilità: o scrivere codice complesso per gestire la visualizzazione dei dati in più processi, o creare tutti i moduli necessari con un mucchio di variabili globali. Ma si sa che le variabili globali non sono un modo ottimizzato di codificare, dal punto di vista della memoria.
Quindi sbarazzatevi del codice complesso e delle variabili globali! Con 4D v16 R5 potete semplicemente legare un oggetto al vostro modulo e usarlo internamente con il nuovo comandoForm . Indolore… e potente!
Passare parametri a un modulo
È ora possibile passare parametri in un oggetto a un modulo utilizzando il comando DIALOG . Qualsiasi proprietà di questo oggetto sarà poi disponibile nel contesto del form tramite il comando Form .
C_LONGINT($finestra)
C_OBJECT($indirizzo)
$indirizzo:=Nuovooggetto
$indirizzo.NomeAzienda:="4D"
$indirizzo.Cognome:="Dupont"
...
$finestra:=Aprifinestra form("AddressForm";finestra di dialogo Movable form)
// Il form viene aperto con l'oggetto $indirizzo come parametro
// Ciò consente di modificare l'oggetto $indirizzo nel form con il comando Form
DIALOG("AddressForm";$indirizzo)
CLOSE WINDOW($finestra)
ALERT("Il nome della nuova azienda è: "+$address.CompanyName)
Nel form “AddressForm”, è sufficiente utilizzare il comando Form nell’origine dati dell’oggetto del modulo:
Quando gli utenti chiudono la finestra di dialogo, i valori inseriti sono disponibili nel metodo chiamante tramite l’oggetto $indirizzo .
Passare parametri a una sottomaschera
Allo stesso modo in cui si passa un oggetto a un modulo con il comando DIALOG è possibile passare un oggetto a un’area di sottomaschera utilizzando l’elenco di proprietà. Quindi, è possibile utilizzarlo nella sottomaschera con il comando Form con il comando Nell’esempio seguente, l’oggetto InvoiceAddress è legato alla sottomaschera.