Lo sapete già: 4D View Pro consente di caricare e visualizzare facilmente i dati nei fogli di calcolo.
4D v19 R6 porta con sé interessanti novità. Questo post del blog vi mostrerà la nuova funzione di tabella che consente di fare molto di più e di beneficiare di proprietà aggiuntive come intestazioni, ridimensionamento della tabella, riga di riepilogo, ordinamento delle colonne, filtri e altro ancora. Scoprirete anche come caricare rapidamente i dati da classi e raccolte di dati. Non perdetevi la demo, che fornisce un esempio completo e alcuni grafici visivi come bonus.
Esistono due modi per creare una tabella:
- Creare una tabella vuota e popolarla cella per cella con i comandi esistenti, come ad esempio VP SET VALUES o VP SET VALUE
- Creare automaticamente una tabella da un insieme contenuto nel contesto dei dati.
Salutate VP CREATE TABLE
popola manualmente una tabella
Innanzitutto, è necessario creare una tabella senza origine. Utilizzare il comando nuovo VP CREATE TABLE e passargli come parametro l’intervallo in cui deve apparire la tabella:
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 4); "EmptyTable")
Crea una tabella vuota con colonne dal nome predefinito:
Ora dobbiamo solo riempire la nostra tabella con l’aiuto del comando VP SET VALUES con l’aiuto del comando
$data:=New collection
// Titles
$data.push(New collection("First Name"; "Last Name"; "Score"))
// Data
$data.push(New collection("Andrea"; "Butterfield"; "70"))
$data.push(New collection("Faye"; "Back"; "100"))
$data.push(New collection("Shane"; "Frazier"; "50"))
VP SET VALUES(VP Cell("ViewProArea"; 1; 1); $data)
La tabella viene ora popolata con i valori presenti nella raccolta:
È ora possibile filtrare o ordinare facilmente la tabella:
Popolare una tabella dal contesto dei dati
Per visualizzare una selezione di entità come tabella
è necessario convertire la selezione di entità in una raccolta e aggiungerla al contesto dati del foglio, definire le colonne e creare la tabella.
Per prima cosa, è necessario creare un contesto di dati contenente una raccolta dei dati da mostrare. Nell’esempio che segue, leggiamo i dati da un database e li convertiamo in una raccolta, quindi li incapsuliamo in un oggetto:
$p:=ds.People.all().toCollection()
$data:=New object
$data.people:=$p
VP SET DATA CONTEXT("ViewProArea"; $data)
Ora che il contesto di dati è stato creato, si definiscono le colonne da mostrare:
$parameter:=New object
$parameter.tableColumns:=New collection
$parameter.tableColumns.push(New object("name"; "First name"; "dataField"; "Firstname"))
$parameter.tableColumns.push(New object("name"; "Last name"; "dataField"; "Lastname"))
$parameter.tableColumns.push(New object("name"; "Email"; "dataField"; "email"))
$parameter.tableColumns.push(New object("name"; "Birthday"; "dataField"; "Birthday"; "formatter"; "dddd dd MMMM yyyy"))
$parameter.tableColumns.push(New object("name"; "Country"; "dataField"; "Country"))
Non resta che utilizzare il comando VP CREATE TABLE indicando che si vuole mostrare la collezione contenuta nell’attributo persone del contesto dati:
// Table creation
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; $parameter.tableColumns.length; 1); "ContextTable"; "people"; $parameter)
// Automatic column sizing
VP COLUMN AUTOFIT(VP Column($area; 0; 4))
Guardate l’HDI qui sopra per vedere questi comandi in azione. Inoltre, assicuratevi di leggere la documentazione per maggiori dettagli!