Contenu

# La bibliothèque ScriptForge

Pour accéder à cette commande...

Ouvrez Outils - Macros - LibreOffice Basic - Éditer et sélectionnez le conteneur Macros d'application.

Les bibliothèques ScriptForge constituent une collection évolutive de ressources de programmation pour LibreOffice qui peuvent être invoquées depuis des macros en Basic ou des scripts en Python.

• Les macros Basic nécessitent de charger la bibliothèque ScriptForge à l'aide de l'instruction suivante :
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Les scripts Python nécessitent un import depuis le module scriptforge :
from scriptforge import CreateScriptService

Pour en savoir plus sur la création et l'exécution de scripts Python à l'aide de la bibliothèque ScriptForge, lisez la page d'aide Création de scripts Python avec ScriptForge.

## Appel des services ScriptForge

Les modules et classes décrits sont appelés à partir de scripts utilisateur en tant que "Services". Un constructeur générique de ces services a été conçu à cet effet pour chaque langage.

La méthode Dispose est disponible dans tous les services et doit être appelée pour libérer des ressources après utilisation :

##### En Basic :

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Set oSvc = CreateScriptService("servicename"[, arg0, arg1, ...])
        ' ...
        oSvc.Dispose()

##### En Python

        from scriptforge import CreateScriptService
        svc = CreateScriptService('servicename'[, arg0, arg1, ...])
        # ...
        svc.Dispose()

## Services fournis par la bibliothèque ScriptForge

Catégorie | Services
--- | ---
LibreOffice Basic | Array Dictionary | Exception FileSystem | String TextStream
Contenu du document | Base Calc Chart | Database Dataset Datasheet | Document FormDocument Writer
Interface utilisateur | Dialog DialogControl Form | FormControl Menu PopupMenu | Toolbar ToolbarButton UI
Utilitaires | Basic L10N Platform | Region Services Session | Timer UnitTest

## ScriptForge. Service Array

Fournit une collection de méthodes pour manipuler et transformer des matrices à une dimension (vecteurs) et des matrices à deux dimensions (matrices). Cela inclut les opérations d'ensemble, le tri, l'import depuis et l'export vers des fichiers texte.

Les matrices avec plus de deux dimensions ne peuvent pas être utilisées avec les méthodes de ce service, la seule exception étant la méthode CountDims qui accepte les matrices avec un nombre quelconque de dimensions.

## Service SFDocuments.Base

Le service Base fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOffice Base.

Ce service est étroitement lié au service Document, qui fournit des méthodes génériques pour gérer les documents LibreOffice, y compris les documents Base. Par conséquent, le service Base étend le service Document et fournit des méthodes supplémentaires spécifiques aux documents Base, permettant aux utilisateurs de :

- Accéder à la base de données contenue dans un document Base.

- Ouvrir les documents de formulaire stockés dans un document Base.

- Vérifier si un document de formulaire à partir d'un document Base est actuellement chargé.

## ScriptForge.Service Basic

Le service ScriptForge.Basic propose une collection de méthodes LibreOffice Basic à exécuter dans un contexte Python. Les méthodes de service Basic reproduisent la syntaxe et le comportement exacts des fonctions intégrées Basic.

## SFDocuments. Service Calc

La bibliothèque partagée SFDocuments fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOffice.

Le service SFDocuments.Calc est une sous-classe du service SFDocuments.Document. Toutes les méthodes et propriétés définies pour le service Document sont également accessibles à l'aide d'une instance de service Calc.

Le service Calc se concentre sur :

- Gestion des feuilles dans un document Calc (copier, insérer, déplacer, etc.)

- Échange de données entre les structures de données de base et les plages Calc

- Copier et importer des quantités massives de données

## Service SFDocuments.Chart

Le service Chart fournit un ensemble de propriétés et de méthodes pour gérer les diagrammes dans les documents Calc. Avec ce service il est possible de :

- Accéder aux objets diagrammes dans les documents Calc et manipuler leurs propriétés.

- Créer et insérer de nouveaux diagrammes dans un document Calc.

- Exporter les diagrammes comme fichiers d'image.

## Service SFDatabases.Database

Le service Database permet d'accéder aux bases de données intégrées ou décrites dans les documents Base. Ce service fournit des méthodes pour :

- Accéder aux données des tables de la base de données.

- Exécuter des requêtes SELECT et exécuter des fonctions d'agrégation.

- Exécuter des instructions d'action SQL telles que INSERT, UPDATE, DELETE, etc.

## ServiceSFDatabases.Dataset

Le service Dataset est utilisé pour représenter des données tabulaires produites par une base de données. Avec ce service, il est possible de :

- Naviguer et accéder aux données dans un ensemble de données.

- Mettre à jour, insérer et supprimer des enregistrements dans un ensemble de données.

## Service SFDatabases.Datasheet

Le service Datasheet permet de visualiser le contenu des tables de la base de données ainsi que les résultats des requêtes et des instructions SQL à l'aide de la vue de données de Base. De plus, ce service permet de :

