Sfairadora

  • Referenční příručka

Manipulátor tabulky

Nástroj Manipulátor tabulky umožňuje provést určitou jednorázovou manipulaci nad všemi řádky tabulky (například doplnit nebo změnit hodnoty v některém sloupci na základě určité podmínky a pod.). Manipulaci lze provádět buď nad celým řádkem tabulky, nebo jen nad buňkami aktivního sloupce nebo nad označenými sloupci. Rovněž lze zvolit, zda se do manipulace zahrnou pouze označené řádky, nebo všechny řádky. Vlastní manipulace se zadá jako výraz v jazyce Enki).

Tabulka pro manipulaci

Zde se zvolí, která tabulka a které její řádky a sloupce, mají být předmětem manipulace.
Položka
Popis
Použít aktivní tabulku
Použita bude tabulka, která byla aktivní při otevřením nástroje. Pokud nebyla žádná tabulka aktivní, lze ji aktivovat i následně. Není-li aktivní tabulka, nelze nástroj použít.
Vybrat tabulku ručně
Tabulka se určí ručně pomocí položek Název dat tabulky a Reference dat tabulky.
Aktivní řádek/Označené řádky
Manipulace bude provedena jen na aktivním řádku, nebo na všech označených řádcích, pokud nějaké označené jsou.
Všechny řádky
Manipulace bude provedena na všech řádcích tabulky
Název dat tabulky
Pokud je označena možnost Vybrat tabulku ručně, lze zde určit název objektu, ve kterém je tabulka obsažena. Typicky je třeba vybrat identifikátor master, který odkazuje na dokument, k němuž se nástroj vztahuje (tj. ten, který byl aktivní při aktivaci nástroje).
Pokud je označena možnost Použít aktivní tabulku, zobrazuje informace o použité tabulce.
Reference dat tabulky
Reference na tabulku vzhledem k objektu Název data tabulky.
Oblast manipulace
Lze zvolit, zda se manipulační výraz bude vztahovat k celému řádku tabulky nebo pouze k aktivnímu sloupci (resp. k označeným sloupcům).
Pokud je tabulka vybíraná ručně, je oblastí manipulace vždy celý řádek, protože ručně vybraná tabulka nemá aktivní/označené sloupce.

Manipulační výraz

Pod výběrem dat k manipulaci je prostor pro zadání vlastního manipulačního výrazu. Manipulační výraz je opakovaně vyhodnocován pro každý určený řádek tabulky. Data, jichž se aktuálně manipulace týká se označují proměnnou x. Pokud je Oblast manipulace vybrána jako celý řádek, označuje x strukturu odpovídající celému řádku. K obsahu jednotlivých buněk lze přistupovat pomocí tečkové notace. Například buňka sloupce jméno se označí výrazem x.jméno. K snadnému vkládání jmen sloupů slouží tlačítka vpravo od editoru výrazu.
Pokud je Oblast manipulace nastavena na vybraný sloupec, proměnná x označuje přímo aktuální buňku. Pokud je označeno více sloupců, je manipulační výraz pro každý řádek vyvolán několikrát, přičemž x označuje vždy jednu buňku.

Provedení manipulace a uložení nastavení

Vlastní provedení manipulace je vyvoláno tlačítkem Provést. Pokud by manipulace trvala dlouho, zobrazí se okno, které ji umožňuje přerušit. Pokud je manipulace přerušena, řádky na kterých již byla provedena budou změněny, zatímco zbývající zůstanou v povodním stavu. Řádky, na nichž byla manipulace provedena tedy nejsou vráceny do původního stavu.
Tlačítko Uložit nastavení vytvoří v aktuální dokumentu nový nástroj, který bude vytvořen podle tohoto obecného nástroje na manipulaci s tabulkou, bude však nastaven podle aktuálních nastavení. Tak lze vytvořit specifický nástroj pro snadné opakované provádění nějaké akce s tabulkou.

Poznámky

Při zobrazení nástroje Manipulátor tabulky by neměla být editována hodnota buňky tabulky (tj. neměl by blikat kurzor), protože editovaná hodnota by neodrážela změnu provedenou ve vlastních datech.
V některých případech může být vhodnější použít počítaného sloupce tabulky, který průběžně reflektuje změny v tabulce, místo jednorázového užití manipulátoru tabulky.

Příklady

1.
Zdesetinásobení hodnoty aktivního sloupce
Oblast manipulace se nastaví na vybraný sloupec a manipulační výraz na:
x = x * 10
nebo alternativně totéž
x *= 10
2.
Nastavení hodnoty nevyplněných nepovinných buněk na 0
Oblast manipulace se nastaví na vybraný sloupec a manipulační výraz na:
if(~is_present(x))
x = 0
3.
Odstranění nepovinných hodnot
Buňkám s nepovinnou hodnotou, která mají hodnotu nula, má být hodnota odstraněna.
Oblast manipulace se nastaví na vybraný sloupec a manipulační výraz na:
if(is_present(x) & x==0)
remove_optional(x)
Viz funkce pro manipulaci s objekty.
4.
Nastavení hodnot jednoho sloupce v závislosti na druhém
Pokud sloupce výkon přesáhne 100 má se sloupec mzda zvýšit o 15 %.
Oblast manipulace se nastaví na celý řádek a manipulační výraz na:
if(x.výkon > 100)
x.mzda *= 1.15
5.
Odstranění počátečních a koncových uvozovek ve sloupci typu String
Oblast manipulace se nastaví na vybraný sloupec a manipulační výraz na:
if(prefix(x, 1) == "`"")
x = suffix(x, size(x)-1);
if(suffix(x, 1) == "`"")
x = prefix(x, size(x)-1);
Viz funkce pro manipulaci s řetězci.