Jak připojit definovatelnou kolekci k existující agendě

Definovatelný business objekt typu Řádek nemusí být navázaný jen na vlastní, nově vytvořený hlavičkový business objekt (viz Vytvoření řádkového objektu). Jako Třídu hlavičky lze zadat kteroukoli registrovanou business třídu v systému - tedy i výrobcem dodávanou (systémovou) agendu, například Objednávky přijaté. Tímto způsobem lze k libovolné existující agendě doplnit zcela novou kolekci vlastních údajů, aniž by bylo potřeba do této agendy či jejího formuláře jakkoli zasahovat - nová záložka se v jejím detailu objeví automaticky.

Připojení definovatelné kolekce ke stávající agendě
  1. V agendě Definice business objektů založte nový objekt s Typem Řádek stejně jako v návodu Vytvoření řádkového objektu - zadejte Název třídy (anglicky) a Popisek (česky).
  2. Do pole Třída hlavičky zadejte přesný Popisek cílové existující agendy, například Objednávka přijatá - pole nabízí úplně stejný výběr jako pro vlastní definovatelný hlavičkový objekt, protože nerozlišuje mezi systémovými a definovatelnými třídami. Stejně jako u kteréhokoli jiného podobného pole (viz např. Vlastní položka hlavičky s odkazem do číselníku) nespoléhejte na částečně napsaný text - buď zadejte přesný Popisek, nebo cílovou třídu vyberte ručně z rozbaleného seznamu (Alt+šipka dolů), a po zadání si ověřte, že se v poli zobrazuje přesně očekávaný název.
  3. Volbu Kolekce řádků nezatrhávejte. Tato volba znamená, že nová kolekce nahradí vestavěnou hlavní kolekci řádků cílového hlavičkového objektu, a dává smysl jen v případě, kdy cílový objekt žádnou vlastní hlavní kolekci ještě nemá. U existující, výrobcem dodávané dokladové agendy naopak chcete svou kolekci přidat vedle stávajících řádků jako další, samostatnou záložku - proto volbu nechte nezatrženou.
  4. Do pole Pozice záložky zadejte kladné celé číslo (např. 1). Bez vyplnění tohoto pole se kolekce sice zaregistruje, ale v uživatelském rozhraní se vůbec nezobrazí - viz upozornění níže.
  5. Definici uložte a doplňte případné vlastní položky stejným způsobem jako u kteréhokoli jiného řádkového objektu (viz Doplnění vlastních položek).
  6. Ukončete klienty ABRA Flores na všech počítačích a restartujte aplikační server - stejně jako po každé jiné změně definic business objektů.
  7. Otevřete cílovou agendu (v příkladu Objednávky přijaté) a na detailu záznamu - nová záložka s vaší kolekcí se v detailu zobrazí automaticky, na pozici odpovídající zadanému pořadovému číslu, bez jakékoli další úpravy cílové agendy nebo jejího formuláře.

Pole Pozice záložky je snadné při zakládání definice přehlédnout, protože bez něj systém neohlásí žádnou chybu - kolekce se jen tiše nezobrazí. Pokud po restartu novou záložku v cílové agendě nevidíte, zkontrolujte jako první právě tuto hodnotu.

Chcete-li si k reklamaci (viz Příklad z praxe - definovatelná agenda Reklamace) evidovat, ze které přijaté objednávky reklamovaná položka pochází, můžete stejným postupem naopak doplnit vlastní kolekci přímo do agendy Objednávky přijaté - stačí založit řádkový objekt s Třídou hlavičky Objednávka přijatá a vlastními položkami podle potřeby.

Kolekce v kolekci

Třídou hlavičky řádkového objektu může být i jiný řádkový objekt - lze si tedy vytvořit vícestupňové vnořené kolekce ("kolekce v kolekci"), typicky když k jednotlivým řádkům potřebujete evidovat ještě podrobnější rozpad (např. dílčí položky k řádku objednávky). Založení takového podřízeného řádkového objektu je naprosto stejné jako v předchozí kapitole - jen do pole Třída hlavičky zadáte Popisek nadřízeného řádkového objektu místo hlavičkového.

Na rozdíl od kolekce navěšené přímo na hlavičkový objekt se ale takto vnořená kolekce nezobrazí automaticky - běžný editor řádků (multigrid), ve kterém se zobrazuje kolekce nadřazeného řádkového objektu, nemá vlastní místo pro další, podřízenou záložku. Vnořenou kolekci proto zpřístupníte ručně, přes definovatelný formulář nadřazeného řádkového objektu (obecný postup viz Definovatelný formulář a definovatelné panely na definovatelné agendě):

  1. V editaci definovatelného formuláře nadřazeného řádkového objektu přidejte prvek Definovatelné řádky - najdete jej ve stejné nabídce jako ostatní prvky formuláře (pole, panely apod.).
  2. Ve vlastnostech prvku vyberte v poli Název položky z nabídnutého seznamu pole odpovídající vaší vnořené kolekci - v seznamu je pod technickým názvem odvozeným od Názvu tabulky podřízeného řádkového objektu (bez systémového prefixu ET$), ne od jeho Názvu třídy. Pokud jste Název tabulky při založení objektu neměnili, jde o Název třídy s koncovým s (viz Vytvoření definovatelného business objektu).
  3. Volitelně zatrhněte Zobrazovat definovatelný formulář, pokud chcete pod mřížkou vnořených řádků navíc zobrazit i detail aktuálně vybraného řádku přes jeho vlastní definovatelný formulář - po zatržení vyberte, který formulář se má použít.
  4. Formulář uložte. Vnořená kolekce se od této chvíle zobrazuje jako součást definovatelného formuláře nadřazeného řádku.

Přidání prvku Definovatelné řádky na formulář je stejný postup jako přidání kteréhokoli jiného prvku definovatelného formuláře - liší se jen tím, že místo obyčejného pole vkládáte celou mřížku podřízené kolekce.

Přehled použitých obecných návodů