Aide Collabora Office 24.04
L'objectif principal du module Services est de fournir un accès à la méthode CreateScriptService, qui peut être appelée dans des scripts utilisateur pour instancier des services implémentés à l'aide de l'environnement ScriptForge.
Dans la terminologie de ScriptForge, un service est un ensemble de méthodes et de propriétés pouvant être utilisées dans un but commun. Par exemple, le service String fournit des méthodes de manipulation de chaînes tandis que le service FileSystem permet la manipulation de fichiers et de dossiers.
Le module Services de la bibliothèque ScriptForge fournit des méthodes supplémentaires qui sont utilisées soit en interne pour enregistrer les services disponibles, soit par les développeurs qui souhaitent étendre ScriptForge en créant de nouveaux services. La seule méthode pertinente pour les scripts utilisateur est CreateScriptService.
Cette méthode est utilisée pour instancier un service ScriptForge afin qu'il puisse être appelé dans les scripts utilisateur.
La valeur renvoyée est un objet Basic ou Nothing si une erreur s'est produite.
svc.CreateScriptService(service: str, [arg0: any] ...): svc
service : le nom du service identifié comme une chaîne au format "library.service" :
La bibliothèque est une bibliothèque Basic qui doit exister dans GlobalScope. La valeur par défaut est "ScriptForge".
Le service est l'un des services enregistrés par la bibliothèque ScriptForge.
arg0, ... : une liste d'arguments requis par le service invoqué.
Si le premier argument fait référence à un gestionnaire d'événements, alors arg0 est obligatoire et doit être l'objet UNO représentant l'événement fourni comme argument à la macro utilisateur.
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
' À faire une fois
Dim svc As Object
Set svc = CreateScriptService("Array")
' Fait référence au service "ScriptForge.Array" ou SF_Array
Set svc = CreateScriptService("ScriptForge.Dictionary")
' Renvoie une nouvelle instance de classe de dictionnaire vide ; "Script Forge." est facultatif
Set svc = CreateScriptService("SFDocuments.Calc")
' Fait référence au service Calc, implémenté dans la bibliothèque SFDocuments associée
Set svc = CreateScriptService("Timer", True)
' Renvoie une instance de classe Timer commençant immédiatement
Set svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
' Fait référence au service DocumentEvent implémenté dans la bibliothèque SFDocuments associée
' Renvoie l'instance de la classe Document qui a déclenché l'événement
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
svc = CreateScriptService("ScriptForge.Dictionary")
svc = CreateScriptService("SFDocuments.Calc")
svc = CreateScriptService("Timer", True)
svc = CreateScriptService("SFDocuments.DocumentEvent", oEvent)
Les scripts Python prennent en charge les arguments de mots clés lors de l'appel de CreateScriptService. L'exemple suivant illustre ce concept en instanciant les services Timer et Document à l'aide d'arguments de mots clés.
from scriptforge import CreateScriptService
# Timer
my_timer = CreateScriptService("Timer", start = True)
# Document
my_doc = CreateScriptService("Document", windowname = "some_file.ods")
Pour rendre l'écriture de scripts Python plus fluide, ScriptForge fournit le service Basic qui permet aux scripts Python d'appeler une collection de méthodes avec la même syntaxe et la même signification que leurs fonctions Basic natives homonymes.
L'exemple suivant instancie le service Basic et appelle la méthode MsgBox, qui équivaut à la fonction MsgBox disponible en Basic :
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello World!")
Sachez que le service Basic doit être instancié dans les scripts Python à l'aide de la méthode CreateScriptService.