1. Základní informace

  • Databázový dotaz definuje zdroj dat načítaných z databáze, který je následně používán v ovládacích prvcích editačních formulářů, nahlížecích stránek, portletech a ve skriptech.
  • Databázový dotaz určuje, jaká množina databázových záznamů bude načtena a předána k dalšímu zpracování nebo vizualizaci.
  • Databázový dotaz je samostatný konfigurovatelný objekt aplikace, který zapouzdřuje logiku výběru dat z databáze a odděluje ji od vizuálních ovládacích prvků.
  • Výsledkem databázového dotazu je množina dat, která je předána ovládacím prvkům nebo skriptům k vyhodnocení či zobrazení.

1.1. Běžný dotaz

  • Běžný dotaz se používá u všech ovládacích prvků, které jako zdroj dat využívají přímo databázová data.
  • Běžný dotaz je výchozím typem v návrháři databázových dotazů.
  • Při sestavování výsledného SQL dotazu používá pouze klauzule „SELECT“, „FROM“, „JOIN“, „WHERE“ a „ORDER BY“.
  • Běžný dotaz nepoužívá klauzuli „GROUP BY“ a neobsahuje žádné agregační funkce.

1.2. Agregační dotaz

  • Agregační dotaz se používá u nahlížecích tabulek a grafů, které zobrazují agregovaná data.
  • Agregační dotaz pracuje s klauzulí „GROUP BY“ a agregačními funkcemi nad databázovými sloupci.
  • Agregační dotaz je definován v návrháři databázových dotazů:
    • zaškrtnutím volby „Agregační dotaz“,
    • seznamem seskupovacích sloupců, které se objeví ve výsledném SQL dotazu v klauzuli „GROUP BY“.
  • Jako agregační se dotaz sestaví, jen pokud obsahuje alespoň jeden agregovaný, informativní nebo výrazový sloupec; se samotnými seskupovacími sloupci se načte jako běžný dotaz.
  • Podporované způsoby seskupování zahrnují:
    • běžné seskupení podle sloupce („GROUP BY ng_“),
    • seskupení podle hodiny ve dni,
    • seskupení podle hodiny,
    • seskupení podle hodiny a minuty,
    • seskupení podle dne,
    • seskupení podle týdne,
    • seskupení podle měsíce,
    • seskupení podle kvartálu,
    • seskupení podle roku.
  • Agregační dotaz dále obsahuje:
    • seznam agregovaných sloupců, které se ve výsledném SQL dotazu objeví ve spojení s funkcemi „COUNT“, „SUM“, „AVG“, „MAX“ a „MIN“, s možností použití podmíněné logiky pomocí „CASE WHEN“,
    • seznam informativních sloupců, které se ve výsledném SQL dotazu objeví jako konstanty nebo vypočtené hodnoty a jsou následně vyhodnoceny lexikálním analyzátorem,
    • seznam sloupců, podle kterých je možné filtrovat data v nahlížecí tabulce nebo grafu,
    • seznam hlaviček pro seskupování sloupců v nahlížecí tabulce,
    • seznam barev použitých pro vykreslení jednotlivých datových řad v grafu.
  • Jednotlivé sloupce agregačního dotazu používají následující syntaxi názvu:

„název@matematický_výraz@zobrazovaná_hodnota@podmínka“.

  • Název určuje popisek sloupce zobrazovaný v nahlížecí tabulce nebo grafu.
  • Matematický výraz je volitelný a používá se u sloupců typu „Výraz, formát dle“.
  • Zobrazovaná hodnota je volitelná a umožňuje nahradit vypočtenou hodnotu textem nebo skrýt celý sloupec pomocí hodnoty „@@“.
  • Podmínka je volitelná a umožňuje omezit zobrazení řádků výsledné množiny dat. Podmínka filtruje celé řádky výsledku (například „>5“ ponechá jen řádky, v nichž je hodnota sloupce větší než 5) a součty v zápatí se počítají jen ze zobrazených řádků.
  • Příklady názvů sloupců:
    • „Součet prvního a druhého sloupce@#c0#+#c1#“,
    • „Součet prvního a druhého sloupce@#c0#+#c1#@Skrytá hodnota“,
    • „Kumulativní součet shora@+1“,
    • „Kumulativní součet zdola@-1“,
    • „Kumulativní součet prvního a druhého sloupce@+1#c0# + #c1#“,
    • „Součet hodnot větších než 5@@@>5“,
    • „Sloupec@+sum“,
    • „Sloupec@-sum“.
  • Speciální hodnoty výrazu:
    • „+1“ na začátku výrazu – kumulativní součet shora: hodnota každého řádku se přičte k součtu všech předchozích řádků; při změně hodnoty seskupovacího sloupce začíná kumulace znovu,
    • „-1“ na začátku výrazu – kumulativní součet zdola,
    • „++1“ a „--1“ na začátku výrazu – kumulativní součet, který navíc započítá hodnoty z období před začátkem časového úseku,
    • „+sum“ na konci výrazu – hodnota sloupce se sčítá do řádku součtů,
    • „-sum“ na konci výrazu – řádek součtů zůstane u sloupce prázdný.
  • Proměnné „#c0#“, „#c1#“ atd. ve výrazu odkazují na sloupce výsledku v tomto pořadí: seskupovací sloupce, sloupec seskupený podle data a pak ostatní sloupce. Výraz může použít hodnotu jiného výrazového sloupce, jen pokud je tento sloupec uveden dříve; chyba ve výrazu dá hodnotu 0.
  • Hlavičky agregačního dotazu používají syntaxi:

