Recentemente, 4D ha introdotto un nuovo tipo di variabile: le collezioni, oltre a un’ampia serie di metodi per manipolarle. Con 4D v17, le possibilità delle collezioni si ampliano grazie alla possibilità di visualizzare facilmente il contenuto di una collezione. Come? Con le caselle di riepilogo del tipo di collezione!
Il grande vantaggio dell’uso delle raccolte è che si possono visualizzare dati eterogenei nella stessa colonna. Ad esempio, supponiamo di avere una raccolta con un campo “libero” per l’utente finale. A seconda del contesto, a volte l’utente può inserire un numero, a volte un testo, a volte una data. Ora è possibile visualizzare tutto in una colonna di una casella di riepilogo, senza dover forzare il cast.
Non è necessario convertire la collezione in array. Nessun codice. Semplice!
Come configurare la casella di riepilogo
Innanzitutto, scegliere il tipo di casella di riepilogo “Collezione”. Quindi, come origine dati, inserire una variabile o un’espressione che restituisca una collezione.
È quindi necessario definire l’origine dei dati per ogni colonna della casella di riepilogo. È semplice: basta inserire un’espressione per ogni colonna dell’Elenco proprietà, come si farebbe per una casella di riepilogo del tipo di selezione corrente.
Per fare ciò, è necessario utilizzare il nuovo comando This che restituisce un oggetto contenente l’elemento che si desidera visualizzare in un’altra casella di riepilogo. Esso restituisce un oggetto contenente l’elemento che viene attualmente ridisegnato. In una casella di riepilogo, questo comando viene valutato per ogni riga e consente di accedere a tutti gli attributi dell’elemento della collezione corrente.
Formattazione del contenuto con un’espressione
Mentre una casella di riepilogo di tipo selezione consente di inserire un’espressione per definire il colore del carattere, il colore di sfondo, lo stile del carattere, lo stato selezionabile e abilitato, è comunque necessario indicare un metodo di progetto o un’espressione per ogni azione. Con le caselle di riepilogo di tipo collezione, è ancora più facile: potete semplicemente definire tutti questi parametri in un UNICO metodo di progetto, l’espressione meta info.
L’espressione meta viene valutata per ogni riga visualizzata e restituisce un oggetto contenente i seguenti attributi:
- fill: inserire un colore CSS per definire il colore di sfondo
- stroke: inserire un colore CSS per definire il colore del carattere
- fontStyle: impostare il valore come “italic” per applicare lo stile italico, altrimenti impostarlo su “normal”.
- fontWeight: impostare il valore come “bold” per applicare lo stile bold, altrimenti impostarlo su “normal”.
- textDecoration: impostare il valore come “underline” per applicare lo stile underline, altrimenti impostarlo su “normal”.
- unselectable: inserire un booleano per definire se la riga è selezionabile o meno
- disabled: inserire un booleano per abilitare o disabilitare la riga.
Se l’attributo non esiste, 4D utilizza il valore predefinito.
Ad esempio, è possibile associare l’espressione meta “Decorate” alla casella di riepilogo. Il metodo Decorate contiene il seguente codice:
If (This.value>10)
$0 :=New object("fill"; "red"; "stroke"; "white"; "fontWeight"; "bold")
Else
$0 :=New object("fill"; "blue")
End if
In questo esempio, se l’attributo “value” è maggiore di 10, lo sfondo della riga sarà rosso con testo bianco in grassetto. Se l’attributo “value” è inferiore a 10, lo sfondo della riga sarà blu.
Recuperare l’elemento o gli elementi selezionati
Con le proprietà “Elemento corrente” e “Posizione corrente dell’elemento” è possibile recuperare gli oggetti dell’elemento corrente della collezione e la loro posizione.
La proprietà “Elementi selezionati” consente di recuperare un insieme di elementi selezionati dalla casella di riepilogo. Si può anche definire questa nuova collezione come fonte di dati per un’altra casella di riepilogo. In questo modo, senza una sola riga di codice, è possibile visualizzare il sottoinsieme di una casella di riepilogo in un’altra.
dal lato dei comandi 4D
I comandi 4D del tema “List box” sono stati aggiornati per supportare il tipo di collezione. Alcuni esempi: LISTBOX SORT COLUMN, LISTBOX INSERT COLUMN FORMULA, LISTBOX SET COLUMN FORMULA, ecc. Per maggiori dettagli, consultare l’elenco completo dei comandi della casella di riepilogo 4D.