Obsah
Rejstřík 🔎︎

# Data

Na kartě Data je možné přiřadit vybranému ovládacímu prvku datový zdroj.

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

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

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

Propojení databáze s formulářem nastavíte v dialogovém okně Vlastnosti formuláře. Potřebné funkce naleznete na kartě Data.

Možnosti nastavení na kartě Data závisejí na vybraném ovládacím prvku. Uvidíte možnosti dostupné pro aktuální ovládací prvek a kontext.
K dispozici jsou následující pole:

## Datové pole

V databázových formulářích je možné propojit ovládací prvky s datovými poli.

Máte několik možností:

1. První případ: Ve formuláři je jen jedna tabulka.

   V poli Datové pole určete pole v tabulce zdroje dat, jehož obsah se má zobrazit v tomto ovládacím prvku.

2. Druhý případ: Ovládací prvek patří do podformuláře, který je vytvořen z SQL dotazu.

   V poli Datové pole určete pole z SQL dotazu, jehož obsah chcete zobrazit.

1. Třetí případ: Pole se seznamem

   Pole v tabulce zdroje dat, do kterého se mají ukládat hodnoty zadané nebo vybrané uživatelem, se pro pole se seznamem určuje vlastností Datové pole. Hodnoty zobrazené v poli se seznamem odpovídají SQL dotazu, který zadáte vlastností Obsah seznamu.

2. Čtvrtý případ: Seznamy

   Údaje, které se mají zobrazit, obsahuje obvykle druhá tabulka spojená s první tabulkou zdroje dat pomocí datového pole.

   Pokud chcete, aby se v seznamu zobrazovala data z tabulky spojené s aktuální tabulkou zdroje dat, zadejte v poli Datové pole pole z tabulky, na kterou seznam odkazuje. Nebo je možné vybrat databázové pole, které určuje zobrazení dat ve formuláři. Toto datové pole poskytuje odkaz na další tabulku, pokud obě tabulky používají společné datové pole. Obvykle je to datové pole, v němž se ukládají jedinečné číselné identifikátory. Datové pole, jehož obsah se zobrazuje ve formuláři, je možné určit dotazem SQL v Obsah seznamu.

Seznamy pracují s referenčními hodnotami. Je možné je implementovat buď pomocí dotazu SQL (čtvrtý případ) nebo pomocí následujícího seznamu hodnot:

Referenční hodnoty spojených tabulek (SQL dotaz)

Pokud chcete, aby se v seznamu zobrazovala data z tabulky spojené s aktuální tabulkou datového zdroje pomocí společného datového pole, zadejte v poli Datové pole pole z tabulky, na kterou seznam odkazuje.

Propojení vytvoříte pomocí dotazu SQL Select, který je určen v položce Druh obsahu seznamu v poli Obsah seznamu (pokud vyberete "SQL" nebo "Nativní SQL"). Příklad: s aktuálním formulářem je spojena tabulka "Objednavky" a v databázi je tabulka "Objednavky" propojena s tabulkou "Zakaznici". Je možné použít následující SQL dotaz:

SELECT JmenoZakaznika, CisloZakaznika FROM Zakaznici

kde "JmenoZakaznika" je datové pole z propojené tabulky "Zakaznici" a "CisloZakaznika" je pole tabulky "Zakaznici", které je propojeno s polem formulářové tabulky "Objednavky" zadaným v Datovém poli.

Referenční hodnoty pomocí seznamu hodnot

Pro seznamy je možné použít seznam hodnot, který určuje referenční hodnoty. Ovládací prvek tak nezobrazuje přímo obsah databázového pole, ale spíše hodnoty přiřazené v seznamu hodnot.

Pokud pracujete s referenčními hodnotami ze seznamu hodnot, není ve formuláři vidět obsah databázového pole určeného v položce Datové pole, ale přiřazená hodnota ze seznamu. Pokud na kartě Data vyberete jako Druh seznamu hodnot možnost "Seznam hodnot" a přiřadíte pomocí pole Seznam hodnot (na kartě Obecné) referenční hodnoty viditelným položkám seznamu, porovná se referenční hodnota s obsahem určeného databázového pole. Pokud referenční hodnota odpovídá obsahu databázového pole, zobrazí se ve formuláři odpovídající položka seznamu.