„počet_sloučených_buněk@název_hlavičky“.

  • Příklady hlaviček:
    • 1. řádek: „5@X;1@Y“,
    • 2. řádek: „2@A;3@B;1@C“.

1.3. Vnořené záznamy

  • Vnořený záznam je databázový záznam přidružený ke svému rodičovskému záznamu pomocí cizích klíčů „pid“ a „pform“.
  • Tyto cizí klíče jsou součástí každé databázové tabulky a určují ID rodičovského záznamu a ID editačního formuláře, ve kterém se rodičovský záznam nachází.
  • Odkazy pomocí „pid“ a „pform“ mohou směřovat jak do jiné databázové tabulky, tak i do stejné tabulky (rekurzivní struktury, např. ovládací prvek „Tree“).
  • Hodnoty „pid“ a „pform“ jsou vyplňovány automaticky podle kontextu, ze kterého byl nový záznam vytvořen.
    • Při vytvoření záznamu z nahlížecí stránky mají hodnotu „0“.
    • Při vytvoření záznamu z jiného databázového záznamu jsou nastaveny podle ID rodiče a jeho formuláře.
  • Použití sloupce „pform“ je obvykle minimální a uplatňuje se zejména v případech, kdy jedna tabulka slouží více rodičovským formulářům.
  • Sloupce „pid“ a „pform“ nejsou ve výchozím stavu indexované. Při jejich aktivním používání je nutné indexování zapnout v nastavení editačního formuláře.
  • Nahlížecí tabulky v editačních formulářích obsahují volbu „Zobrazit pouze vnořené záznamy“, která automaticky doplňuje podmínku „PID = ID aktuálního záznamu“. Hodnota „pform“ se přitom netestuje a u nového, dosud neuloženého záznamu tabulka nezobrazí nic.
  • Nahlížecí tabulky na nahlížecích stránkách obsahují volbu „Skrýt vnořené záznamy“, která automaticky doplňuje podmínku „PID = 0“.

