Obsah

# Data

Na kartě Data se určují vlastnosti formuláře, které souvisejí s databází, která je spojena s formulářem.

Určuje zdroj dat, na kterém je formulář založen, nebo určuje, zda může uživatel upravovat údaje. Kromě funkcí řazení a filtrování zde najdete také všechny potřebné vlastnosti pro vytvoření podformuláře.

Pro přístup k tomuto příkazu...

Otevřete místní nabídku vybraného prvku formuláře a zvolte kartu Vlastnosti formuláře - Data.

Otevřete nástrojovou lištu Návrh formuláře, klepněte na ikonu Vlastnosti formuláře a na kartu Data.

## Analyzovat SQL příkaz

Určuje, zda má LibreOffice analyzovat SQL dotaz. Pokud vyberete "Ano", je možné klepnout na tlačítko ... vedle seznamu Obsah. Tím se otevře okno, kde je možné graficky vytvořit databázový dotaz. Až okno zavřete, vytvořený SQL dotaz bude vložen do seznamu Obsah.

## Cyklus

Určuje, jak se má provádět navigace pomocí klávesy Tab. Pomocí klávesy Tab je možné se přesunout ve formuláři dopředu na další prvek. Pokud zároveň stisknete i klávesu Shift, posunete se opačným směrem. Pokud dojdete až k poslednímu (nebo prvnímu) poli a stisknete znovu klávesu Tab, může nastat několik věcí. Pro nastavení ovládání pomocí klávesnice máte následující možnosti:

Možnost | Význam
--- | ---
Výchozí | Tato položka umožňuje automatické zadávání cyklu v závislosti na existenci odkazu na databázi. Obsahuje-li formulář databázový odkaz, budou ve výchozím nastavení při stisknutí klávesy TAB při odchodu z posledního pole uloženy změny v následujícím nebo předchozím záznamu (viz Všechny záznamy). Pokud odkaz na databázový záznam neexistuje, zobrazí se následující nebo předchozí formulář (viz Stávající stránka).
Všechny záznamy | Tato možnost platí jen pro databázové formuláře a používá se k navigaci mezi všemi záznamy. Pokud použijete klávesu Tab na posledním poli formuláře, změní se aktuální záznam.
Aktivní záznam | Tato možnost platí jen pro databázové formuláře a používá se k navigaci jen v aktuálním záznamu. Pokud použijete klávesu Tab na posledním poli formuláře, změní se aktuální záznam.
Aktuální stránka | Při přesunu z posledního pole formuláře se kurzor přesune na první pole následujícího formuláře. Toto je standardní chování pro HTML formuláře; tudíž je tato možnost zvláště vhodná pro HTML formuláře.

## Filtr

Zadejte požadované podmínky pro filtrování dat ve formuláři. Specifikace filtru odpovídá pravidlům SQL, bez klauzule WHERE. Např. chcete zobrazit všechny záznamy se jménem "Mike". Zadejte tedy do tohoto pole: Jméno = 'Mike'. Podmínky je možné také kombinovat: Jméno = 'Mike' OR Jméno = 'Peter'. Zobrazí se všechny záznamy odpovídající oběma podmínkám.

Funkce filtrování je v uživatelském režimu dostupná pomocí ikon Automatický filtr a Výchozí filtr na liště Navigace ve formuláři.

## Lišta navigace

Určuje, zda lze v podřízeném formuláři použít navigační funkce.

Volba "Nadřízený formulář" se používá pro podformuláře. Pokud vyberete tuto volbu pro podformulář, je možné provádět navigaci mezi záznamy hlavního formuláře, i když je kurzor v podformuláři. Podformulář je s hlavním formulářem spojen relací 1:1, takže navigace se vždy provádí v nadřazeném formuláři.

## Obsah

Určuje zdroj dat použitý ve formuláři. Zdrojem dat může být existující tabulka nebo dotaz (předem vytvořený v databázi), nebo jej lze určit SQL dotazem. Než zadáte zdroj dat, musíte určit typ v poli Typ obsahu.

Pokud jako Typ obsahu vyberete "Tabulka" nebo "Dotaz", zobrazí se v seznamu všechny zdroje dat tohoto typu, tj. všechny tabulky nebo dotazy ve vybrané databázi.

## Odstranit data

Určuje, zda lze data mazat.

## Pouze přidat data

Určuje, zda formulář pouze dovolí přidávat nová data (Ano), nebo povolí i další možnosti (Ne).

Je-li Pouze přidat data nastaveno na "Ano", není možné měnit či mazat údaje.

## Povolit přidávání

Určuje, zda lze data přidávat.

## Povolit změny

Určuje, zda lze data měnit.

## Propojit hlavní pole

Pokud vytvoříte podformulář, zadejte datové pole hlavního formuláře, které slouží k synchronizaci mezi hlavním a podřízeným formulářem. Pro zadání více hodnota stiskněte klávesy Shift+Enter po každé hodnotě.

Podformulář je založen na SQL dotazu; přesněji řečeno na parametrickém dotazu. Pokud zadáte do Propojit hlavní pole název pole, načtou se data obsažená v tomto poli hlavního formuláře do proměnné, kterou musíte zadat do Propojit závislá pole. V odpovídajícím SQL dotazu se tato proměnná porovná s údaji v tabulce, na kterou odkazuje podformulář. Volitelně také můžete zadat do Propojit hlavní pole název sloupce.

Příklad:

