Jak vytvořit formulářové prvky

programovani.png Formulářová tlačítka lze vkládat přímo do dokumentu. Nemá smysl vytvářet dialogy na vše, mnohokrát to není ani vhodné. Stačí použít právě formulářová tlačítka jako taková. V článku si ukážeme, jak na to.  

Cesta k těmto prvkům je Zobrazit | Panely nástrojů | Ovládací prvky formuláře:

11_1 Panely Ovládací prvky formuláře a Více ovládacích prvků.png 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.

11_2 Formulářové prvky - propojení s buňkou.png 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.

11_3 Nastavené propojení s buňkou.png 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.

11_4 Ikona režimu návrhu.png 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. 

11_5 Zobrazení textových polí v OO.png Zobrazení textových polí v OpenOffice.org

11_6 Zobrazení textových polí v pdf.png 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í.

(Jako ve škole) Průměr: 1,17 | Hodnotilo: 12
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Daniel Sedláček

Daniel Sedláček

Amatérsky se věnuji programování maker od podzimu 2010.
Aktivní jsem na fóru od ledna 2011.
Od července 2011 spolupracuji i jako moderátor fóra.

Využívám pouze OpenOffice.org (LibreOffice nemám nainstalován).

 
 
 
woo jaw demo hz