## Druh obsahu seznamu

Určuje údaje pro vyplnění seznamů a polí se seznamem.

Pokud vyberete možnost "Seznam hodnot", zobrazí se v ovládacím prvku všechny položky zadané do pole Seznam záznamů na kartě Obecné. Pro databázové formuláře je možné použít referenční hodnoty (viz Referenční hodnoty pomocí seznamu hodnot).

Je-li obsah ovládacího prvku načítán z databáze, je možné pomocí dalších voleb určit druh zdroje dat. Např. si je možné vybrat mezi tabulkou a dotazem SQL.

## Návrh filtru

Při návrhu formuláře je možné v dialogovém okně Vlastnosti na kartě Data nastavit textovým polím vlastnost "Návrh filtru". V režimu filtru si poté je možné při hledání vybrat ze všech informací obsažených v těchto polích. Obsah pole je poté možné vybrat pomocí funkce Automatické dokončení. Myslete ovšem na to, že tato funkce má větší paměťové a časové nároky, zvláště ve velkých databázích. Proto ji používejte s rozvahou.

## Oblast zdrojových buněk

Zadejte oblast buněk ze sešitu, které obsahují položky pro seznam nebo pole se seznamem. Pokud zadáte oblast s více sloupci, použije se pouze obsah sloupce úplně vlevo.

## Obsah seznamu

V databázových formulářích určuje zdroj dat pro seznam položek pro ovládací prvek. Toto pole je možné použít pro zadání seznamu hodnot do dokumentů, které nejsou spojeny s databází.

V případě databázových formulářů určuje zdroj dat položky v seznamu nebo poli se seznamem. Podle zvoleného druhu máte v poli Obsah seznamu na výběr mezi různými zdroji dat, pokud dané objekty ve vaší databázi existují. Nabídnuty zde budou všechny databázové objekty typu, který určíte v poli Druh obsahu seznamu. Pokud jste jako druh vybrali "Seznam hodnot", je možné použít referenční hodnoty. Pokud zobrazení závisí na SQL dotazu, zadejte ho do tohoto pole.

Příklady SQL dotazů:

Pro seznamy mohou mít SQL dotazy následující podobu:

SELECT pole1, pole2 FROM tabulka

"tabulka" je tabulka, jejíž data se zobrazují v seznamu ovládacího prvku (tabulka seznamu). "pole1" je datové pole, které určuje položky viditelné ve formuláři; jeho obsah se zobrazí v seznamu. "pole2" je pole, které spojuje tabulku seznamu s tabulkou formuláře pomocí pole určeného v Datové pole, pokud zvolíte Svázané pole = 1.

Pro pole se seznamem mohou mít SQL dotazy následující podobu:

SELECT DISTINCT pole FROM tabulka

"pole" je datové pole z tabulky seznamu "tabulka", jehož obsah se má zobrazit v poli se seznamem.

Seznamy hodnot v HTML dokumentech

Pro HTML formuláře je možné zadat seznam hodnot v poli Obsah seznamu. Jako Druh obsahu seznamu zvolte "Seznam hodnot". Zde zadané hodnoty se ve formuláři nezobrazí a použijí se pro přiřazení hodnot k zobrazeným položkám. Záznamy v poli Obsah seznamu odpovídají HTML značce <OPTION VALUE=...>.

Při odeslání dat se pracuje se seznamem hodnot zadaným v poli Seznam záznamů na kartě Obecné a také se seznamem hodnot z pole Obsah seznamu na kartě Data: Je-li vybrána položka s neprázdným textem v seznamu hodnot (<OPTION VALUE=...>), odešle se tato hodnota. V ostatních případech se odešle text zobrazený ve formuláři (<OPTION>) .

