Scoprite la potenza dei moduli dinamici

Tradotto automaticamente da Deepl

Ci avete detto quanto desiderate una funzione per la creazione dinamica di moduli completamente adattati alle esigenze dei vostri utenti finali. Bene, vi abbiamo ascoltato e 4D v16 R6 now apre nuove opportunità con i moduli dinamici! Forniti in anteprima in 4D v16 R6, i moduli dinamici consentono di creare programmaticamente i moduli in un oggetto o di caricarli da un file di testo. Ma questo è solo un assaggio di ciò che abbiamo preparato per voi…

Moduli dinamici – Esempio di database

moduli dinamici Vantaggi

Nei moduli dinamici, l’intero contenuto del modulo – pagine, oggetti del modulo e proprietà di ciascun oggetto – è descritto in un formato testuale (formato JSON). Pertanto, i moduli dinamici possono essere memorizzati in un oggetto o in un file. Per una migrazione senza problemi, è possibile avere entrambi i tipi di moduli in un database, cioè sia i moduli regolari (memorizzati in formato binario nel file .4DB) che i moduli dinamici(memorizzati come testo in qualsiasi punto del disco).

I moduli dinamici possono essere utilizzati con applicazioni compilate o stand-alone. Il vantaggio dei nuovi moduli rispetto ai normali moduli binari è che è possibile modificarli semplicemente aggiornando il file JSON… senza dover ricompilare l’applicazione. Ciò offre una grande flessibilità nella distribuzione.

L’uso di moduli dinamici offre anche altri grandi vantaggi. Avete già avuto un cliente che ha chiesto di cambiare il carattere per tutti gli oggetti del modulo? Con i moduli dinamici, è semplice come fare un “Cerca e sostituisci” in un file di testo!

Se ora volete inviare per e-mail un particolare modulo a un collega, dovrete inviare solo un singolo file di testo invece dell’intero pacchetto di database. I moduli dinamici consentono inoltre di riutilizzare facilmente un modulo in un’altra applicazione senza doverlo spostare in un altro database… basta copiare/incollare un singolo file e il gioco è fatto!

comandi che supportano i moduli dinamici

D’ora in poi, tutti i comandi 4D che utilizzano il nome di un modulo sono stati migliorati per accettare anche la descrizione di un modulo come oggetto o percorso di file:.

“Esempio “CIAO MONDO

descrizione del modulo da un file di testo

Facciamo un semplice esempio con solo testo e un pulsante:

Hello World dialogLa descrizione testuale del modulo è la seguente:

{
    ... list of form parameters ...
    "pages": [  ... list of form pages ...
        null, ... page 0 ...
        {     ... page 1 ...
            "objects": {    ... list of form objects in page 1 ...

                "text": {
                    "type": "text",
                    "text": "Hello World !",
                    "left": 20, "top": 20, "width": 200, "height": 20
                },

                "button": {
                    "type": "button",
                    "text": "OK",
                    "left": 120, "top": 40, "width": 100, "height": 20
                }
            }}]
}

Ed ecco il codice per caricare questo modulo in una finestra di dialogo:

DIALOG ("/RESOURCES/helloWorld.json")

La grammatica è definita da uno schema JSON. La documentazione fornisce anche l’elenco completo degli attributi che possono essere utilizzati nei moduli dinamici, con dettagli su quali attributi sono supportati da ciascun oggetto modulo. Non dimenticate che potete usare il comando JSON Validate per verificare che il JSON della descrizione del modulo sia conforme allo schema JSON.

Costruire un form in un oggetto

Ora, rendiamo questo form completamente dinamico, costruendolo solo con il codice!

// Build form description
$label:=New object("type"; "text"; "text"; "Hello World!";"top";20;"left";20;"width";200;"height";20)
$button :=New object("type";"button";"text";"OK";"top";40;"left";120;"width";100;"height";20)
$page :=New object("oggetti";New object("etichetta";$label; "pulsante";$button))
$form :=New object("pagine";New collection(Null;$page); "windowTitle"; "Il mio primo modulo dinamico"; "rightMargin";20; "bottomMargin";20)

// Load the form in a dialog
$w:=Open form window($form)
DIALOG ($form)

Come si può vedere, offre la flessibilità necessaria per costruire i moduli in base alle proprie esigenze. Una volta scritti i moduli in un file o in un oggetto, è possibile utilizzarli come si farebbe con i normali moduli.

E per quanto riguarda la modifica dei moduli?

Per il momento, non c’è alcun meccanismo disponibile per modificare i moduli dinamici, a parte l’uso di un editor di testo. Ma questo non durerà! È in arrivo un editor di moduli dedicato specificamente ai moduli dinamici. Quando? Restate sintonizzati.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.