1.4. Omezující podmínky dotazu

  • Databázový dotaz může obsahovat libovolné množství omezujících podmínek, které následují za klauzulí „WHERE“.
  • Jednotlivé podmínky mohou být kombinovány pomocí logických operátorů „AND“ a „OR“ a seskupovány pomocí levých a pravých závorek.
  • Výsledná podmínka v jazyce SQL je sestavena automaticky na základě seznamu podmínek definovaných v grafickém návrháři databázových dotazů.
  • Podmínka testující (ne)vyplněnost hodnoty musí u sloupců datového typu „String“ počítat s oběma podobami prázdné hodnoty – s textovým řetězcem nulové délky i s databázovou hodnotou „null“. Samotný operátor „není definováno“ zachytí pouze hodnotu „null“ – prázdný řetězec nezachytí.
    • Taková podmínka je složená: levá_strana rovná se „“ nebo levá_strana není definováno. V jazyce SQL: levá_strana = '' OR levá_strana IS NULL.
    • U ovládacích prvků typu „ForeignKey“, „File“ a „Image“ analogicky: levá_strana rovná se „0“ nebo levá_strana není definováno. V jazyce SQL: levá_strana = 0 OR levá_strana IS NULL.
    • Detailní popis testu na (ne)vyplněnou hodnotu je uveden v samostatné příručce Práce s proměnnými ve skriptu.
  • Operátory „nerovná se“, „neobsahuje“, „nezačíná“ a „nekončí“ nevrátí záznamy, které mají ve sloupci hodnotu „null“. Podmínka „není v dotazu“ nevrátí nic, pokud vnořený dotaz vrací hodnotu „null“.
  • Je-li hodnotou podmínky proměnná a proměnná je prázdná, podmínka se nevynechá, ale porovná sloupec s prázdnou hodnotou – u textu s prázdným řetězcem, u čísla s nulou; podmínka na datum v takovém případě nevrátí nic.
  • Hodnota podmínky může obsahovat speciální hodnoty:
    • „#random#“ – náhodné číslo od 1 do nejvyššího ID záznamu v tabulce, typicky v podmínce „ID = #random#“; číslo nemusí odpovídat existujícímu záznamu,
    • „#dayrandom#“ – totéž, ale číslo se mění jednou za den a je stejné pro všechny uživatele,
    • „#weekend#“ – vybere záznamy, jejichž datum připadá na sobotu nebo neděli.
  • V podmínkách dotazu lze používat následující rozšířené zápisy, které jsou návrhářem automaticky interpretovány do odpovídající SQL syntaxe:
    • Datové typy „Integer“ a „Long“ umožňují zápis ve tvaru „levá_strana = 1;2;3“. Tento zápis je interpretován jako „levá_strana IN (1, 2, 3)“.
    • Datový typ „String“ umožňuje zápis ve tvaru „levá_strana = (array)A;B;C“. Tento zápis je interpretován jako „levá_strana IN ('A', 'B', 'C')“.
    • Pokud je na levé straně podmínky použit ovládací prvek typu „MultiListBox“ (hodnoty oddělené tabulátorem) a na pravé straně je textová konstanta, je podmínka interpretována jako:
      • „JoinText(levá_strana, pravá_strana)“ u databáze Firebird,
      • „dbo.JoinNtext(levá_strana, pravá_strana)“ u databáze Microsoft SQL Server.
  • Výsledný SQL dotaz vyhodnotí všechny záznamy, které mají ve sloupci typu „MultiListBox“ uloženou alespoň jednu hodnotu shodnou s textovou konstantou na pravé straně podmínky.
    • Pokud je na levé i pravé straně podmínky použit ovládací prvek typu „MultiListBox“, je podmínka interpretována stejným způsobem pomocí funkcí „JoinText“ (Firebird) nebo „dbo.JoinNtext“ (MSSQL). Výsledný SQL dotaz vyhodnotí všechny záznamy, u nichž existuje alespoň jedna shodná hodnota v obou sloupcích.
    • Datový typ „String“ dále umožňuje zápis ve tvaru „levá_strana = (mlb)A#tab#B#tab#C“. Tento zápis je interpretován jako:
      • „JoinText2(levá_strana, 'A B C')“ u databáze Firebird,
      • „dbo.JoinNtext(levá_strana, 'A B C')“ u databáze Microsoft SQL Server.
  • Výsledný SQL dotaz vyhodnotí všechny záznamy, které mají ve sloupci s tabulátorem oddělenými hodnotami uloženou alespoň jednu hodnotu obsaženou v textové konstantě na pravé straně podmínky.
  • Podmínku dotazu je možné definovat také přímo pomocí SQL syntaxe.
    • V takovém případě může být levá strana podmínky včetně operátoru libovolná.
    • Pravá strana podmínky musí vždy začínat prefixem „OK#crlf#“, za kterým následuje vlastní SQL podmínka.
    • Přímá SQL podmínka vznikne jen tehdy, když prefix „OK#crlf#“ zapíše administrátor přímo do hodnoty podmínky nebo když podmínku vrátí funkce zapsaná v hodnotě podmínky (například „ngef(...)“ nebo „EQUALS(...)“). Hodnota dosazená z proměnné (například „#ng_poznamka#“ nebo „#A#“) se vždy vloží jako literál, i když začíná textem „OK“ a zalomením řádku.
    • Proměnné použité uvnitř přímé SQL podmínky se neescapují – hodnotu, kterou může vyplnit uživatel, je nutné obalit funkcí „FORMATSTRINGSQL“, „FORMATINTSQL“ nebo „FORMATDATESQL“.
    • Ve složeném filtru uživatele se přímá SQL podmínka nepoužije.
  • Příklady přímé SQL definice podmínky:
    • OK#crlf#0=0
    • OK#crlf#0=1
    • OK#crlf#EQUALS(#ng_tb#"0=0,ng_tb = FORMATSTRINGSQL(#ng_tb#))
    • OK#crlf#EQUALS(#ng_tb#"0=1,ng_tb = FORMATSTRINGSQL(#ng_tb#))