Pokud má seznam hodnot obsahovat prázdný řetězec, zadejte do pole Obsah seznam na odpovídající pozici hodnotu "$$$empty$$$" (pozor na malá a velká písmena). LibreOffice tento vstup interpretuje jako prázdný řetězec a přiřadí ho odpovídající položce seznamu.

Následující tabulka ukazuje návaznosti mezi HTML, JavaScriptem a polem Obsah seznamu v LibreOffice. V příkladech se používá seznam nazvaný "ListBox1" a v tomto případě "Položka" označuje položku seznamu zobrazenou ve formuláři:

HTML značka | JavaScript | Položka v seznamu hodnot (Obsah seznamu) | Přenesená data
<OPTION>Položka | Nelze | "" | zobrazená položka ("ListBox1=Položka")
<OPTION VALUE="Hodnota">Položka | ListBox1.options[0].value="Hodnota" | "Hodnota" | Hodnota určená v seznamu ("ListBox1=Hodnota")
<OPTION VALUE="">Položka | ListBox1.options[0].value="" | "$$$empty$$$" | Prázdný řetězec ("ListBox1=")

## Obsah spojené buňky

Určuje režim spojení seznamu s buňkou sešitu.

1. Spojení obsahu: Synchronizuje textový obsah označené položky seznamu s obsahem buňky. Zvolte "Vybraná položka".

2. Spojení pozice výběru: Pozice jedné vybrané položky seznamu se synchronizuje s číselnou hodnotou v buňce. Zvolte "Pozice vybrané položky".

## Prázdný řetězec je NULL

Určuje, jak se má zpracovat zadaný prázdný řetězec. Je-li tato vlastnost nastavena na "Ano", bude se prázdný řetězec brát jako hodnota NULL. Je-li vlastnost nastavena na "Ne", bude se s řetězcem pracovat bez konverze.

Prázdný řetězec je řetězec nulové délky (""). Normálně hodnota NULL není stejná jako prázdný řetězec. Obecně termín NULL označuje nedefinovanou hodnotu, neznámou hodnotu nebo "ještě nezadanou hodnotu".

Různé databázové systémy mohou s hodnotou NULL pracovat různě. Podívejte se do dokumentace svého databázového systému.

## Referenční hodnota (vyp)

Zaškrtávací pole a přepínače v sešitech lze propojit s buňkami v aktuálním dokumentu. Je-li ovládací prvek zapnut, zkopíruje se do buňky hodnota z Referenční hodnota (zap). Je-li ovládací prvek vypnut, kopíruje se do buňky hodnota z Referenční hodnota (vyp).

## Referenční hodnota (zap)

Zaškrtávacím polím a tlačítkům volby je možné přiřadit referenční hodnotu. Při odeslání webového formuláře bude referenční hodnota předána serveru. V databázových formulářích se zadaná hodnota zapíše do databázového pole přiřazeného ovládacímu prvku.

Referenční hodnota pro webové formuláře

Referenční hodnoty jsou užitečné, když navrhujete webový formulář, jehož informace se mají odeslat serveru. Pokud uživatel klepne na ovládací prvek, odešle se serveru odpovídající hodnota.

Například máte dvě pole pro volby "žena" a "muž" a přiřadíte referenční hodnotu 1 poli "žena" a hodnotu 2 poli "muž". Pokud uživatel vybere pole "žena", přenese se na server hodnota 1, a pokud vybere "muž" odešle se hodnota 2.

Referenční hodnoty pro databázové formuláře

Pro databázové formuláře také je možné pomocí referenční hodnoty určit stav volby nebo zaškrtávacího pole. Např. použijete tři volby "probíhá", "dokončeno" a "posláno znovu" s referenčními hodnotami "ToDo", "OK" a "RS". V databázi se uloží tyto referenční hodnoty.

## Spojená buňka

Určuje odkaz na spojenou buňku v sešitu. Propojí se stav nebo obsah ovládacího prvku s obsahem buňky. Následující tabulka shrnuje ovládací prvky a jejich odpovídající typy:

