1. Třídy

    Article: AN0001603Updated: 22.10.2021

    Třídy slouží k ukládání dat. Data lze do třídy ukládat, měnit a zobrazovat, a to pomocí webových stránek, skriptů, webových služeb či přímo přes databázi.

    Tříd můžete vytvořit neomezené množství dle vašich požadavků. Přiřazením role ke třídě lze různým skupinám uživatelů zobrazit různé třídy s různým druhem přístupu (např. čtení, zápis, mazání).

    Do tříd se vkládají sloupce s různými datovými typy (text, číslo, uživatel). Jednotlivé třídy lze na sebe vzájemně odkazovat pomocí sloupce typu Číselníková hodnota.

    Zobrazení dat

    Data třídy lze zobrazit třemi základními způsoby:

    • Seznam záznamů - záznamy jsou zobrazeny ve formě tabulky
    • Detailní seznam záznamů - jsou zobrazeny detailní informace o více záznamech
    • Detail záznamu - je zobrazen detailní formulář jednoho záznamu. V tomto zobrazení je možné záznamy vytvářet a měnit

    Zobrazení Detailní seznam záznamů je vhodné pro zobrazení přehledu záznamů, např. přehled změn v logu od určitého data, nebo pro porovnání hodnot mezi více záznamy.

    Krátký popis

    Každý záznam obsahuje krátký popis, který jej reprezentuje. Tento popis se používá v odkazech na záznam, např. při zobrazení odkazu z jiné třídy, výběru hodnot v detailu záznamu z jiné třídy atd. Obsah krátkého popisu lze definovat pomocí vlastnosti Formát popisu.

    Postup, jak formát vytvořit, naleznete na stránce Formát popisu.

    Pokud není na třídě definován Formát popisu, pak není možné krátký popis vytvořit a odkazovaný záznam je reprezentován pomocí FullId (id_třídy-id_záznamu):

    <120-22>

    Nadpis třídy v seznamu a detailu záznamu

    Na formulářích se seznamem záznamů a detailním formuláři se automaticky vytváří titulek záznamu z názvu třídy a ID zobrazeného záznamu. Toto chování lze změnit nastavením vlastností Formát pro název třídy v seznamu záznamu a Formát pro název třídy v detailu záznamu v detailu třídy. Do titulku formulářů tak lehce dostanete další informace potřebné pro lepší informovanost uživatelů.

    Šablony

    Pokud jsou na třídě povoleny šablony má uživatel možnost uložit si nastavení určitého záznamu pro pozdější použití do šablony. Při vytváření nového záznamu pak dojde k předvyplnění dat dle této šablony, což zvyšuje efektivitu práce uživatele se systémem. Každý uživatel vidí své šablony, které si vytvořil a tzv. globální šablony. Šablonu může označit jako globální IT vlastník modelu.

    Hierarchie tříd

    Ve třídách můžete pomocí sloupců definovat kompletní objekty. Pokud máte objekty, které sdílejí stejné vlastnosti, protože jsou podobné podstaty, můžete použít dědičnost.

    Příkladem jsou objekty auto, autobus, letadlo, které mají společné vlastnosti max. rychlost, max. dojezd, cena za přepravu, max. počet cestujících apod. Můžete tak vytvořit jednu třídu (dopravní prostředky) a další třídy auto, letadlo, autobus z ní mohou její vlastnosti dědit.

    Dědičností získáváte hned několik výhod:

    • Přidání nového sloupce do předka se ihned projeví ve všech potomcích
    • Můžete si zobrazit seznam předků (např. dopravní prostředky) najednou. Jedním kliknutím se vám zobrazí detail pro příslušný dopravní prostředek (jiný pro auto a jiný pro letadlo)
    • Pokud se v jiné třídě chcete odkazovat na dopravní prostředky, pak stačí vytvořit jeden odkaz na jednu třídu (dopravní prostředky) místo několika odkazů (sloupců) - odkaz na auto, letadlo, autobus...

    Nastavení dědičnosti:

    1. Zobrazte si detail třídy předka
    2. V kontextovém menu klikněte na Hierarchie třídy
    3. Na stránce vyberte nového potomka
    4. Klikněte na tlačítko Přidat vazbu na potomka

    V detailu třídy jsou na záložce Základní vlastnosti zobrazeny potomci a předek třídy.

    Volba Abstraktní třída říká, že třída jako taková nemůže obsahovat záznamy. Vždy musí mít potomka (který již není abstraktní), do kterého lze záznamy vkládat. V příkladu výše by abstraktní třídou byla třída dopravní prostředek. Objekt Dopravní prostředek neexistuje sám o sobě. Reálně existuje až auto, letadlo atd.

    Volba Zobrazit posledního potomka určuje, zda při zobrazení detailu záznamu dané třídy (předka) se bude provádět přesměrování na detail posledního potomka. Pokud si dle příkladu zobrazíte záznamy třídy dopravní prostředky, pak při kliknutí na ID záznamu se zobrazí detail ze třídy auto, letadlo atd se specifickými sloupci dané třídy (potomka). Při nezaškrtnutí této volby se zobrazí detail přímo ze třídy dopravní prostředek bez specifických sloupců potomků.

    Schéma dědičnosti tříd

    V kontextovém menu u modelu je položka Schéma dědičnosti tříd. Kliknutím na ni se zobrazí grafický přehled dědičnosti tříd. Třídy, které nejsou zapojeny do dědičnosti, jsou seřazeny ve spodní části seznamu.

    Schéma zobrazuje vazby typu rodič - potomek, které jsou definovány mezi třídami.

    Násobné sloupce

    Násobné sloupce představují alternativu k použití dědičnosti. Představte si třídu Dopravní prostředky, kde pomocí jednoho sloupce Typ určujete, jaký typ dopravního prostředku je na kterém záznamu ve třídě. Typy mohou být auto, letadlo, kolo... Pro každý typ pak používáte stejné sloupce, ale s jiným významem. Např. pro auto je sloupec použit pro max rychlost ale pro letadlo může být sloupec použit pro maximální dolet. Zároveň pro různé typy můžete nechat zobrazit jen některé sloupce.

    Násobné sloupce nelze použít, pokud má třída předka nebo potomky.

    Postup vytvoření násobných sloupců:

    1. Ve třídě, kde chcete použít násobné sloupce, nastavte volbu Použít násobné sloupce
    2. Vyberte sloupec, který bude určovat "typ"
    3. Uložte třídu
    4. Zobrazte si detail třídy
    5. Na toolbaru klikněte na tlačítko Násobné sloupce
    6. Na zobrazené stránce vyberte sloupce, které budete chtít používat pro násobné sloupce
    7. Ve druhé části stránky postupně vyberte všechny typy a nastavte zobrazení a nadpis pro požadované sloupce

    Seznam rolí

    Přístup uživatelů k datům třídy se řídí pomocí rolí. Ke třídě se přiřadí role s povolenou operací (čtení, změna, mazání...). Uživatelé, kteří mají danou roli, pak mohou na třídě provádět dané operace.

    Role lze přiřadit třema způsoby:

    • přiřadíte roli a operaci - uživatel s danou rolí pak může se všemi záznamy provádět danou operaci
    • přiřadíte roli, operaci a org. strukturu - uživatel s danou rolí pak může, se záznamy vyhovující definici org. struktury, provádět danou operaci
    • převezmete oprávnění od odkazované třídy/záznamů

    Nastavení org. struktury

    • Org. struktura - vyberte požadovanou orgranizační strukturu
    • Úroveň přístupu - určuje, zda se mají práva omezit jen na záznamy uživateli přímo příslušející (Má org. jednotka) nebo se vezme v potaz i nastavení hierarchických vazeb dle organizační struktury (I přes podřízené) a uživateli se tak práva přidělí na záznamy příslušejícím jemu podřízeným organizačním jednotkám.

    Převzetí oprávnění z odkazované třídy

    Pro převzetí práv z odkazované třídy vyberete sloupec odkazující se na jinou třídu a typ operace, pro kterou se mají oprávnění přejímat.

    Uživatel pak pro práci se záznamy potřebuje mít práva na odkazované záznamy. Tímto způsobem lze "dědit" oprávnění mezi třídami. Přebírání oprávnění použijte, pokud oprávnění na záznamy má být řízeno tím, zda má uživatel oprávnění na odkazované záznamy - například uživatel získá oprávnění na kampaň týkající se zákazníka, na kterého má oprávnění, nebo získá oprávnění vidět objednávku na dodavatele, pokud má oprávnění na daného dodavatele.

    Aby uživatel mohl třídu vidět v menu, musí mít na třídě přiřazeno oprávnění na čtení dat.

    Vlastní kód operace

    Při zadávání přístupových oprávnění na třídě je možné zadat vlastní kód pro operaci. To je vhodné, pokud chcete uživatelům přidělit oprávnění na třídu, ale práva chcete zjišťovat pomocí skriptů (OG.ClassDef.HaveUserRightByOperationCode) a aplikovat je dle vašich specifických potřeb. Nemusíte tak používat právo Read, Insert, Update..., čímž by uživatel obdržel na třídě i oprávnění, které mu nechcete přidělit.

    Audit a archivace

    Každý záznam ve třídě má 9 auditních položek. Jsou to tři skupiny pro vytvoření, změnu a smazání záznamu. Audit změny se uchovává jen o poslední změně. Každá skupina obsahuje informace kdy, kdo a z jakého zdroje vytvoření/změnu/smazání provedl.

    Hodnoty se v detailu záznamu zobrazují v bloku Auditní informace. Tento blok není možné ze stránky odstranit. Ve výchozím stavu je sbalen, aby na obrazovce nezabíral moc místa. Kliknutím na jeho název se blok rozbalí.

    Pro zobrazení těchto hodnot je třeba explicitně zapnout archivaci.

    Po zapnutí volby Povolit archivaci dat se budou všechny změny ve třídě zapisovat do nové databázové tabulky. Získáte tak přesný záznam všech změn ve třídě. Na stránce se seznamem záznamů a detailu záznamu je zobrazena ikona pro archivaci . Kliknutím na ni si zobrazíte seznam všech změn nebo jen seznam změn nad vybraným záznamem.

    Při zapnuté archivaci je nutné sledovat dostupné místo na disku, kde databáze fyzicky leží, protože někdy může tento archiv rychle narůstat.

    Mazání dat

    Systém ObjectGears podporuje tři druhy mazání dat ze třídy:

    • Nepovolit mazání - záznam uložený do třídy nelze smazat
    • Fyzicky mazat záznamy - záznam je odstraněn z databáze
    • Logicky mazat záznamy - mazaný záznam je označen (vlastnost Deleted a Deleter) a je považován za smazaný

    Mezi těmito druhy mazání se lze libovolně dle potřeb přepínat. Můžete tak mít na třídě zakázáno mazání, ale někdy je třeba záznam skutečně smazat. IT správce tak může mazání u třídy na chvíli přepnout na fyzické, záznam smazat a opětovně mazání zakázat.

    Ve výchozím stavu se logicky smazané záznamy nezobrazují, nicméně při nastaveném logickém mazání a zaškrtnuté volbě Povolit zobr. smazaných záznamů v seznamu se na stránce se seznamem dat zobrazí volba pro zobrazení smazaných záznamů. Tyto záznamy jsou zobrazeny šedě a kurzívou pro odlišení od aktivních záznamů.

    Pokud je třída povolena pro jiný model, pak je změna mazání na třídě zakázána z důvodu možného narušení integrity dat pro ostatní modely.

    Řazení a stránkování

    Pro třídy s větším počtem záznamů je třeba zavést řazení. Řadit můžete dle až 3 sloupců a to vzestupně nebo sestupně. Po zobrazení záznamů můžete řadit podle libovolného sloupce, stačí jen kliknout na záhlaví daného sloupce v seznamu dat. Řazení musí být explicitně povoleno volbou Povolit řazení.

    Stránkování může být nastaveno individuálně každým uživatelem v nastavení Zobrazit řádky.

     

    Filtrování

    Ve větších třídách je nutné záznamy vyhledávat podle různých sloupců. U třídy je tedy možnost nastavit Rychlý filtr, kde lze vybrat sloupce, které se mají stále zobrazovat na stránce se seznamem záznamů a umožnit zádání filtrovací hodnoty.

    Hromadné změny

    Funkce hromadných změn je velmi užitečná, pokud potřebujete změnit hodnotu v jednom nebo více sloupcích najednou a nastavit v nich jednu hodnotu. Stačí záznamy vyfiltrovat a kliknout na tlačítko pro hromadnou změnu. Zobrazí se prázdný formulář pro zadání změny. V požadovaném sloupci nastavíte novou hodnotu a uložíte. Pokud chcete hodnoty v některém sloupci jen vymazat, pak u příslušného sloupce zaškrtněte checkbox.

    Tato funkce může být potencionálně nebezpečná v tom, že uživatel může nechtěně změnit najednou velké množství záznamů. Proto je tuto funkci nutné nejprve povolit na třídě a pak ke třídě přiřadit roli s operací Hromadná změna. Následně již uživatel s danou rolí uvidí na stránce se seznamem záznamů tlačítko pro hromadnou změnu dat.

    Zároveň při hromadné změně se neuplatňují pravidla při zobrazení záznamu. Uživatel tak může vidět všechny sloupce, i ty, které mu v různých situacích nejsou zobrazeny. Zároveň může mít přístupný sloupec i pro editaci. Přidělujte tuto funkci proto jen poučeným uživatelům.

    Hromadné mazání

    V některých případech je vhodné používat hromadné mazání záznamů. Není nutné mazat záznamy po jednom, ale stačí záznamy na třídě vyfiltrovat a jedním kliknutím je všechny smazat.

    Tato funkce může být potencionálně nebezpečná v tom, že uživatel může nechtěně smazat najednou velké množství záznamů. Proto je tuto funkci nutné nejprve povolit na třídě, pak ke třídě přiřadit roli s operací Povolit hromadné mazání. Následně již uživatel s danou rolí uvidí na stránce se seznamem záznamů tlačítko pro hromadné mazání dat.

    Upozornění

    Nastavením upozornění dáte uživatelům zprávu, že se něco na třídě změnilo, např. byl vytvořen nový záznam nebo se záznam změnil či smazal. V nastavení vyberete, kdy se má upozornění odeslat, na jaký distribuční seznam (seznam příjemců) a konkrétní upozornění, které se má odeslat.

    Upozornění se odesílá vždy, když nastane příslušná operace "Kdy odeslat". Odeslání nelze podmínit jen pro určité případy. Pro tyto případy můžete použít odeslání upozornění v pravidlech třídy.

    Obrázky

    Každé třídě lze přiřadit velký a malý obrázek. Malý obrázek třídy se zobrazuje v menu a v seznamu tříd ve správě. Ve schématech lze obrázky zobrazit též a dle nastavení se zobrazí malý nebo velký obrázek.

    RSS

    Záznamy třídy lze publikovat pomocí RSS. Nejdříve RSS povolte a zadejte počet záznamů, které chcete v RSS vracet. Do RSS jsou vráceny jen aktivní (nesmazané) záznamy a jsou řazeny sestupně podle sloupce Id (nejnovější záznamy jsou první, pak následují starší).

    Pro obsah můžete použít dvě volby pro nadpis a obsah RSS, které však nelze kombinovat. Můžete vybrat jeden sloupec pro nadpis nebo obsah nebo zadáte formát pro výpočet nadpisu nebo obsahu.

    Ukázka nadpisu:

    {{Column.created}} - {{Column.name}}

    Další nastavení

    Zaškrtnutím volby Přístup přes webové služby povolíte uživatelům nebo aplikacím pracovat s daty třídy pomocí vzdáleného volání webovými službami. Pro úspěšné volání potřebuje mít uživatel/aplikace přiřazenou příslušnou roli.

    Volba Povolit navigaci na formuláři umožňuje v detailním zobrazení záznamu zobrazit navigační tlačitka pro přechod mezi záznamy. Uživatel může jednoduše procházet mezi záznamy, aniž by se musel vracet na seznam záznamů. Při současné aktivaci funkce Po ukončení operace zůstat na stejné stránce lze efektivně záznamy aktualizovat a hned se přesouvat na následující či předchozí záznam.

    Aktualizace sloupců

    Pro aktualizaci (vytvoření nebo změna) dat sloupců v záznamech tříd platí několik pravidel v závislosti na zdroji aktualizace:

    • Aktualizace na formuláři (DataDetail.aspx) - je možné aktualizovat pouze sloupce s nastavenou vlastností Povolit editaci při vytváření nebo Povolit editaci při změně.
    • Aktualizace přes webovou službu - je možné aktualizovat pouze sloupce s nastavenou vlastností Povolit editaci při vytváření nebo Povolit editaci při změně. Hodnoty zadané do ostatních sloupců jsou bez upozornění ignorovány.
    • Aktualizace pomocí skriptu (skript v pravidle, ve workflow atd.) - aktualizovat lze všechny sloupce bez omezení
    • Systémové sloupce NELZE NIKDY AKTUALIZOVAT, systém je nastavuje sám a hodnoty zadané v objektu DataRow ignoruje.

    V rámci aktualizace na formuláři nebo při volání webové služby je možné následně spustit pravidlo nebo skript. Toto pravidlo či skript již může nastavovat libovolný sloupec bez omezení (kromě systémových sloupců).

    Detailní formulář a volání webové služby je považován za vstup, který musí být kontrolován z pohledu datové integrity, a proto existují taková to omezení. Skripty jsou považovány za bezpečnou součást systému, a proto pro ně tato omezení neplatí.

    Inicializace nového záznamu

    Před zobrazením nového záznamu na detailním formuláři proběhne několik kroků. Jednotlivé kroky můžete použít pro inicializaci záznamu na požadované hodnoty:

    1. výchozí hodnoty na sloupci

    2. šablona - pokud je použita šablona, pak se nyní aplikuje

    3. sekvence - má-li některý sloupec nastavenu sekvenci, pak se vytvoří nová hodnota

    4. spuštění pravidel pro nastavení hodnoty a skript

    5. inicializace přes URL (viz dále)

    Tato inicializace neprobíhá, pokud je stránka DataDetail.aspx v režimu hromadné změny.

    Inicializace přes URL

    Funkce Inicializace přes URL umožňuje pro nový záznam nastavit jeden sloupec typu Odkaz do číselníku na jednu hodnotu. Do url přidejte proměnné Fi1c a Fi1v. První je ID sloupce a druhá je ID odkazovaného záznamu.

    .../DataDetail.aspx?Id=100-0&Fi1c=303&Fi1v=10

    Kopírování třídy

    V detailu třídy je v menu dostupná funkce Zkopírovat třídu. Při kopírování se vytváří kopie všech podřízených entit:

    • sloupce třídy
    • rychlý filtr
    • násobné sloupce
    • detailní formulář a formulář seznamu záznamů
    • automatické časové operace
    • tlačítka
    • pravidla
    • přiřazené role na třídě
    • upozornění na třídě

    Seskupování záznamů

    V nastavení třídy je možné povolit Seskupování záznamů. Tím je možné na seznamu záznamů (Datas.aspx) seskupovat záznamy podle hodnot vybraného sloupce. Jako sloupec pro seskupení lze použít sloupec jednoho z těchto typů:

    • Text
    • Příznak ano/ne
    • Číselníkový odkaz - jednoduchý

    Kliknutím v záhlaví sloupce na ikonu  nastavíte seskupování podle daného sloupce. Opakovaným kliknutím na záhlaví seskupovaného sloupce zase seskupování zrušíte.

    Po zvolení seskupovaného sloupce (nebo přednastavení v detailu třídy) se místo záznamů ze třídy jako první zobrazí hodnoty ze seskupovaného sloupce, za mím počet záznamů s touto hodnotou. Pokud ve sloupci není zadaná žádná hodnota, pak se zobrazí text [bez hodnoty]. Kliknutím na požadovanou hodnotu se načtou záznamy, které mají nastavenou tuto hodnotu.

    Při seskupování je načítání záznamů postupné. Vždy se načte několik záznamů a další se donačtou až po kliknutí na tlačítko Další.

×