1.5. Připojení (joiny)

  • Databázový dotaz může obsahovat libovolné množství připojení, která jsou sestavená pomocí klauzule „JOIN“.
  • Výsledný tvar připojení v jazyce SQL je sestaven automaticky podle seznamu připojení nastavených v grafickém návrháři.
  • Připojení může být definováno také pomocí SQL syntaxe. Levá strana podmínky připojení může být libovolná, pravá strana podmínky připojení musí začínat slovem „OK#crlf#“, a za ní musí následovat znění připojení pomocí jazyka SQL, například:
    • OK#crlf#INNER JOIN ng_abc J1 ON J1.pid = ng_formular.id
    • Definice připojení musí respektovat používané aliasy, takže první připojení se musí jmenovat J1, druhé J2 atd.
    • Definice připojení musí respektovat název zdrojové databázové tabulky.
    • Stejně jako u podmínky vznikne přímé SQL připojení jen z hodnoty, kterou zapíše administrátor, nebo kterou vrátí funkce; hodnota dosazená z proměnné se vždy vloží jako literál.

2. Seznam záložek v dialogu nastavení databázového dotazu

  • Obecné – Nastavení obecných vlastností
  • Podmínky – Definice omezujících podmínek
  • Připojení – Definice připojení – joinů
  • Sloupce – Definice sloupců agregační tabulky
  • Hlavičky – Definice hlaviček agregační tabulky
  • Barvy – Definice barev grafu
  • Ostatní – Nastavení ostatních vlastností

2.1. Záložka „Obecné“

2.1.1. Databázová tabulka

  • Výběr editačního formuláře, z jehož databázové tabulky budou načteny záznamy uložené v databázi.
  • Změnou databázové tabulky u uloženého dotazu vznikne nový databázový dotaz; původní zůstane v databázi beze změny.
  • U ovládacích prvků, které z dotazu načítají hodnotu (například „ComboBox“, „ForeignKey“ nebo krok skriptu), se pod databázovou tabulkou zobrazuje pole „Sloupec“ – výběr sloupce, jehož hodnoty dotaz vrací.

2.1.2. Možnosti

  • Agregační dotaz – Zaškrtnutí tohoto pole určuje, zda má být výsledkem dotazu agregovaná množina dat sestavená pomocí grupování.

2.1.3. Setřídit podle

  • Výběr sloupce, podle kterého budou databázové záznamy seřazeny, včetně způsobu řazení – vzestupně (ASC) nebo sestupně (DESC).
  • Volitelný výběr druhého sloupce, podle kterého budou databázové záznamy seřazeny, včetně způsobu řazení – vzestupně (ASC) nebo sestupně (DESC).

2.1.4. Barva podle

  • Výběr sloupce, který určuje, zda a podle jakého sloupce se bude v nahlížecí tabulce zobrazovat u každého záznamu barevný obdélníček.
  • Volba „Obarvit text“ obarví barvou záznamu navíc i jeho text; barevný obdélníček zůstává zobrazen.
  • U ovládacího prvku „ForeignKey“ se pole jmenuje „Hodnota uložená v databázi“ a určuje sloupec, jehož hodnota se ukládá do cizího klíče místo ID záznamu. Při změně tohoto pole u existujícího dotazu nabídne dialog převod již uložených hodnot, který přepíše hodnoty cizího klíče v celé tabulce i v její historii změn.

2.1.5. Časový úsek podle

  • Výběr sloupce, který určuje, zda a podle jakého sloupce se bude nad nahlížecí tabulkou zobrazovat filtr pro výběr časového úseku „od-do“.
  • Časový úsek se uplatní v ovládacích prvcích se zobrazeným filtrem „od-do“. V portletu, v ovládacím prvku „LiteDataGrid“ a ve skriptu se neuplatní vůbec – dotaz tam načte záznamy bez omezení časovým úsekem.

2.1.6. Od

  • Výchozí hodnota začátku časového úseku, která se předvyplní do filtru „od-do“ nad nahlížecí tabulkou.
  • Pokud pole není vyplněno, použije se výchozí hodnota „měsíc nazpět“, tedy dnešní datum mínus jeden měsíc. Časový úsek je tedy omezen i tehdy, když pole zůstane prázdné – prázdná hodnota neznamená neomezené načítání dat.
  • Hodnotu je možné zadat také pomocí proměnných, například „#today#“. Proměnné jsou vyhodnoceny při otevření ovládacího prvku.

