Sfairadora

  • Referenční příručka

Výstupní šablony Enkidu

Jazyk Enkidu slouží k vytváření výstupních textových šablon. Šablonu v jazyce Enkidu lze nahlížet jako funkci, jejímž výsledkem je formátovaný text (typ Rich_text). Šablony v jazyce Enkidu lze vytvářet především v sekci dokumentu Šablony výstupů, jazyk Enkidu lze však použít k vytvoření jakékoli funkce vracející typ Rich_text (viz editor funkce). Nejsnazší způsob, jak vytvořit šablonu v jazyce Enkidu je nechat šablonu vytvořit automaticky okopírováním položky sekce Data, Pohledy nebo Zobrazení do sekce Výstupy. Takto vytvořenou šablonu je možné upravit podle potřeby.
Šablona v jazyce Enkidu je formátovaný text, ve kterém jsou vloženy příkazy jazyka Enkidu. Příkazy jsou od ostatního textu odlišeny nastavením atributu znakového formátu skrytý. Editor formátovaného textu určený k zadávání šablon Enkidu vykresluje skryté znaky takto: znaků, které lze otevřít z nabídky Formát. Lze rovněž použít klávesovou zkratku Ctrl+H. Pokud je třeba atribut skrytého písma odstranit, lze to rovněž provést klávesami Ctrl+mezerník, které odstraní všechno dodatečně přidané formátování znaků. Text, které není označen jako příkaz Enkidu, se prostě okopíruje do výsledku.
V mnoha příkazech jazyka Enkidu je třeba zadat hodnotu. K zadávání hodnoty lze použít libovolný výraz jazyka Enki. Je však třeba rozlišovat mezi konstrukcemi jazyka Enki a případnými stejnojmennými konstrukcemi jazyka Enkidu. Oba jazyky například obsahují konstrukci if, jejich role se však liší. Zatímco v jazyce Enki jde o podmíněný výpočet hodnoty, v jazyce Enkidu jde o podmíněné vložení části textu do výstupu, takže tato konstrukce jazyka Enkidu nemůže vracet žádnou hodnotu. Liší se i jejich syntax. V jazyce Enkidu má příkaz if formu if ... else ... endif. Obecně je podstatné si uvědomit, že výraz v jazyce Enki je použit na definovaném místě příkazu jazyka Enkidu a nemůže například obsahovat text neoznačený jako příkaz.
V případě rozsáhlejších konstrukcí jazyka Enkidu je přirozené psát příkazy do samostatných odstavců:
 Hodnota x:
 if(x>0)
 Hodnota je kladná
 else
 Hodnota je záporná nebo 0
 endif
 Konec hodnoty x
Pokud by však šablona byla zapsána tímto způsobem, po jejím vyhodnocení by ve výsledku zůstaly prázdné odstavce na místech příkazů. Proto je možné označit odstavec jako příkazový odstavec pomocí značky # na začátku odstavce. V takovém případě se odstavec do výstupu nepromítne a příkazy se provedou tak, jako by byly připojeny na začátek následujícího odstavce:
 Hodnota x:
 #if(x>0)
 Hodnota je kladná
 #else
 Hodnota je záporná nebo 0
 #endif
 Konec hodnoty x
Příkazy lze samozřejmě psát i dovnitř odstavce:
 Hodnota x: if(x>0)Hodnota je kladnáelseHodnota je záporná nebo 0end if Konec  hodnoty x
Přitom je třeba dbát na to, že mezery označené jako příkaz se nezahrnují do výstupu, pouze oddělují případné příkazy, zatímco mezery takto neoznačené jsou součástí výsledného textu. Příkazy není třeba oddělovat mezerou od textu, který není příkazem.
Na ostatních atributech formátu příkazů (kromě atributu skryté písmo) nezáleží (s vyjímkou < > (vložení hodnoty) a zvláštních symbolů). Je tedy možné formátování příkazů využít ke zpřehlednění šablony tím, že se příkazům nastaví například odlišný typ a barva písma.

Ošetření chyb

Pokud při běhu vznikne chyba při vyhodnocování výrazu v jazyce Enki, vytváření výstupu se nepřeruší, pouze se na dané místo výstupu vloží červeným písmem popis chyby.

Poznámka

Pokud se upravuje šablona v sekci dokumentu Šablony výstupů a zároveň je zobrazen příslušný výsledek šablony (položka sekce dokumentu Výstupy), dojde k přepočtení výstupu až po zapsání upravené šablony. K zapsání dojde ukončením editace šablony (opuštěním editoru), nebo jej lze vynutit klávesami Shift+Enter.