Nello sviluppo di un’applicazione, spesso è necessario creare moduli in modo dinamico. Ad esempio, si potrebbe voler generare al volo un modulo di ricerca, adattato alle esigenze dell’utente. In 4D esistono due approcci principali per la creazione di moduli dinamici: costruire l’intero modulo in modo programmatico o aggiungere oggetti a un layout di modulo esistente. Per quanto riguarda la seconda opzione, fino ad ora era possibile duplicare gli oggetti con OBJECT DUPLICATEe modificare l’origine dati con OBJECT SET DATA SOURCEutilizzando un approccio classico basato sui puntatori.
Con 4D 20 R10, nuovi e potenti comandi, OBJECT SET DATA SOURCE FORMULA e OBJECT Get data source formulaconsentono agli sviluppatori di vincolare una formula come origine dati degli oggetti del modulo. Inoltre, è possibile assegnare dinamicamente le formule alle proprietà chiave delle caselle di riepilogo con il comando LISTBOX SET PROPERTY come l’elemento corrente, la posizione dell’elemento corrente e gli elementi selezionati.
Questo apre la strada a un approccio più moderno, flessibile e leggibile, grazie soprattutto a espressioni come Form.xx o le classi.
Nuovi comandi per manipolare la proprietà dell’origine dati
Sono stati aggiunti due nuovi comandi per modificare la proprietà dell’origine dati:
OGGETTO SET DATA SOURCE FORMULA ( {* ;} oggetto ; formula)
OGGETTO Get data source formula ( {* ;} oggetto) : formula
Esempio 1: Aggiornamento della formula
Immaginiamo di avere un input di testo chiamato “myInput” in un modulo e di voler legare la sua origine dati alla formula “Form.myText”.
$myFormula:=Formula(Form.myText)
OBJECT SET DATA SOURCE FORMULA (*; "myInput"; $myFormula)
Esempio 2: Recupero della formula
Per recuperare la formula associata a un oggetto modulo, ad esempio un input di testo denominato “mioInput”, è sufficiente scrivere:
$formula:=OBJECT Get data source formula(*; "mioInput")
Questi nuovi comandi facilitano la creazione di modelli di modulo generici e riutilizzabili, che possono essere configurati dinamicamente.
Funzionalità estese per le ListBox
Queste proprietà sono accessibili utilizzando le seguenti costanti con i comandi LISTBOX Get property e LISTBOX SET PROPERTY:
- lk current item expression
- lk current item pos expression
- lk selected items expression
Esempio:
LISTBOX SET PROPERTY(*; "myListBox"; lk selected items expression; "Form.selectedItems")
Conclusione
Con OBJECT SET/GET DATA SOURCE FORMULA e le nuove costanti delle proprietà delle caselle di riepilogo, 4D offre un modo nuovo, elegante e potente di costruire interfacce dinamiche.
Abbracciando le formule e la programmazione orientata agli oggetti, è ora possibile creare moduli più adattabili, manutenibili e facili da leggere.