2.1.7. Do

  • Výchozí hodnota konce časového úseku, která se předvyplní do filtru „od-do“ nad nahlížecí tabulkou.
  • Pokud pole není vyplněno, použije se výchozí hodnota „poslední den v roce“, tedy 31. prosinec aktuálního roku. Časový úsek je tedy omezen i tehdy, když pole zůstane prázdné – prázdná hodnota neznamená neomezené načítání dat.
  • Hodnotu je možné zadat také pomocí proměnných, například „#today#“. Proměnné jsou vyhodnoceny při otevření ovládacího prvku.

2.1.8. Možnosti

  • Hodnoty „od“ a „do“, které si uživatel ve filtru naposledy zvolil, jsou evidovány samostatně pro každého uživatele a každý databázový dotaz. Následující dvě pole určují, zda se tyto uložené hodnoty při dalším otevření ovládacího prvku obnoví, nebo zda se použije výchozí hodnota.
  • Vyplnit výchozí hodnotu „Od“ při každém otevření ovládacího prvku – Zaškrtnutí tohoto pole určuje, že se naposledy zvolená hodnota „od“ neobnovuje a při každém otevření ovládacího prvku se použije výchozí hodnota. Ve výchozím nastavení není toto pole zaškrtnuté, takže se naposledy zvolená hodnota obnovuje.
  • Vyplnit výchozí hodnotu „Do“ pouze při prvním otevření ovládacího prvku – Zaškrtnutí tohoto pole určuje, že se naposledy zvolená hodnota „do“ obnovuje a výchozí hodnota se použije pouze při prvním otevření ovládacího prvku. Ve výchozím nastavení není toto pole zaškrtnuté, takže se výchozí hodnota použije při každém otevření ovládacího prvku.
  • Uložené hodnoty se obnovují pouze na nahlížecí stránce, nikoli v editačním formuláři, a neobnovují se anonymnímu uživateli.
  • Změna výchozí hodnoty „Od“ v návrháři smaže naposledy zvolenou hodnotu „od“ všem uživatelům; změna řazení v návrháři přepíše uložené řazení všem uživatelům.

2.1.9. Zobrazit dotaz

  • Tlačítko „Zobrazit dotaz“ – Zobrazí část databázového dotazu sestavenou z neuložených hodnot dialogu: databázovou tabulku, připojení a podmínky („SELECT * FROM ... JOIN ... WHERE ...“). Vybírané sloupce, řazení, omezení počtu záznamů ani časový úsek neobsahuje.

2.2. Záložka „Podmínky“

  • Definice omezujících podmínek dotazu, které následují za klauzulí „WHERE“ databázového dotazu.

2.2.1. Přidat podmínku

  • Pomocí tlačítka „Přidat podmínku“ je možné přidat novou podmínku dotazu.

2.3. Záložka „Připojení“

  • Definice připojení, které jsou sestaveny pomocí klauzule „JOIN“ databázového dotazu.

2.3.1. Přidat připojení

  • Pomocí tlačítka „Přidat připojení“ je možné přidat nové připojení dotazu.

2.3.2. Aktualizovat

  • Pomocí tlačítka „Aktualizovat“ se aktualizuje seznam sloupců na levé i pravé straně podmínky na základě vybrané přijoinované tabulky.

2.4. Záložka „Sloupce“

  • Pouze při zaškrtnutém poli „Agregační dotaz“
  • Definice sloupců výsledné agregační tabulky.

2.4.1. Přidat sloupec

  • Pomocí tlačítka „Přidat sloupec“ je možné přidat nový sloupec výsledné agregační tabulky.

2.5. Záložka „Hlavičky“

  • Pouze při zaškrtnutém poli „Agregační dotaz“ u ovládacího prvku „DataGrid“ nebo „LiteDataGrid“
  • Definice hlaviček výsledné agregační tabulky.

2.5.1. Přidat hlavičku

  • Pomocí tlačítka „Přidat hlavičku“ je možné přidat novou hlavičku výsledné agregační tabulky.

2.5.2. ?

  • Pomocí tlačítka „?“ je možné zobrazit nápovědu k syntaxi hlaviček.

2.6. Záložka „Barvy“

  • Pouze u ovládacího prvku „Chart“
  • Definice barev, které budou použity na vykreslení jednotlivých sloupců grafu.

