Nápověda Collabora Office 24.04
Hlavním účelem modulu Service je poskytovat přístup k metodě CreateScriptService, pomocí které lze v uživatelských skriptech vytvářet instance služeb implementovaných v knihovnách ScriptForge.
V terminologii knihoven ScriptForge je služba sada metod a vlastností, které lze použít ke společnému účelu. Například služba String nabízí metody pro manipulaci s řetězci, zatímco služba FileSystem umožňuje zacházet se soubory a složkami.
Modul Service knihovny ScriptForge obsahuje další metody, které jsou používány buď interně pro registraci dostupných služeb, nebo vývojáři, kteří chtějí ScriptForge rozšířit o nové služby. Jedinou metodou, která je relevantní pro uživatelské skripty, je CreateScriptService.
Tato metoda se používá k vytvoření instance služby ScriptForge, která díky ní může být provedena v uživatelských skriptech.
Návratovou hodnotou je objekt Basicu nebo objekt Nothing, pokud nastane chyba.
svc.CreateScriptService(service: str, [arg0: any] ...): svc
service: Název služby jako řetězec ve formátu "knihovna.služba":
knihovna je knihovna jazyka Basic, která musí existovat v oblasti GlobalScope. Výchozí hodnotou je "ScriptForge".
služba je některá ze služeb zaregistrovaných knihovnou ScriptForge.
arg0, ...: Seznam argumentů vyžadovaných vytvářenou službou.
Pokud první argument odkazuje na správce událostí, poté je arg0 povinný a musí se jednat o objekt UNO představující událost, která byla předána jako argument uživatelskému makru.
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
' Stačí provést jednou
Dim svc As Object
Set svc = CreateScriptService("Array")
' Odkazuje na službu "ScriptForgeArray" či SF_Array
Set svc = CreateScriptService("ScriptForge.Dictionary")
' Vrátí novou, prázdnou instanci třídy slovník; část "ScriptForge." je nepovinná
Set svc = CreateScriptService("SFDocuments.Calc")
' Odkazuje na službu Calc, implementovanou v připojené knihovně SFDocuments
Set svc = CreateScriptService("Timer", True)
' Vrátí instanci třídy Timer, která se okamžitě spustí
Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
' Odkazuje na službu DocumentEvent, implementovanou v připojené knihovně SFDocuments
' Vrátí instanci třídy dokument, která událost spustila
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
svc = CreateScriptService("ScriptForge.Dictionary")
svc = CreateScriptService("SFDocuments.Calc")
svc = CreateScriptService("Timer", True)
svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
Ve skriptech Pythonu je možné uvést při volání metody CreateScriptService názvy argumentů. Následující příklad ukazuje jejich použití při vytváření instance služeb Timer a Document.
from scriptforge import CreateScriptService
# Timer
my_timer = CreateScriptService("Timer", start = True)
# Document
my_doc = CreateScriptService("Document", windowname = "some_file.ods")
V zájmu usnadnění psaní skriptů Pythonu nabízí knihovna ScriptForge službu Basic, která umožňuje ze skriptů Pythonu volat sadu metod se stejnou syntaxí a významem, jaké mají stejnojmenné nativní funkce Basicu.
V následujícím příkladu je vytvořena instance služby Basic a zavolána metoda MsgBox, odpovídající funkci MsgBox dostupné v Basicu.
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello World!")
Mějte na paměti, že ve skriptech Pythonu musí být vytvořena instance služby Basic, a to metodou CreateScriptService.