Zobrazení kolekce v poli seznamu

Automaticky přeloženo z Deepl

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!

Kolekce seznam boxů: příklad

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.

blank

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.

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.