Ajuda do Collabora Office 24.04
O principal objetivo do módulo Services é prover acesso ao método CreateScriptService, o qual pode ser chamado em scripts de usuário para instanciar serviços que são implementados usando o framework ScriptForge.
Na terminologia do ScriptForge um serviço é uma coleção de métodos e propriedades que podem ser usados para um propósito comum. Por exemplo, o serviço String fornece métodos para manipular strings e o serviço FileSystem permite o manuseio de arquivos e pastas.
O módulo Services da biblioteca ScriptForge fornece métodos adicionais que são usados tanto internamente para registrar serviços disponíveis como por desenvolvedores interessados em estender as funcionalidades do ScriptForge ao adicionar novos serviços. O único método relevante para scripts de usuário é CreateScriptService.
Este método é usado para instanciar um serviço ScriptForge então pode ser chamado em scripts de usuário.
O valor retornado é um objeto Basic ou Nothing se algum erro ocorreu.
svc.CreateScriptService(service: str, [arg0: any] ...): svc
service: Nome do serviço identificado como uma string no formato "biblioteca.serviço":
A biblioteca se refere a uma biblioteca Basic que deve existir em GlobalScope. O valor padrão é "ScriptForge".
O serviço é um dos serviços registrados pela biblioteca ScriptForge.
arg0, ...: Lista de argumentos requeridos para invocar o serviço.
Se o primeiro argumento se referir a um gerenciador de eventos, então arg0 é obrigatório e deve ser o objeto UNO que representa o evento passado como argumento para a macro.
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
' A ser feito apenas uma vez
Dim svc As Object
Set svc = CreateScriptService("Array")
' Refere-se ao serviço "ScriptForge.Array" ou SF_Array
Set svc = CreateScriptService("ScriptForge.Dictionary")
' Retorna uma instância com um novo dicionário vazio; "ScriptForge" é opcional
Set svc = CreateScriptService("SFDocuments.Calc")
' Refere-se ao serviço Calc, implementado na biblioteca associada SFDocuments
Set svc = CreateScriptService("Timer", True)
' Retorna uma instância do serviço Timer e é iniciado imediatamente
Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
' Refere-se ao serviço DocumentEvent implementado na biblioteca associada SFDocuments
' Retorna a instância do serviço Document que disparou o evento
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
svc = CreateScriptService("ScriptForge.Dictionary")
svc = CreateScriptService("SFDocuments.Calc")
svc = CreateScriptService("Timer", True)
svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
Scripts em Python suportam argumentos de palavra-chave ao chamar o método CreateScriptService. O exemplo abaixo ilustra esse conceito ao instanciar os serviços Timer e Document usando argumentos de palavra-chave.
from scriptforge import CreateScriptService
# Timer
my_timer = CreateScriptService("Timer", start = True)
# Document
my_doc = CreateScriptService("Document", windowname = "some_file.ods")
Para facilitar o desenvolvimento de scripts Python, a biblioteca ScriptForge disponibiliza o serviço Basic que permite que scripts Python executem métodos nativos da linguagem Basic com a mesma sintaxe e significado de suas funções homônimas em Basic.
O exemplo a seguir cria uma instância do serviço Basic e chama o método MsgBox, o qual é equivalente à função MsgBox disponível em Basic:
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello World!")
Note que o serviço Basic deve ser instanciado em scripts Python usando o método CreateScriptService.