### Zaškrtávací pole spojené s buňkou

Činnost | Výsledek
Zaškrtnutí pole: | Do spojené buňky se vloží PRAVDA.
Zrušení zaškrtnutí pole: | Do spojené buňky se vloží NEPRAVDA.
Trojstavové zaškrtávací pole je ve stavu "nerozhodnuto": | Do spojené buňky se vloží #NV.
Zadání čísla nebo vzorce, který vrací číslo, ve spojené buňce: | Je-li zadaná hodnota PRAVDA nebo různá od 0: Zaškrtne se pole Je-li zadaná hodnota NEPRAVDA nebo 0: Zruší se zaškrtnutí pole.
Vymazání obsahu spojené buňky, nebo zadání textu nebo vzorce, který vrací text nebo chybu: | Je-li zaškrtávací pole trojstavové, přepne se do stavu "nerozhodnuto", v ostatních případech se jeho zaškrtnutí zruší.
Zaškrtnutí pole. Referenční hodnota pole obsahuje text: | Do spojené buňky se vloží text Referenční hodnoty.
Zrušení zaškrtnutí pole. Referenční hodnota pole obsahuje text. | Do buňky se vloží prázdný řetězec.
Referenční hodnota pole obsahuje text. Do buňky zadáte stejný text: | Zaškrtne se pole.
Referenční hodnota pole obsahuje text. Do buňky zadáte jiný text: | Zruší se zaškrtnutí pole.

### Tlačítko volby (přepínač) spojený s buňkou

Činnost | Výsledek
Výběr tlačítka volby: | Do spojené buňky se vloží PRAVDA.
Tlačítko volby je zrušeno výběrem jiného tlačítka volby: | Do spojené buňky se vloží NEPRAVDA.
Zadání čísla nebo vzorce, který vrací číslo, ve spojené buňce: | Je-li zadaná hodnota PRAVDA nebo různá od 0: Zvolí se tlačítko volby Je-li zadaná hodnota NEPRAVDA nebo 0: Zruší se výběr volby
Vymazání obsahu spojené buňky, nebo zadání textu nebo vzorce, který vrací text nebo chybu: | Tlačítko volby není vybráno.
Klepnutěte na tlačítko volby. Referenční hodnota obsahuje text. | Do spojené buňky se vloží text Referenční hodnoty.
Klepněte na jiné tlačítko volby ve stejné skupině. Referenční hodnota obsahuje text: | Do buňky se vloží prázdný řetězec.
Referenční hodnota pole obsahuje text. Do buňky zadáte stejný text: | Vybere se volba.
Referenční hodnota pole obsahuje text. Do buňky zadáte jiný text: | Zruší se výběr volby.

### Textové pole spojené s buňkou

Činnost | Výsledek
Zadejte text do textového pole: | Text se zkopíruje do spojené buňky.
Smázání obsahu textového pole: | Smaže se obsah spojené buňky.
Zadání textu nebo čísla do spojené buňky: | Text nebo číslo se zkopíruje do textového pole.
Zadání vzorce do spojené buňky: | Výsledek vzorce se zkopíruje do textového pole.
Smazání obsahu spojené buňky: | Smaže se obsah textového pole.

### Číselné pole a formátované pole spojené s buňkou

Činnost | Výsledek
Zadání čísla do pole: | Číslo se zkopíruje do spojené buňky.
Smazání obsahu pole: | Ve spojené buňce se nastaví hodnota 0.
Zadání čísla nebo vzorce, který vrací číslo, ve spojené buňce: | Do pole se zkopíruje číslo.
Vymazání obsahu spojené buňky, nebo zadání textu nebo vzorce, který vrací text nebo chybu: | Do pole se nastaví hodnota 0.

### Seznam spojený s buňkou

Seznamy podporují dva režimy propojení, viz vlastnost "Obsah spojené buňky".

1. Spojení obsahu: Synchronizuje textový obsah označené položky seznamu s obsahem buňky.

2. Spojení pozice výběru: Pozice jedné vybrané položky seznamu se synchronizuje s číselnou hodnotou v buňce.

