A partire da 4D v17, il contenuto di una collezione multilivello può essere facilmente visualizzato in diverse caselle di riepilogo. Ciò significa che è possibile collegare diverse caselle di riepilogo per visualizzare dettagli annidati… senza una sola riga di codice! Ciò può essere ottenuto semplicemente utilizzando un oggetto o una collezione come origine dati per un’altra casella di riepilogo!
Con il nuovo tipo di collezione di caselle di riepilogo, sono state aggiunte le proprietà “Elemento corrente” e “Elementi selezionati”. Si tenga presente che la proprietà “Current item” consente di ottenere un oggetto, mentre la proprietà “Selected item” restituisce un insieme.
Facciamo un esempio concreto e vediamo come visualizzare i risultati di un esame del sangue!
Cosa c’è dentro?
Al primo livello, abbiamo il nome del paziente, la data dell’esame e il nome del medico. Poi, i risultati sono classificati per categoria. Per ogni categoria, c’è un elenco di esami con il valore del risultato, il minimo, il massimo e l’unità.
In termini di struttura dei dati, abbiamo un oggetto con alcuni attributi di primo livello( ad esempio, nome, cognome, ecc.) e una collezione di oggetti categoria. Poi, per ogni oggetto categoria, abbiamo un insieme di oggetti test. Per riassumere:
{ "lastname": "Beal", "firstname": "Estele", ..., "results": [{ "category": "Metabolic", "test": [ { "name": "Albumin", "value": ... }, { "name": ... }] }, { "category": "Lipoprotein", "test": [ { "name": "HDL", "value": ... }, { "name": ... }] }, {...}] }
Lo schema sottostante descrive come i risultati vengono visualizzati in due caselle di riepilogo accanto all’input dell’oggetto. Tutto questo… senza una sola riga di codice! Infatti, tutte le proprietà sono definite negli oggetti del modulo, l’unica parte in cui è necessario un po’ di codice è quando si caricano i risultati. Tutto qui, gente! ?
Come si può notare, questo esempio rende i risultati delle analisi del sangue più facili da leggere e da capire, soprattutto quando i dati errati vengono evidenziati con un tocco di colore.
Per fare ciò, abbiamo associato il seguente metodo Decorate all’espressione meta nella proprietà della casella di riepilogo:
If (This.value>(This.max*2))
$0 :=Form.meta.doubleOutOfRange
Else
If ((This.value>This.max) | (This.value<This.min))
$0 :=Form.meta.outOfRange
Else
$0 :=Form.meta.perfectValue
End if
End if