2.6.1. Přidat barvu

  • Pomocí tlačítka „Přidat barvu“ je možné přidat novou barvu grafu.

2.7. Záložka „Ostatní“

2.7.1. Název šablony

  • Název šablony slouží pro pojmenování databázového dotazu s možností jeho zkopírování při vytváření dalších databázových dotazů se stejnou zdrojovou databázovou tabulkou.
  • Při vytváření nového databázového dotazu jsou všechny dostupné šablony k dispozici v rozbalovacím seznamu šablon vedle tlačítek dialogu. Po vybrání šablony se parametry databázového dotazu předvyplní údaji ze zvolené šablony, včetně zdrojové databázové tabulky; nepřebírá se omezení počtu záznamů, externí funkce ani poznámky. Vnořené dotazy šablony se zkopírují do databáze hned při výběru šablony.
  • Seznam všech databázových dotazů, které jsou označené jako šablony, je možné zobrazit pomocí reportu. Detailní popis reportů je uveden v samostatné příručce Reporty.

2.7.2. Poznámky

  • Poznámky slouží pro zadání libovolného textu určeného pro správce aplikace.

2.7.3. Načíst pouze prvních

  • Omezení maximálního počtu záznamů načtených databázovým dotazem resp. ekvivalent SQL příkazu TOP() nebo FIRST().
  • U agregačního dotazu se v SQL neuplatní – omezí jen počet zobrazených nebo exportovaných řádků.
  • Při současném odstranění duplicitních záznamů se duplicity odstraňují až z načtených řádků, takže výsledek může mít méně záznamů, než je nastavený počet.

2.7.4. Odstranit záznamy s duplicitním

  • Výběr sloupce, podle kterého budou vyhodnoceny duplicitní řádky v načtené množině dat, a tyto řádky budou následně z této množiny odstraněny.
  • Duplicitní řádky se odstraňují po načtení dat z databáze; ponechá se první výskyt v aktuálním řazení a porovnání rozlišuje velikost písmen. Řádky s hodnotou „null“ se neodstraňují. U agregačního dotazu se pole nezobrazuje.

2.7.5. Možnosti

  • ngef(NETGenium.DataTable)
    • Výsledkem databázového dotazu je vždy načtená množina dat z databáze, dočasně uložená v objektu typu „DataTable“. Tato množina dat je následně předána jednotlivým ovládacím prvkům za účelem jejího vyhodnocení nebo vizualizace.
    • Zaškrtnutí tohoto pole určuje, zda má být před samotným předáním objektu „DataTable“ ovládacímu prvku spuštěna externí funkce, která má možnost měnit vlastnosti tohoto objektu – přidávat řádky, měnit hodnoty v jednotlivých sloupcích, případně řádky odstraňovat.
    • V cloudové variantě NET Genium Online se toto pole nezobrazuje — externí funkce v cloudu nejsou k dispozici.

2.7.6. Logování

  • Pomocí tlačítka „Logování“ se zobrazí detailní report s jednotlivými záznamy volání databázových dotazů a údaji o
    • datumu a času spuštění dotazu,
    • uživateli, který dotaz spustil,
    • času zpracování dotazu v milisekundách,
    • počtu vrácených záznamů a
    • konkrétním SQL dotazu.
  • Počet záznamů je ve výchozím nastavení omezen na 100 záznamů. Tento počet je možné ručně zvýšit nebo snížit změnou parametru „maxrows“ v URL reportu.

2.7.7. Sledování změn

  • Tlačítko „Sledování změn“ – Zobrazení detailního reportu s historií změn definice databázového dotazu: kdo a kdy dotaz v návrháři uložil a jak dotaz v tu chvíli vypadal. Změny provedené přes MCP server nebo importem aplikace se do historie nezapisují.

2.8. Tlačítka „Uložit“, „Smazat“ a „Zavřít“

  • Tlačítko „Uložit“ – Uložení změn v nastavení databázového dotazu. Změna se projeví okamžitě, i když se nastavení nadřazeného ovládacího prvku zavře bez uložení. Tlačítko je neaktivní, pokud administrátor nesmí měnit aplikaci, do které dotaz patří (omezení administrátorského režimu aplikační skupiny).
  • Tlačítko „Smazat“ – Odpojení databázového dotazu od ovládacího prvku. Záznam dotazu v databázi zůstane zachován.
  • Tlačítko „Zavřít“ – Zavření dialogu s nastavením databázového dotazu bez uložení změn.