Cesta k těmto prvkům je Zobrazit | Panely nástrojů | Ovládací prvky formuláře:
Panely Ovládací prvky formuláře a Více
ovládacích prvků
Zde máte na výběr z mnoha prvků a některé již znáte z dialogů. Vlastnosti a přiřazení maker se provádí stejným způsobem, ale rozdíl je v tom, že prvek jako takový do makra nepředá žádnou hodnotu. Alespoň ne přímo. Prvky sice nepředají hodnotu makru, ale předají ji dokumentu. Na to mají oproti dialogům jednu záložku navíc s názvem Data.
Záložka Data
Pro ovládání vlastností platí stejný postup jako pro dialogová okna, viz minulé díly seriálu Malá makra v OpenOffice.org.
Záložka Data u formulářových
prvků
Jako první vidíte položku Spojená buňka – to je buňka, do které bude vložena hodnota. U polí se zápisem (textová, číselná…) se do této buňky převede celý váš vstup. U zaškrtávacích políček máte možnost zadat referenční hodnotu buňky. Tzn., že po vybrání příslušného tlačítka se zapíše zadefinovaná hodnota. V tomto případě (pokud bude zapnuto) bude v A1 hodnota 1. V opačné situaci bude hodnota 2.
Nastavení propojení prvku s buňkou
Občas budete potřebovat zajistit si pomocí tlačítek volby jednu volbu z více výběrů. Pokud vložíte tato tlačítka jednotlivě, musíte je pak jednotlivě zaškrtávat a odznačovat. Lepší volba je v tomto případě Seskupení. Na panelu nástrojů si vyberte položku Průvodce ovládacích prvků, poté Více ovládacích prvků a na novém panelu pak vyberete Seskupení. Průvodce vás velmi jednoduchou formou provede přes základní zadání počtu, názvů a hodnot tlačítek volby.
Použití
Jak už víte, formulářové prvky nemohou předat hodnotu do makra, ale umístí ji do určené buňky. Z buňky si pak hodnotu přebírá makro.
TIP: Samozřejmě nemusíte používat prvky pouze v makrech, jejich použití je daleko širší; od základních vstupů do dokumentu přes makra až po formuláře.
Zkuste vložit do sešitu číselné pole a spojte ho s buňkou A1. Následujícím kódem si vezmete hodnotu a přiřadíte ji do proměnné.
Sub form_prvek doc = thisComponent list = doc.sheets(0) ' první list bunka = list.getCellRangeByName("A1") hodnota_form_prvku = bunka.value REM lze také bunka.string – podle toho, jak chcete hodnotu REM používat print hodnota_form_prvku end sub
Makro zobrazí hodnotu, kterou jste vložili pomocí formulářového prvku. Lze samozřejmě řídit formulářový prvek pomocí makra.
Ovládání makrem
Aby mohlo makro ovládat formulářový prvek přímo, musíte jej v kódu jednoznačně identifikovat. Tuto identifikaci provedete nejlépe prostřednictvím pojmenování prvku a jeho správným voláním v kódu makra. Protože nelze zadat jméno prvku přímo, musíte projít všechny jednotlivé prvky v dokumentu a zjistit jejich jména a testovat shodu s názvem uvedeným v makru. Zpřístupnění formulářových prvků provedete příkazem Drawpage.Forms v listu sešitu. Projdete jednotlivé prvky a testujete shodu. Jméno prvku zjistíte pomocí funkce hasByName.
Sub zjisti_form_prvek doc = ThisComponent jmeno_listu = doc.CurrentController.getActiveSheet.name ' v právě aktivním listě list = doc.Sheets.getByName(jmeno_listu) prvky = list.Drawpage.Forms 'zpřístupníme všechny form. Prvky for i = 0 to prvky.count - 1 prvek = prvky.getByIndex(i) ' projdeme prvky po jednom if prvek.hasByName("Políčko") then ' pokud je prvek pojmenován Políčko objekt = prvek.getByName("Políčko") ' tak s ním budeme pracovat endif next i volba = objekt.text ' zjistíme hodnotu list.getCellByPosition(1,2).string = volba end sub
Tento postup využijete hlavně v případě kopírování formulářových prvků, které jsou propojeny s určitou buňkou. Prvky bohužel při kopírování (třeba i celého listu) drží spojení s původní buňkou. Při ovládání prvku makrem tato nevýhoda mizí.
Jednotlivé formulářové prvky jsou velmi podobné prvkům umísťovaným do dialogů. Proto si je nebudeme jednotlivě rozepisovat. Chci upozornit na panel nástrojů Ovládací prvky formuláře. Na tomto panelu je k dispozici základní výběr prvků. Jako první volba je zde ikona Režim návrhu vyp/zap. Tato funkce je velmi důležitá – pokud není Režim návrhu zapnutý, nevložíte jediný prvek do dokumentu. Naopak je důležité po skončení práce Režim návrhu vypnout. V případě jeho zapnutí jsou prvky připraveny k editaci a neplní funkci, kterou požadujeme. Pokud nefungují prvky, první věc je kontrola stavu Režimu návrhu.
POZOR: Ikona režimu návrhu je i na Panelu nástrojů Návrh formuláře.
Ikona Režimu návrhu
Další funkce formulářových prvků
V Microsoft Office existuje po vytvoření formuláře ve Wordu funkce uzamknout dokument. Pomocí této funkce zajistíte nemožnost vpisování textu mimo formulářové prvky. Ve Writeru tato funkce bohužel není, ale lze si pomoci vytvořením tabulky přes celou stránku, nastavit bílé okraje a umístit do ní prvky. Pak jednotlivé buňky prostřednictvím volby Tabulka | Zamknout buňky tyto uzamknete a není možné je již editovat.
TIP: Také můžete uzamykat buňky po stisku pravého tlačítka myši a výběru volby Buňka | Zamknout.
Další možností je export do PDF. Jen pro úplnost si uveďme, že pomocí formulářových prvků můžete vytvořit i editovatelný PDF dokument. Jednoduše vytvoříte dokument ve Writeru nebo Calcu a prostřednictvím volby Soubor | Exportovat do PDF uložíte dokument jako PDF.
Prvky totiž plní svou funkci i po exportu do PDF. Samozřejmě tam již makra nepomohou, ani nemohou. Tam, kde se jedná o textová a číselná pole, si ponechte větší výšku prvku, protože po exportu do PDF nedochází k přesnému přenosu a vpisovaný text tak nemusí být viditelný, nebo bude viditelná pouze jeho část.
Zobrazení textových polí v OpenOffice.org
Zobrazení textových polí v PDF
Z obrázků je patrný rozdíl v zobrazení před a po exportu do PDF. U zaškrtávacích voleb není při exportu problém.
V příštím díle se budeme věnovat ovládání dokumentů pomocí maker. Jejich otevírání, ukládání a zavírání.