Makrá v OpenOffice.org 5/VIII. – Dátum a čas

Július Pastierik  /  20. 12. 2006, 00:00

V dnešnom dieli seriálu o programovaní makier v OpenOffice.org si ukážeme posledné možnosti vstupov v dialógoch.

Doteraz sme si už ukázali veľa možností vstupov v dialógoch – od zaškrtávacích či prepínacích políčok, cez rôzne číselné a textové vstupy až po zoznamy. Nakoniec nám ešte zostali možnosti vstupu dátumu, času alebo výber mena súboru.

Pravdaže, v doterajších možnostiach sme sa už stretli aj možnosťou zadávania dátumov alebo časov pomocou formátovaného textového poľa. To nám však niekedy nemusí vyhovovať, pretože chceme dostať dátum alebo čas priamo v číselnej podobe. A na to nám slúžia iné – špeciálne vstupné položky.

Datumovy vstup

Prvá z nich je dátum. Pri jeho definícii nájdeme viacero parametrov, ktoré nás musia zaujímať. Medzi takéto patria ohraničenie rozsahu dátumu spodná horná hranica a formát, v akom chceme zadávať dátum. Okrem toho môžeme preddefinovať jeho štandardnú hodnotu. Výstupnú hodnotu následne získame pomocou metódy „Date“, ktorá vracia číslo typu Long. Ak teda máme napr. definovanú vstupnú položku dátum s názvom „Datum“, tak pomocou štruktúry:

dlg.model.Datum.Date
získame dátumové číslo, ktoré je vždy v tvare RRRRMMDD, kde štyri cifry RRRR označujú rok, za nimi nasledujú dve cifry MM, ktoré označujú mesiac a nakoniec sú dve cifry DD, ktoré označujú deň.

Casovy vstup

Dátumovému vstupu je veľmi podobný aj časový vstup. Aj tu nájdeme parametre, pomocou ktorých môžeme obmedziť jeho rozsah. Kým pri dátumoch toto obmedzenie nemusí mať až taký význam, pri čase to môžeme veľmi prakticky využiť napr. iba na pracovný čas a pod. Pravdaže, aj tu môžeme zadať preddefinovanú hodnotu a môžeme si vybrať formát, v akom chceme čas zadávať. Výstupnú hodnotu získame pomocou metódy „Time“, ktorá vracia číslo typu Long. Pri predpoklade, že máme definovanú vstupnú položku čas s názvom „Cas“, výstupnú hodnotu získame pomocou štruktúry:

dlg.model.Cas.Time
Výstupné číslo je vždy vo formáte HHMMSSTT, kde dve cifry HH označujú hodinu (od 00 do 23, t.j. v 24 hodinovom formáte), za nimi dve cifry MM označujú minútu, následné dve cifry SS označujú sekundy a posledné dve cifry TT označujú stotiny sekúnd.

Suborovy vstup

Posledný typ vstupu, ktorý si preberieme v rámci dialógov je zadanie mena súboru pomocou jeho výberu z už existujúcich súborov. Už v minulých dieloch sme ukazovali, ako si môžeme uložiť nastavené parametre do nejakého súboru na disku. Vtedy sme však meno súboru zadávali priamo v programe. Mnohokrát však potrebujeme vybrať na spracovanie už existujúci súbor na disku. A práve na toto je určený posledný vstup, ktorý si preberáme.

Po jeho výbere nemusíme nastavovať okrem názvu (ako ho vôbec chceme zmeniť) vôbec nič, pokiaľ nepožadujeme, aby sa nám vracala nejakú preddefinovaná hodnota. Pokiaľ ju chceme zadať, musíme ju zadefinovať, podobne ako pri iných textových vstupoch, do položky „Text“. Vlastný výber súboru prevádzame stlačením tlačidla s tromi bodkami, ktoré sa nachádza v pravej časti tohto vstupného prvku. Toto tlačidlo vyvolá systémovú funkciu pre výber názvu ľubovoľného súboru. Výstupnú hodnotu získame pomocou metódy „Text“. Pokiaľ budeme predpokladať, že máme definovanú vstupnú súborovú položku „Subor“, tak výstupnú hodnotu získame pomocou nasledujúcej štruktúry:

dlg.model.Subor.Text
Príslušný dialóg môžeme následne inicializovať a výstupné hodnoty získať napríklad takouto procedúrou:

 dim meno, fotografia as string
 dim datum_narodenia, cas_narodenia as long

sub Informacie_o_osobe
 DialogLibraries.LoadLibrary("Standard")

 dlg=CreateUnoDialog(DialogLibraries.Standard.Dialog2)

 dlg.Execute()
 meno=dlg.model.Zoznam.Text
 fotografia=dlg.model.Subor.Text
 datum_narodenia=dlg.model.Datum.Date
 cas_narodenia=dlg.model.Cas.Time
 dlg.dispose()
end sub

Makro pre osobné údajeNa budúce: Ako to všetko využiť v praxi, alebo znovu to nešťastné formátovanie dokumentu.