Nejčastější dotazy/Base/024
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Jak přimět ovládací prvek formuláře, aby zobrazil hodnotu pole v tabulce a poté uložil hodnotu jiného pole téže tabulky ?
Přepněte formulář do režimu návrhu.
V režimu návrhu vytvořte nový ovládací prvek
- Pokud jste tak ještě neučinili, aktivujte Režim návrhu kliknutím na příslušnou ikonu na panelu nástrojů Návrh formuláře.
- Na panelu nástrojů Návrh formuláře klikněte na ikonu Ovládací prvek seznamu a nakreslete na formuláři oblast, ve které má být ovládací prvek umístěn.
Průvodce ovládáním by se měl spustit automaticky a provést vás celým procesem. Zbývající podrobnosti naleznete níže.
Použití režimu návrhu k nahrazení existujícího ovládacího prvku formuláře (např. textového pole)
- Aktivujte režim návrhu formuláře pomocí panelu nástrojů Návrh formuláře.
- Převedete existující ovládací prvek na pole seznamu kliknutím pravým tlačítkem myši na ovládací prvek a výběrem možnosti Nahradit pomocí. > Listbox z kontextové nabídky.
Jako příklad si vezměte tabulku s názvem Client
obsahující pole ClientName
) a související primární klíč ( ClientId
). Chceme dosáhnout toho, aby formulář zobrazoval jméno klienta v seznamu, ale ve skutečnosti používal odpovídající ClientID v podkladové tabulce k zápisu této hodnoty jinam. Je tedy nutné deklarovat pole, kam se budou tato data ukládat, přiřadit k listboxu SQL dotaz a nastavit pole tabulky, které se bude používat pro zobrazení i pro ukládání dat.
Začněte zobrazením vlastností ovládacího prvku listbox (panel nástrojů Návrh formuláře, vyberte ovládací prvek kliknutím myší a zvolte Vlastnosti) a poté zvolte kartu Data v dialogovém okně Vlastnosti.
V části Data zadejte název tabulky, která se má použít pro uložení dat.
Vyberte Sql jako Typ obsahu seznamu.
V části Obsah seznamu zadejte SELECT ClientName, ClientId FROM Client
nebo klikněte na tlačítko představující následující tečky a použijte průvodce vytvořením dotazu.
Ve výše uvedeném dotazu je ClientName
prvním vráceným polem a má indexační číslo 0 a ClientId
je druhé pole vráceno s indexačním číslem 1.
Výchozí seznam zobrazený v ovládacím prvku Listbox je vždy založen na prvním indexovaném poli, tj. indexační číslo 0, tedy v našem současném příkladu s hodnotami z ClientName
).
Protože ve skutečnosti chceme, aby byla zaznamenána hodnota ClientId (s indexačním číslem 1), je třeba v poli Propojené pole zadat hodnotu 1.