Lekce 7 - Objekty systému ObjectGears - Sloupce
V minulé lekci, Objekty systému ObjectGears - Třídy a Dotazy, jsme si popsali objekty Třída a Dotaz, které slouží pro ukládání a zobrazování dat v systému ObjectGears.
V dnešním ObjectGears tutoriálu si popíšeme objekt Sloupce pro třídu. Naučíme se sloupce vytvořit jak ručně, tak i pomocí předdefinovaných sloupců a zobrazit je na formulářích.
V každé třídě i dotazu je potřeba vytvořit sloupce. Sloupce mohou být různých datových typů, např. text, celé nebo desetinné číslo, datum, příznak pravda/nepravda, odkaz do jiné třídy a podobně. Každá třída a dotaz jich může mít neomezeně (resp. v závislosti na verzi SQL serveru).
Systémové sloupce
Po vytvoření nové třídy je automaticky vytvořeno 11 systémových sloupců. Ty si zobrazíme kliknutím na tlačítko Sloupce v detailu třídy:
Abychom systémové sloupce viděli, zrušíme zaškrtnutí checkboxu Zobrazit bez systémových sloupců.
Popišme si význam jednotlivých sloupců:
- ID – jedinečný identifikátor záznamu ve třídě,
- ShortDescription – krátký popis záznamu. Zobrazuje se při odkazech v jiných třídách a ve výběrovém formuláři. Tento text má reprezentovat význam daného záznamu.
- Created – datum vytvoření záznamů,
- Creator – účet uživatele, který záznam vytvořil,
- CreatedDataSourceId – id datového zdroje, který záznam vytvořil,
- Modified - stejné jako pro Created, ale nastavuje se při změně záznamu,
- Deleted - stejné jako pro Created, ale nastavuje se při smazání záznamu
Vytvoření vlastních sloupců
Pro vytvoření nového sloupce klikneme v toolbaru na tlačítko Nový. Zobrazí se nám stránka pro výběr z jednotlivých typů sloupců:
Klikem si vybere typ sloupce (např. Text). Zobrazí se následující stránka:
Popíšeme si tyto základní nastavení sloupce:
- Kód – každý sloupec musí mít jedinečný kód v rámci své třídy. Používá se např. ve skriptech.
- Název – název sloupce, lze jej zadat lokalizovaně,
- Popis – popis se zobrazuje v detailu záznamu pod názvem. Měl by uživateli pomoci pochopit jakou hodnotu má do daného sloupce vložit.
- Povinné – příznak, zda je potřeba sloupec vyplnit, či nikoli,
- Povolit editaci… - povolení, kdy lze hodnotu sloupce měnit, zda jen při vytváření nového záznamu nebo i při jeho následné změně
Další vlastnosti jsou již závislé na typu vybraného sloupce. Pro textový sloupec jsou ještě zajímavé tyto vlastnosti:
- Lokalizovaná hodnota – při zaškrtnutí lze text zadat jako lokalizovaný do více jazyků
- Min/Max délka textu – pro omezení délky zadávaného textu
Většina vlastností sloupců je společná a nepovinná.
Přednastavené sloupce
Pokud chceme použít přednastavené sloupce, zaškrtneme u požadovaných sloupců checkbox a klikneme na tlačítko Vytvořit vybrané sloupce:
Přednastavené sloupce ušetří spoustu času při vytváření vlastních sloupců. Můžeme je upravovat stejně, jako kdybychom tvořili sloupce ručně. Pro číselníkové třídy lze vytvořit všechny sloupce pomocí přednastavených sloupců.
Pokud si datové schéma promyslíme dopředu, lze číselníkové třídy vytvořit ještě rychleji. Na obrazovce se seznamem tříd je tlačítko Vytvořit číselníky. To zobrazí stránku, kde bychom zadáli kód a název více tříd najednou a vybrali jim přednastavené sloupce. Tlačítkem Vytvořit číselníky bychom mohli vytvořit i více tříd i se sloupci naráz.
Sloupec typu Číselníková hodnota
Tento typ sloupce umožňuje propojovat jednotlivé třídy mezi sebou. Mějme třídy Úkol a Stav úkolu. Do třídy Úkol vytvoříme nový sloupec typu Číselníková hodnota a jako Referencovanou třídu vybereme Stav úkolu. Pak můžeme každému úkolu přiřadit jeho aktuální stav.
Ve vlastnosti Typ vazby určujeme, zda má být vazba jednoduchá nebo násobná. Pro jednoduchou vazbu lze v záznamu vybrat jen jeden odkazovaný záznam. V našem příkladu jednomu úkolu můžeme přiřadit právě jen jeden stav. Pokud nechceme odkazovat na jinou třídu, ale na uživatele, pak zaškrtněte vlastnost Odkaz na uživatele. Následující obrázek ukazuje zobrazení dvou sloupců, první Autoři pro více uživatelů a druhý Schvalovatel pro jednoho uživatele:
V odkazech se zobrazuje ShortDescription dané třídy.
Pokud je lokalizovaný do více jazyků, nstavíme vlastnost
Lokalizovaná hodnota i na tomto sloupci.
Na obrázku vidíme lokalizovaný název bez nastavené vlastnosti
Lokalizovaná hodnota:
A zde vidíme ten stejný záznam, ale s nastavenou vlastností Lokalizovaná hodnota:
V základním nastavení lze z odkazované třídy vybírat ze všech záznamů. To nemusí být výhodné vždy, proto můžeme v detailu sloupce, na záložce Reference, nastavit filtr, který omezí vybírané záznamy:
Takto nastavený filtr nemůže uživatel změnit.
Pokud bychom u sloupce zaškrtli vlastnost Výběr ve vyhledávacím formuláři, pak na záložce Reference bychom mohli vybrat sloupce, které se budou zobrazovat na výběrovém formuláři. Standardně se zobrazuje pouze Id a Krátký popis (Shortdescription), což někdy nemusí být dostatečné:
Kliknutím na ikonu očička sloupec povolíme/zakážeme pro zobrazení. Přetažením obdélníčku se sloupcem nahoru/dolů změníme pořadí zobrazení sloupců ve vyhledávacím formuláři.
Sloupec typu Číselníková hodnota (na různé třídy)
Tento typ sloupce je stejný jako předchozí a navíc může odkazovat na více tříd najednou.
Představme si, že máme třídu Půjčovna, ve které evidujeme věci, které si někdo půjčil. Tyto věci máme v uloženy v různých třídách, které spolu přímo nesouvisí, ani ze sebe nedědí. Pak bychom museli mít ve třídě Půjčovna pro každý takovýto odkaz jeden sloupec, což je nešikovné.
Proto máme tento typ sloupce, u jehož definice si vybereme třídy, na které se má odkazovat:
Vzhled formulářů
Po vytvoření sloupců ve třídě je někdy vhodné nastavit, jak bude vypadat formulář se seznamem záznamů a detailní formulář pro jeden záznam.
Tyto formuláře se nastavují automaticky, ale někdy je potřeba je upravit.
V seznamu sloupců je na toolbaru tlačítko Vzhled formuláře (viz první obrázek lekce). Po kliknutí na toto tlačítko se zobrazí následující stránka se dvěma záložkami:
Záložka Detailní formulář
Vkládání sloupců do detailního formuláře se řídí určitými pravidly. Nejdříve musíme do formuláře vložit Záložku, Skupinu nebo Oddělovač. Záložka není na formuláři vidět, je potřeba do ní vložit kartu záložky. Na obrázku níže je kartou záložky První karta. Skupina je Základní vlastnosti a Skupina 2. Oddělovač je ten barevný pruh oddělující skupiny - Oddělovač:
Do skupiny následně přidáme rozvržení, kterým určujeme do kolika sloupců chceme vkládat sloupce třídy. Běžně se v ObjectGears používají dva sloupce, ale v určitých případech jich můžeme potřebovat více. Obrázek níže ukazuje nastavení předchozího formuláře:
Čísla za názvy reprezentují zanoření jednotlivých objektů do sebe. Pomocí ikony tužky v pravé části lze pro některé objekty nastavit lokalizované názvy. Pomocí ikony křížku je odstraníme.
Smazání sloupce z formuláře jej nesmaže ze třídy.
Nemusíme mít nutně všechny sloupce zobrazeny. Některé mohou mít jen pomocný interní význam, který nechcete uživatelům ukazovat.
Záložka Seznam záznamů
Zde vybíráme sloupce, které se zobrazí v seznamu záznamů. Kliknutím na ikonu očička sloupec povolíme/zakážeme pro zobrazení. Přetažením celého sloupce nahoru nebo dolů změníme jeho pořadí.
Do bílého pole za názvy záznamů můžeme napsat požadovanou šířku:
- 100 - (jen číslo) – pak je šířka v pixelech
- 30% - (číslo s procentem) – pak je šířka v procentech
Záložka Seznam záznamů vypadá takto:
Pokud není šířka zadána, pak prohlížeč automaticky přizpůsobí šířku dle obsahu.
V další lekci, Objekty systému ObjectGears - Vlastnosti objektu Sloupce, si detailněji popíšeme sloupce pro třídu, tj. dědičnost, globální hledání, opačné sloupce a rozdíly v zobrazení.