LibreOffice 24.8 Hjelp
Hovudføremålet med modulen Services er å gje tilgang til metoden CreateScriptService, som kan kallast opp i brukarskript for å setja opp tenester som vert implementerte med ScriptForge-miljøet.
I ScriptForge-terminologien er ei teneste ei samling av metodar og eigenskapar som kan brukast til eit felles føremål. For eksempel har tenesta String metodar for å handsama strengar, medan tenesta FileSystem vert brukt for å handsama filer og mapper.
Modulen Services i ScriptForge-biblioteket har tilleggsmetodar som vert brukte anten internt for å registrere tilgjengelege tenester eller av utviklarar som er interessert i å utvide ScriptForge ved å laga nye tenester. Den einaste metoden som er relevant for brukarskript er CreateScriptService.
Denne metoden vert brukt til å instansiere ei ScriptForge-teneste slik at ho kan kallast opp i brukarskript.
Den returnerte verdien er eit Basic-objekt, eller Nothing viss det skjedde ein feil.
svc.CreateScriptService(service: str, [arg0: any] ...): svc
service: Namnet på tenesta som vert identifisert som ein streng i formatet "library.service":
library er eit Basic-bibliotek som må finnast i GlobalScope. Standardverdien er "ScriptForge".
service er ei av dei tenestene som er registrert i ScriptForge-biblioteket.
arg0, ...: Ei liste over argument som den oppkalla tenesta krev.
Viss det første argumentet viser til ei hendingshandsaming, er arg0 obligatorisk og må vera det UNO-objektet som representerer den hendinga som er gjeve som argument til brukarmakroen.
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
' Skal gjerast éin gong
Dim svc As Object
Set svc = CreateScriptService("Array")
' Refererer til tenesta «ScriptForge.Array» eller SF_Array
Set svc = CreateScriptService("ScriptForge.Dictionary")
' Returnerer ein ny tom klasseførekomst av ei ordbok; «ScriptForge.» er valfri
Set svc = CreateScriptService("SFDocuments.Calc")
' Refererer til Calc-tenesta, implementert i det tilknytte SFDocuments-biblioteket
Set svc = CreateScriptService("Timer", True)
' Returnerer ein klasseførekomst Timer, som startar med ein gong
Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
' Refererer til DocumentEvent implementert i det tilknytte SFDocuments-biblioteket
' Returnerer den førekomsten av klassen Document som utløyste hendinga
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
svc = CreateScriptService("ScriptForge.Dictionary")
svc = CreateScriptService("SFDocuments.Calc")
svc = CreateScriptService("Timer", True)
svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
Python-skript har støtte for nøkkelordargument når CreateScriptService vert kalla opp. Det følgjande eksempelet viser dette konseptet ved å instansiere tenesteneTimer og Document ved å bruka nøkkelordargument.
from scriptforge import CreateScriptService
# Timer
my_timer = CreateScriptService("Timer", start = True)
# Document
my_doc = CreateScriptService("Document", windowname = "some_file.ods")
For å gjera skriving af Python-skript meir flytande, leverer ScriptForge-tenesta Basic, som tillet Python-skript å kalla opp ei samling av metodar med den same syntaksen og den same tydinga som funksjonane i Basic med det same namnet.
Eksempelet nedanfor set opp tenesta Basic og kallar opp metoden MsgBox som den same som funksjonen MsgBox i Basic:
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello World!")
Hugs at tenesta Basic må setjast opp i Python-skripta med metoden CreateScriptService.