- Ajouter des menus personnalisés à la vue des données.

- Accéder aux valeurs dans des positions spécifiques de la vue des données.

- Positionner le curseur dans une cellule spécifique de la vue des données.

## SFDialogs. Service Dialog

Le service Dialog contribue à la gestion des boîtes de dialogue créées avec l'Dialog Editor Basic ou des boîtes de dialogue créées à la volée . Chaque instance de la classe actuelle représente une boîte de dialogue unique affichée à l'utilisateur.

## SFDialogs. Service DialogControl

Le service DialogControl gère les contrôles appartenant à un dialogue défini avec le Basic Dialog Editor. Chaque instance du service actuel représente un contrôle unique dans une boîte de dialogue.

L'accent est mis sur l'obtention et la définition des valeurs affichées par les contrôles de la boîte de dialogue. La mise en forme est accessible via les propriétés XControlModel et XControlView.

Notez que le contenu unique de la propriété DialogControl.Value varie selon le type de contrôle.

Une attention particulière est portée aux contrôles de type contrôle en arborescence. Il est facile de peupler un arbre, soit branche par branche, soit avec un ensemble de branches à la fois. Le remplissage d'un contrôle d'arborescence peut être effectué de manière statique ou dynamique.

## Service ScriptForge.Dictionary

Un dictionnaire est une collection de paires d'éléments clés

- La clé est une chaîne de caractères. Dans les scripts Basic, la sensibilité à la casse de la clé est déterminée lors de la création du dictionnaire. Dans les scripts Python, la clé est toujours sensible à la casse.

- Les articles peuvent être de tout type

## Service SFDocuments.Document

La bibliothèque SFDocuments fournit des méthodes et des propriétés pour faciliter la gestion et la manipulation des documents LibreOffice.

Les méthodes applicables à tous les types de documents (Documents Textes, Classeurs, Présentations, etc.) sont fournies par le service SFDocuments.Document. Certains exemples sont :

- Ouvrir, fermer et enregistrer des documents

- Accéder aux propriétés standard ou personnalisées des documents

## Service ScriptForge.Exception

Le service Exception est un ensemble de méthodes pour aider au débogage du code dans les scripts Basic et Python et à la gestion des erreurs dans les scripts Basic.

Dans les scripts de base, lorsqu'une erreur d'exécution se produit, les méthodes et propriétés du service Exception aident à identifier le contexte de l'erreur et permettent de le gérer.

## ScriptForge. Service FileSystem

Le service FileSystem inclut des routines pour gérer les fichiers et les dossiers. Voici quelques exemples des fonctionnalités fournies par ce service :

- Vérifier si un fichier ou un dossier existe.

- Créer ou supprimer des dossiers et des fichiers.

- Lancer des boîtes de dialogue pour ouvrir/enregistrer des fichiers.

- Accéder à la liste des fichiers d'un dossier, etc.

## SFDocuments. Service Form

Le service Form fournit des méthodes et des propriétés pour gérer les formulaires dans les documents LibreOffice. Ce service prend en charge les formulaires dans les documents Base, Calc et Writer et permet de :

- Ouvrir et activer des formulaires.

- Naviguer à travers des enregistrements affichés par le formulaire.

- Avoir accès aux contrôles dans le formulaire.

- Avoir accès aux sous-formulaires d'un formulaire parent.

## Service SFDocuments.FormControl

Le service FormControl permet d'accéder aux contrôles appartenant à un formulaire, un sous-formulaire ou un contrôle de table d'un FormDocument. Chaque instance du service FormControl fait référence à un seul contrôle dans le formulaire. Ce service permet aux utilisateurs de :

- Obtenez et définissez les propriétés du contrôle représenté par l'instance FormControl.

- Accéder à la valeur active affichée par le champ.

- Régler le focus sur le contrôle souhaité.

## Service SFDocuments.FormDocument

Le service FormDocument permet d'accéder aux documents de formulaire stockés dans les documents LibreOffice Base.

Dans un document Base, les documents de formulaire existants peuvent être visualisés en sélectionnant Afficher - Formulaires dans l'interface utilisateur. Chaque document de formulaire peut être composé d'un ou plusieurs formulaires, y compris le formulaire principal et d'autres sous-formulaires.

## Service ScriptForge.L10N

Ce service fournit un certain nombre de méthodes liées à la traduction des chaînes avec un impact minimal sur le code source du programme. Les méthodes fournies par le service L10N permettent principalement de :

- Créer des fichiers POT qui peuvent être utilisés comme modèles pour la traduction de toutes les chaînes du programme.

- Obtenir les chaînes traduites au moment de l'exécution pour la langue définie dans la propriété Locale.

## Service SFWidgets.Menu

Le service Menu permet de créer et de supprimer des menus de la barre de menus d'une fenêtre de document LibreOffice. Chaque entrée de menu peut être associée à un script ou à une commande UNO. Ce service offre les fonctionnalités suivantes :

- Création de menus avec des entrées personnalisées, des cases à cocher, des boutons radio et des séparateurs.