Činnost | Výsledek
Výběr jedné položky seznamu: | Spojení obsahu: Do spojené buňky se zkopíruje text položky. Spojení pozice: Do spojené buňky se zkopíruje pozice vybrané položky. Např. při výběru třetí položky se zkopíruje číslo 3.
Výběr několika položek seznamu: | Do spojené buňky se vloží #NV.
Zrušení výběru všech položek: | Spojení obsahu: Smaže se obsah spojené buňky. Spojení pozice: Do spojené buňky se vloží hodnota 0.
Zadání textu nebo čísla do spojené buňky: | Spojení obsahu: Najde a označí odpovídající položku seznamu. Spojení pozice: Označí položku na odpovídající pozici (první položka má číslo 1). Pokud se žádná nenajde, zruší se označení všech položek.
Zadání vzorce do spojené buňky: | Najde a označí položku, která odpovídá výsledku vzorce a režimu spojení.
Smazání obsahu spojené buňky: | Zruší označení všech položek seznamu.
Změna obsahu seznamu: | Položky seznamu se aktualizují podle změny. Označení položek se zachová. Může způsobit aktualizaci spojené buňky.

### Pole se seznamem spojené s buňkou

Činnost | Výsledek
Zadání textu do editačního pole pole se seznamem, nebo výběr položky z rozbalovacího seznamu: | Text se zkopíruje do spojené buňky.
Smazání obsahu editačního pole: | Smaže se obsah spojené buňky.
Zadání textu nebo čísla do spojené buňky: | Text nebo číslo se zkopíruje do editačního pole.
Zadání vzorce do spojené buňky: | Výsledek vzorce se zkopíruje do editačního pole.
Smazání obsahu spojené buňky: | Smaže se obsah editačního pole.
Změna obsahu seznamu: | Položky rozbalovacího seznamu se aktualizují podle změny. Editační pole a spojená buňka nejsou ovlivněny.

## Svázané pole

Pokud smažete obsah vlastnosti Svázané pole, použije se k zobrazení a výměně dat první pole výsledku.

Tato vlastnost seznamů určuje, které datové pole připojené tabulky se má zobrazit ve formuláři.

Pokud má seznam ve formuláři zobrazovat obsah tabulky spojené s tabulkou formuláře, určete v poli Druh obsahu seznamu, zda jde o výsledek SQL dotazu nebo (propojené) tabulky. Pomocí vlastnosti Svázané pole určíte index datového pole z dotazu nebo tabulky.

Vlastnost Svázané pole je pouze pro formuláře, které se používají pro přístup k více tabulkám. Je-li formulář založen pouze na jedné tabulce, určuje se zobrazené pole přímo v Datové pole. Pokud ovšem chcete zobrazit v seznamu údaje z tabulky, která je s aktuální tabulkou propojena společným polem, určíte propojené datové pole vlastností Svázané pole.

Pokud jako Druh obsahu seznamu vyberete "SQL", určíte index podle SQL dotazu. Příklad: Zadáte do Obsah seznamu SQL dotaz "SELECT Pole1, Pole2 FROM tabulka":

Svázané pole | Odkaz
-1 | S polem určeným v Datové pole se spojí index položky vybrané v seznamu.
{prázdné} nebo 0 | S polem určeným v Datové pole se spojí databázové pole "Pole1".
1 | S polem určeným v Datové pole se spojí databázové pole "Pole2".

Pokud jako Druh obsahu seznamu vyberete "Tabulka", určíte index podle struktury tabulky. Příklad: V poli Obsah seznamu je vybrána databázová tabulka:

Svázané pole | Odkaz
-1 | S polem určeným v Datové pole se spojí index položky vybrané v seznamu.
{prázdné} nebo 0 | S polem určeným v Datové pole se spojí 1. sloupec tabulky.
1 | S polem určeným v Datové pole se spojí 2. sloupec tabulky.
2 | S polem určeným v Datové pole se spojí 3. sloupec tabulky.