Július Pastierik / 15. 12. 2010, 09:02
Potrebujete v makrách OpenOffice.org otvárať externé súbory pomocou aplikácií, ktoré sú s nimi asociované? Ukážme si jednoduché makro, pomocou ktorých dokážete otvárať odkazy na internetové stránky v internetovom prehliadači.
Pri niektorých makrách požadujeme, aby sme v nich dokázali otvoriť súbor v tej aplikácii, pre ktorú je určený. Ako typický príklad môžeme uviesť html stránky či mailové adresy, ktoré chceme otvárať v internetovom prehliadači či poštovom klientovi. Na takéto účely stačí, ak si naprogramujeme jednoduché makro, ktoré spustí systémového správcu súborov, ktorý to už potom urobí za nás.
A aby sme si uviedli praktický príklad viacnásobného využitia, ukážeme si toto makro v rozšírení, pomocou ktorého dokážeme z prostredia OpenOffice.org pristupovať na stránky OpenOffice.cz a OpenOffice.org Extensions. Pravdaže, pre praktické použitie je najvhodnejšie, ak si jednotlivé funkcie zakomponujete napr. do menu OpenOffice.org.
A, aby sme ukázali širšie možnosti, medzi funkciami budú aj funkcie pre vyhľadávanie na príslušných internetových stránkach a, samozrejme, pokiaľ budú tieto funkcie spustené z prostredia OpenOffice.org Writer, automaticky doplníme aj vyhľadávaný text.
REM Procedúra pre "systémové" otvorenie súboru (spustí sa príslušný editor), internetovej stránky (spustí sa prehliadač) ...
sub OtvorSubor(subor as string)
dim oSpusti as object
oSpusti=createUnoService("com.sun.star.system.SystemShellExecute")
oSpusti.execute(subor, "", 0)
end sub
REM Funkcia, ktorá vráti označený reťazec alebo slovo, na ktorom sa nachádzame (pokiaľ sme v textovom dokumente)
function DajRetazec as string
dim sRetazec as string
dim oViditelnyKurzor, oAktualnyText, oAktualnyKurzor
sRetazec=""
if ThisComponent.supportsService("com.sun.star.text.TextDocument") then ' Ak sme v textovom dokumente
vyber=ThisComponent.getCurrentSelection() ' aktualny vyber
if vyber.getCount() > 0 then
sRetazec= trim(vyber.getByIndex(0).getString()) ' riadok z vyberu
endif
if sRetazec="" then ' Ak je reťazec prázdny, vyberieme slovo, na ktorom sa nachádzame
oViditelnyKurzor=ThisComponent.getCurrentController().getViewCursor() ' Viditeľný kurzor
oAktualnyText=ThisComponent.getText() ' Aktuálny text
oAktualnyKurzor=oAktualnyText.createTextCursorByRange(oViditelnyKurzor.getStart()) ' Vytvoríme nový kurzor (s pozíciou na viditeľnom kurzore), aby sme neoznačovali "viditeľne"
if not oAktualnyKurzor.isStartOfWord then oAktualnyKurzor.gotoStartOfWord(false) ' Ak nie sme, tak skočíme na začiatok slova
oAktualnyKurzor.gotoEndOfWord(true) ' Označíme aktuálne slovo
sRetazec=oAktualnyKurzor.string
oAktualnyKurzor.collapseToEnd() ' Zrušíme označenie
endif
endif
DajRetazec=sRetazec
end function
REM Vlastné funkcie pre otváranie príslušných stránok
REM Odkazy na OpenOffice.cz
sub ooo_ooo
OtvorSubor("http://www.openoffice.cz/")
end sub
sub ooo_ooo_Hladaj
OtvorSubor("http://www.openoffice.cz/search.php?action=results&query=" & DajRetazec & "&x=7&y=9")
end sub
REM Odkazy na návody OpenOffice.cz
sub ooo_navody
OtvorSubor("http://www.openoffice.cz/navody")
end sub
sub ooo_navody_Writer
OtvorSubor("http://www.openoffice.cz/navody/writer")
end sub
sub ooo_navody_Calc
OtvorSubor("http://www.openoffice.cz/navody/calc")
end sub
sub ooo_navody_Impress
OtvorSubor("http://www.openoffice.cz/navody/impress")
end sub
sub ooo_navody_Draw
OtvorSubor("http://www.openoffice.cz/navody/draw")
end sub
sub ooo_navody_Base
OtvorSubor("http://www.openoffice.cz/navody/base")
end sub
sub ooo_navody_Serialy
OtvorSubor("http://www.openoffice.cz/navody/serialy")
end sub
sub ooo_navody_Nastaveni
OtvorSubor("http://www.openoffice.cz/navody/nastaveni")
end sub
REM Odkazy na wiki OpenOffice.cz
sub ooo_wiki
OtvorSubor("http://wiki.openoffice.cz/")
end sub
sub ooo_wiki_Writer
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Writer")
end sub
sub ooo_wiki_Calc
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Calc")
end sub
sub ooo_wiki_Impress
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Impress")
end sub
sub ooo_wiki_Draw
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Draw")
end sub
sub ooo_wiki_Base
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Base")
end sub
sub ooo_wiki_Tipy
OtvorSubor("http://wiki.openoffice.cz/wiki/Kategorie:Tipy_a_triky")
end sub
sub ooo_wiki_Hladaj
OtvorSubor("http://wiki.openoffice.cz/wiki/Speci%C3%A1ln%C3%AD:Search?search=" & DajRetazec & "&fulltext=Hledat")
end sub
REM Odkazy na fórum OpenOffice.cz
sub ooo_forum
OtvorSubor("http://forum.openoffice.cz/")
end sub
sub ooo_forum_Writer
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=3")
end sub
sub ooo_forum_Calc
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=4")
end sub
sub ooo_forum_Impress
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=6")
end sub
sub ooo_forum_Draw
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=7")
end sub
sub ooo_forum_Base
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=5")
end sub
sub ooo_forum_Dalsi
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=8")
end sub
sub ooo_forum_Slovniky
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=15")
end sub
sub ooo_forum_Ziskat
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=14")
end sub
sub ooo_forum_Instalace
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=16")
end sub
sub ooo_forum_Pripomienky
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=9")
end sub
sub ooo_forum_Chyba
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=10")
end sub
sub ooo_forum_Propagovat
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=11")
end sub
sub ooo_forum_Ine
OtvorSubor("http://forum.openoffice.cz/viewforum.php?id=12")
end sub
sub ooo_forum_Hladaj
dim spom as string
spom=DajRetazec
if spom="" then
OtvorSubor("http://forum.openoffice.cz/search.php")
else
OtvorSubor("http://forum.openoffice.cz/search.php?action=search&keywords=" & spom & "&author=&forum=-1&search_in=all&sort_by=0&sort_dir=DESC&show_as=topics&search=Odeslat")
endif
end sub
REM Odkazy na doplnky OpenOffice.cz
sub ooo_doplnky
OtvorSubor("http://www.openoffice.cz/doplnky")
end sub
sub ooo_doplnky_Writer
OtvorSubor("http://www.openoffice.cz/doplnky/writer")
end sub
sub ooo_doplnky_Calc
OtvorSubor("http://www.openoffice.cz/doplnky/calc-1")
end sub
sub ooo_doplnky_Impress
OtvorSubor("http://www.openoffice.cz/doplnky/impress")
end sub
sub ooo_doplnky_Draw
OtvorSubor("http://www.openoffice.cz/doplnky/draw")
end sub
sub ooo_doplnky_Base
' OtvorSubor("http://www.openoffice.cz/doplnky/base")
end sub
sub ooo_doplnky_Ostatni
OtvorSubor("http://www.openoffice.cz/doplnky/ostatni")
end sub
sub ooo_doplnky_Materialy
OtvorSubor("http://www.openoffice.cz/doplnky/propagacni-materialy")
end sub
Rem Odkazy na extensions.services.openoffice.org
sub extensions_extensions
OtvorSubor("http://extensions.services.openoffice.org/")
end sub
sub extensions_writer
OtvorSubor("http://extensions.services.openoffice.org/en/taxonomy/term/49")
end sub
sub extensions_calc
OtvorSubor("http://extensions.services.openoffice.org/en/taxonomy/term/64")
end sub
sub extensions_impress
OtvorSubor("http://extensions.services.openoffice.org/en/taxonomy/term/43")
end sub
sub extensions_draw
OtvorSubor("http://extensions.services.openoffice.org/en/taxonomy/term/230")
end sub
sub extensions_base
OtvorSubor("http://extensions.services.openoffice.org/en/taxonomy/term/308")
end sub
sub extensions_dictionary
OtvorSubor("http://extensions.services.openoffice.org/en/dictionary")
end sub
sub extensions_dictionary_czech
OtvorSubor("http://extensions.services.openoffice.org/project/dict-cs")
end sub
sub extensions_dictionary_slovak
OtvorSubor("http://extensions.services.openoffice.org/project/dict-sk")
end sub
sub extensions_hladaj
OtvorSubor("http://extensions.services.openoffice.org/en/search/node/" & DajRetazec)
end sub
REM Odkazy na FAQ OpenOffice.cz
sub ooo_FAQ
OtvorSubor("http://www.openoffice.cz/faq")
end sub
REM Odkazy na stiahnutie OpenOffice.cz
sub ooo_stiahnut
OtvorSubor("http://www.openoffice.cz/stahnout")
end sub
REM Odkaz na "O tomto doplňku"
sub about_ooo_menu
OtvorSubor("http://www.openoffice.cz/doplnky/openoffice-cz")
end sub
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk