Už to znáte; 4D View Pro umožňuje snadno načítat a zobrazovat data v tabulkách.
4D v19 R6 přináší zajímavé novinky. Tento příspěvek na blogu vám ukáže novou funkci tabulky, která vám umožní dělat mnohem více a využívat další vlastnosti, jako jsou záhlaví, změna velikosti tabulky, souhrnný řádek, třídění sloupců, filtry a další. Zjistíte také, jak rychle načítat data z datových tříd a kolekcí. A nenechte si ujít ukázku, která obsahuje kompletní příklad a několik vizuálních grafů jako bonus.
Tabulku lze vytvořit dvěma způsoby:
- Vytvořte prázdnou tabulku a vyplňte ji buňku po buňce pomocí existujících příkazů, např. VP SET VALUES nebo VP SET VALUE
- Vytvořit tabulku automaticky z kolekce obsažené v datovém kontextu.
Pozdravte VP CREATE TABLE
ručně naplnit tabulku
Nejprve je třeba vytvořit tabulku bez zdroje. Použijte nový VP CREATE TABLE a jako parametr mu předejte rozsah, ve kterém se má tabulka objevit:
VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 4); "EmptyTable")
Vytvoří prázdnou tabulku s výchozími názvy sloupců:
Nyní už jen stačí vyplnit naši tabulku pomocí příkazu VP SET VALUES příkazu:
$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)
Tabulka je nyní naplněna hodnotami obsaženými v kolekci:
Nyní můžete tabulku snadno filtrovat nebo třídit:
Naplňte tabulku z kontextu dat
Zobrazení výběru entit jako tabulky:
musíte výběr entit převést na kolekci a přidat ji do kontextu dat listu, definovat sloupce a vytvořit tabulku.
Nejprve musíte vytvořit datový kontext obsahující kolekci dat, která potřebujete zobrazit. V níže uvedeném příkladu načteme data z databáze a převedeme je na kolekci, kterou pak zapouzdříme do objektu:
$p:=ds.People.all().toCollection()
$data:=New object
$data.people:=$p
VP SET DATA CONTEXT("ViewProArea"; $data)
Nyní, když je datový kontext vytvořen, definujeme, které sloupce se mají zobrazit:
$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"))
Zbývá jen použít příkaz VP CREATE TABLE příkaz, kterým naznačíme, že chceme zobrazit kolekci obsaženou v atributu people datového kontextu:
// 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))
Podívejte se na HDI výše, abyste viděli tyto příkazy v akci. Nezapomeňte si také přečíst dokumentaci, kde najdete další podrobnosti!