Formuláře je např. založen na tabulce zákazníků ("Zákazníci"), kde má každý zákazník přiřazeno jedinečné číslo v poli nazvaném "Zákazník_ID". Objednávky každého zákazníka se evidují v jiné tabulce. A nyní si chcete ve formuláři prohlédnout objednávky vybraného zákazníka. Potřebujete vytvořit podformulář. Do Propojit hlavní pole zadejte datové pole z tabulky zákazníků, které zákazníka jasně identifikuje, tj. Zákazník_ID. Do Propojit závislá pole zadejte název proměnné, která přijme data z pole Zákazník_ID, např. x.

Podformulář by měl zobrazit odpovídající údaje z tabulky objednávek ("Objednávky") pro každé ID zákazníka (Zákazník_ID -> x). To je možné jedině je-li každý záznam v tabulce objednávek přiřazen jen jednomu zákazníkovi. Případně je možné použít jiné pole nazvané Zákazník_ID; ovšem, aby se vak pole nepletlo se stejným polem hlavního formuláře, nazveme ho Číslo_Zákazníka.

Nyní porovnejte Číslo_Zákazníka v tabulce "Objednávky" s Zákazník_ID v z tabulky "Zákazníci", což je možné provést např. s pomocí proměnné x v následujícím SQL dotazu:

SELECT * FROM Objednávky WHERE Číslo_Zákazníka =: x (pokud má podformulář zobrazit všechna data z tabulky objednávek)

nebo

SELECT Položka FROM Objednávky WHERE Číslo_Zákazníka =: x (pokud má podformulář zobrazit z tabulky objednávek jen údaje obsažené v poli "Položka")

SQL dotaz je možné zadat buď v poli Zdroj dat, nebo je možné vytvořit odpovídající parametrický dotaz, který lze využít pro vytvoření podformuláře.

## Propojit závislá pole

Pokud vytvoříte podformuláře, zadejte proměnnou, do které se budou ukládat hodnoty z propojeného pole hlavního formuláře. je-li podformulář založen na dotazu, zadejte proměnnou, kterou jste definovali v dotazu. Pokud používáte SQL dotaz zadaný v poli Zdroj dat, zadejte proměnnou, kterou jste použili v dotazu. Je možné vybrat si jakýkoliv název proměnné. Pokud chcete zadat více hodnot, stiskněte klávesy Shift+Enter.

Příklad: Jako hlavní pole určíte v Propojit hlavní pole databázové pole Zákazník_ID, poté zadáte do Propojit závislá pole název proměnné, do které se má uložit hodnota z pole Zákazník_ID. Pokud nyní v poli Zdroj dat určíte SQL dotaz, zobrazí se v podformuláři odpovídající údaje.

## Typ obsahu

Určuje, zda má být zdrojem dat existující tabulka či dotaz, nebo zda se má formulář generovat na základě SQL dotazu.

Pokud vyberete "Tabulka" nebo "Dotaz", bude formulář využívat tabulku či dotaz, který určíte v poli Zdroj dat. Pokud chcete vytvořit nový dotaz nebo podformulář, musíte vybrat "SQL". Poté je možné přímo do pole Typ obsahu zadat SQL dotaz nebo podformulář.

## Zdroj dat

Určuje zdroj dat, na který má formulář odkazovat. Pokud klepnete na tlačítko ..., zobrazí se dialogové okno Otevřít, kde je možné vybrat zdroj dat.

## Řadit

Určuje podmínky pro řazení údajů ve formuláři. Specifikace podmínek řazení odpovídá pravidlům SQL, bez klauzule ORDER BY. Např. pokud chcete seřadit všechny záznamy v databázi podle jednoho pole vzestupně a dalšího pole sestupně, zadejte Jméno ASC, Příjmení DESC (Jméno a Příjmení jsou názvy datových polí).

V uživatelském režimu lze k řazení použít odpovídající ikony na liště Navigace ve formuláři: Řadit vzestupně, Řadit sestupně, Řadit.

## Co je podformulář?

Formuláře se vytvářejí z databázové tabulky nebo databázového dotazu. Zobrazují údaje přehledným způsobem a lze je použít k úpravě či zadávání nových dat.

Pokud chcete vytvořit formulář, který zobrazuje data z tabulky či dotazu a navíc může zobrazit data z další tabulky, měli byste vytvořit podformulář. Podformulář může být např. textové pole, které obsahuje údaje z jiné databázové tabulky.

Podformulář je dalším prvkem hlavního formuláře. Hlavní formulář se někdy nazývá "rodičovský formulář" nebo "nadřazený formulář". Podformuláře jsou třeba, když chcete ve formuláři přistupovat k více tabulkám. Každá tabulka navíc potřebuje vlastní podformulář.

Po vytvoření formuláře je možné jej změnit na podformulář. Přepněte se do režimu návrhu a otevřete Navigátor formulářem. Zde přetáhněte formulář (který se má stát podformulářem) na některý jiný formulář (který se stane hlavním).

Uživatel vašeho dokumentu neuvidí, že se formulář dělí na podformuláře. Uživatel pouze uvidí dokument, do kterého zadává data nebo ve kterém se zobrazují existující data.

V hlavním formuláři určete vlastnost Propojit hlavní pole. V podformuláři je možné vlastností Propojit závislá pole určit pole, které se bude porovnávat s obsahem datového pole určeného vlastností Propojit hlavní pole.

Když se uživatel pohybuje mezi údaji, formulář vždy zobrazuje aktuální datový záznam. Pokud jsou definovány podformuláře, zobrazí se jejich obsah po krátké prodlevě, přibližně 200 ms. Tato prodleva vám umožňuje rychle přecházet mezi záznamy hlavního formuláře. Pokud se během této doby přesunete na další záznam hlavního formuláře, není třeba načítat a zobrazovat data podformulářů.