Autor: Martin Bradáč

Pokud potřebujeme naplnit formulář s větším počtem polí, narazíme často na problém s ergonomií uživatelského rozhraní. Ve standardním uspořádání by se formulář musel buď scrolovat, případně by byl velmi nahuštěný. Jednou z možností je formulář rozdělit do několika bloků a ty pak oddělit záložkami.

Pro příklad poslouží formulář založený na sharepointovém seznamu.

  • Napojíme data a vložíme formulář – nyní obsahuje všechny položky. Vytvoříme tlačítko pro odeslání formuláře – do vlastnosti OnSelect vložíme SubmitForm(Form1). Potud je vše jasné, standardní. Formulář se roluje hluboko pod obrazovku. Změníme umístění formuláře na obrazovce tak, aby vznikl prostor pro vytvoření záložek.
  • Do obrazovky vložíme galerii – prázdnou vodorovnou. Nyní využijeme možnosti „Přidat položku z podokna Vložit“ a vybereme Tlačítko. Nyní postupně stahujte šířku galerie, až se vykreslí více tlačítek a budou se zmenšovat jejich rozestupy.
  • Galerie nemá zatím napojený žádný datový zdroj. V Items jsou jen ukázková data. Vytvoříme tabulku dat pro naše potřeby. V galerii – vlastnostech Items vyplníme Table({ID:1;Label:”Oddil 1″};{ID:2;Label:”Oddil 2″};{ID:3;Label:”Oddil 3″};{ID:4;Label:”Oddil 4″})
  • Tlačítko by se mělo nyní vygenerovat tolikrát, kolik jsme zadali záznamů do tabulky.
  • Klikněme na tlačítko, vyberme vlastnost Text a naplňme jí hodnotou label z tabulky – ThisItem.Labem – tlačítka by nyní měla být pojmenovaná podle tabulky.
  • Na tlačítku ještě změníme kosmetickou vlastnost – RadiusTopLeft nastavte na 30, RadiusTopRight také na 30. Dále změníme rozměr galerie – odspodu jí postupně zmenšujeme, až „uřízneme“ spodní část tlačítek.
  • V tomto kroku se vypořádáme se zvýrazněním zvolené záložky(tlačítka). Klikněte na tlačítko v galerii a nastavme vlastnost OnSelect – nastavíme proměnnou, do které uložíme hodnotu ID z tabulky.

Set(Vybrano;ThisItem.ID).

  • V tlačítku nyní upravíme podbarvení – vlastnost Fill. Pomůžeme si podmínkou – pokud je aktuální tlačítko rovné vybranému (hodnota je uložena v proměnné), zvýrazní se. Jinak zůstane původní barva.

Fill = If(ThisItem.ID=Vybrano;RGBA(56; 96; 178; 1);RGBA(56; 196; 178; 1))

Ještě ošetříme stav po načtení obrazovky, kdy není stisknuté žádné tlačítko a tím není ani definovaná proměnná. U Screen1 nastavíme vlastnost OnVisible takto: Set(Vybrano;1). Tím bude vybraná první záložka.

  1. Nyní konečně upravíme formulář tak, aby se konkrétní otázky zobrazili pod konkrétní záložkou. Ve stromovém zobrazení klikněte na první položku formuláře a za pomoci Ctrl označte první skupinu polí, u všech najednou nastavme vlastnost „Visible“ Vybrano=1, u dalšího bloku Vybrano=2 a tak dále…

Hotovo – formulář se překresluje podle zvolené záložky, odesílá se vždy celý, mění se totiž jen vlastnosti zobrazení. Řešení je to čisté a i když na první pohled trochu složité, na druhý prostě jednoduché, snadné.