- Décoration des éléments de menu avec des icônes et des info-bulles.

## Service ScriptForge.Platform

Le service Platform fournit une collection de propriétés sur l'environnement et le contexte d'exécution actuels, telles que :

- La plate-forme matérielle (architecture, nombre de CPU, type de machine, etc.)

- Informations sur le système d'exploitation (type de système d'exploitation, version, etc.)

- La version de LibreOffice

- Le nom d'utilisateur actuel

## Service SFWidgets.PopupMenu

Le service PopupMenu permet de créer des menus contextuels pouvant être associés à des événements ou exécutés par des scripts. Ce service offre les fonctionnalités suivantes :

- Création de menus contextuels avec des entrées personnalisées, des cases à cocher et des boutons radio.

- Décoration des éléments de menu avec des icônes et des info-bulles.

## Service ScriptForge.Region

Le service Region fournit un ensemble de propriétés et de méthodes pour gérer les aspects de programmation liés aux paramètres locaux et régionaux, tels que :

- Accéder aux paramètres locaux et régionaux tels que le formatage des nombres, la devise et les fuseaux horaires.

- Convertir les fuseaux horaires et calculer les décalages de l'heure d'été (DST).

- Transformer des nombres en texte dans n'importe quelle langue prise en charge.

## Service ScriptForge.Services

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.

## Service ScriptForge.Session

Le service Session rassemble diverses méthodes à usage général concernant :

- l'environnement d'installation ou d'exécution

- introspection UNO

- l'invocation de scripts ou de programmes externes

## Service ScriptForge.String

Le service String fournit une collection de méthodes pour le traitement des chaînes. Ces méthodes peuvent être utilisées pour :

- Valider le contenu des chaînes

- Formater les chaînes en coupant, justifiant ou enveloppant leur contenu

- Utiliser des expressions régulières pour rechercher et remplacer des sous-chaînes

- Appliquer des algorithmes de hachage sur des chaînes, etc.

## Service ScriptForge.TextStream

Le service TextStream est utilisé pour lire et écrire séquentiellement dans des fichiers ouverts ou créés à l'aide du service ScriptForge.FileSystem.

Les méthodes OpenTextFile et CreateTextFile du service FileSystem renvoient une instance du service TextStream.

## Service ScriptForge.Timer

Le service Timer mesure le temps nécessaire à l'exécution des scripts utilisateur.

Un Timer mesure les durées. Ça peut être:

- Démarré, pour indiquer quand commencer à mesurer le temps.

- Suspendu, pour suspendre la mesure du temps de fonctionnement.

- Reprise, pour continuer à suivre le temps d'exécution après la suspension du minuteur.

- Redémarré, ce qui annulera les mesures précédentes et démarrera le Timer à zéro.

## ServiceSFWidgets.Toolbar

Le service Toolbar permet de récupérer des informations relatives aux barres d'outils disponibles pour une fenêtre de document spécifique. Avec ce service, il est possible de :

- Basculez la visibilité de barres d’outils spécifiques.

- Accéder aux informations sur les boutons disponibles dans chaque barre d'outils.

## Service SFWidgets.ToolbarButton

Le service ToolbarButton permet de récupérer des informations relatives aux boutons de barre d'outils disponibles dans une barre d'outils donnée. Avec ce service, il est possible de :

- Basculez la visibilité des éléments de la barre d'outils.

- Exécute la commande associée à un bouton de barre d'outils donné.

## Service ScriptForge.UI

Le service UI (User Interface) simplifie l'identification et la manipulation des différentes fenêtres composant l'ensemble de l'application LibreOffice :

- Sélection des fenêtres

- Déplacer et redimensionner les fenêtres

- Paramètres de la barre d'état

- Affichage d'une barre de progression flottante

- Création de nouvelles fenêtres

- Accès aux "documents" sous-jacents

## Service SFUnitTests.UnitTest

Le service UnitTest fournit un cadre pour automatiser les tests unitaires à l'aide du langage Basic, notamment la possibilité de :

- Regrouper les cas de test en suites de tests et en tests unitaires.

- Partager le code de configuration et d’arrêt entre les scénarios de test.

- Rapporter les résultats des tests à l'aide de la Console.

## Service SFDocuments.Writer

La bibliothèque partagée SFDocuments fournit un certain nombre de méthodes et de propriétés pour faciliter la gestion et la manipulation des documents LibreOffice.

Certaines méthodes sont génériques pour tous les types de documents et sont héritées du module SF_Document, tandis que d'autres méthodes spécifiques aux documents Writer sont définies dans le module SF_Writer.

Remarque :les autres modules ScriptForge non décrits sont réservés à un usage interne. Leur contenu est sujet à changement sans préavis.

Toutes les routines ou identifiants de base ScriptForge qui sont préfixés par un caractère de soulignement "_" sont réservés à un usage interne. Ils ne sont pas destinés à être utilisés dans des macros de base ou des scripts Python.

Aidez-nous !