Nedávno 4D zavedlo nový typ proměnných: kolekce a také velkou sadu metod pro manipulaci s nimi. S verzí 4D v17 se možnosti kolekcí rozšiřují o možnost snadného zobrazení obsahu kolekce. Jak? Pole se seznamem typu kolekce!
Velkou výhodou používání kolekcí je možnost zobrazovat různorodá data v jednom sloupci. Řekněme například, že máte kolekci s polem „zdarma“ pro koncového uživatele. V závislosti na kontextu může uživatel někdy zadat číslo, jindy text, někdy datum. Nyní můžete vše zobrazit ve sloupci se seznamem polí, aniž byste museli vynucovat obsazení.
Není třeba převádět kolekci na pole. Žádný kód. Prostě jednoduše!
Jak nakonfigurovat pole seznamu
Nejprve zvolte typ pole seznamu „Kolekce„. Poté jako zdroj dat zadejte proměnnou nebo výraz, který vrací kolekci.
Poté musíte definovat zdroj dat pro každý sloupec vašeho pole seznamu. Je to jednoduché, stačí zadat výraz pro každý sloupec seznamu vlastností, stejně jako pro pole seznamu aktuálního typu výběru.
K tomu budete muset použít nový příkaz This příkaz. Ten vrací objekt obsahující prvek, který se právě překresluje. V poli seznamu se tento příkaz vyhodnocuje pro každý řádek a umožňuje přístup ke všem atributům aktuálního prvku kolekce.
Formátování obsahu pomocí výrazu
Zatímco pole seznamu typu výběru umožňuje zadat výraz pro definici barvy písma, barvy pozadí, stylu písma, stavu výběru a zapnutí, musíte ještě pro každou akci uvést metodu projektu nebo výraz. U seznamových polí typu výběr je to ještě jednodušší, všechny tyto parametry můžete jednoduše definovat v JEDNÉ metodě projektu, ve výrazu metainformace.
Meta výraz se vyhodnotí pro každý zobrazený řádek a vrátí objekt obsahující následující atributy:
- fill: zadejte barvu CSS pro definici barvy pozadí
- stroke: zadejte barvu CSS pro definici barvy písma
- fontStyle: nastavte hodnotu „italic“ pro použití stylu kurzíva, jinak nastavte hodnotu „normal“
- fontWeight: nastavte hodnotu jako „bold“ pro použití tučného stylu, jinak nastavte na „normal“
- textDecoration: nastavte hodnotu jako „underline“ pro použití stylu podtržení, jinak ji nastavte na „normal“
- unselectable: zadejte boolean, abyste určili, zda je řádek vybíratelný, nebo ne
- disabled: zadejte boolean pro povolení nebo zakázání řádku.
Pokud atribut neexistuje, použije 4D výchozí hodnotu.
K poli seznamu můžete například přiřadit meta výraz „Decorate „. Metoda Decorate obsahuje následující kód:
If (This.value>10)
$0 :=New object("fill"; "red"; "stroke"; "white"; "fontWeight"; "bold")
Else
$0 :=New object("fill"; "blue")
End if
V tomto příkladu, pokud je atribut „value“ větší než 10, bude pozadí řádku červené s bílým textem tučně. Pokud je atribut „value“ menší než 10, bude pozadí řádku modré.
Získání vybraného prvku (prvků)
Pomocí vlastností „Aktuální prvek “ a „Aktuální pozice prvku “ můžete načíst objekty aktuálního prvku kolekce a také jejich pozici.
Vlastnost „Vybrané prvky“ umožňuje načíst kolekci vybraných prvků z pole seznamu. Tuto novou kolekci můžete dokonce definovat jako zdroj dat pro jiné pole seznamu. Bez jediného řádku kódu tak můžete zobrazit podmnožinu jednoho pole seznamu v jiném.
na straně příkazů 4D
Příkazy 4D tématu „List box“ byly aktualizovány tak, aby podporovaly typ kolekce. Několik příkladů: LISTBOX SORT COLUMN, LISTBOX INSERT COLUMN FORMULA, LISTBOX SET COLUMN FORMULA, atd. Podrobnější informace naleznete v úplném seznamu příkazů 4D tématu Seznam box.