Macros et bibliothèques Apache OpenOffice Basic personnalisées
- Macros et bibliothèques OpenOffice.org Basic personnalisées
- Gestionnaire des extensions OpenOffice.org
- Ajout de fichiers modèle à une installation OpenOffice.org
- Ajout de fichiers AutoTexte à une installation en réseau OpenOffice.org
- Désactivation de l'assistant d'enregistrement d'OpenOffice.org
- Accès aux clients de messagerie
- Personnalisation de l'interface utilisateur
- Restrictions des fonctionnalités dans OpenOffice.org
- Accès aux profils utilisateur d'OpenOffice.org sur un serveur LDAP
Apache OpenOffice Basic est un langage de programmation utilisable pour l'automatisation des tâches dans Apache OpenOffice. Les macros Apache OpenOffice Basic sont stockées dans des modules, qui sont à leur tour placés dans des bibliothèques. Les bibliothèques servent également de conteneurs des boîtes de dialogue créées dans Apache OpenOffice Basic.
Vous pouvez stocker les bibliothèques Basic dans tout répertoire accessible par l'utilisateur.
![]() |
Utilisez les extensions d'Apache OpenOffice pour procéder à la mise en packages et au déploiement des bibliothèques Basic. Le guide du développeur d'Apache OpenOffice (Developer's Guide) présente ces extensions de manière détaillée. |
À propos des bibliothèques et modules Apache OpenOffice
Les bibliothèques Apache OpenOffice Basic par défaut sont placées dans le répertoire install-dir/share/basic . Une bibliothèque contient les fichiers suivants :
- script.xlb
- Fichier au format XML contenant les noms des modules de la bibliothèque.
- dialog.xlb
- Fichier au format XML contenant les noms des boîtes de dialogue de la bibliothèque.
- *.xba
- Fichier au format XML stockant le code source Apache OpenOffice Basic pour un seul module Apache OpenOffice Basic. Le nom du fichier correspond au nom du module.
- *.xdl
- Fichier au format XML stockant les éléments d'une boîte de dialogue Apache OpenOffice Basic. Le nom du fichier correspond au nom de la boîte de dialogue.
- *.pba
- Module Apache OpenOffice Basic protégé par un mot de passe ; le code source est donc chiffré. Le nom du fichier correspond au nom du module.
À propos des fichiers de configuration Apache OpenOffice Basic
Les fichiers de configuration script.xlc et dialog.xlc contiennent la liste des emplacements des bibliothèques et boîtes de dialogue Apache OpenOffice Basic. Ces fichiers se trouvent dans le répertoire install-dir/user/basic/, qui contient également la bibliothèque Apache OpenOffice Basic standard par défaut, ainsi que les bibliothèques définies par l'utilisateur.
Le fichier script.xlc au format XML contient la liste de toutes les bibliothèques Basic disponibles dans Apache OpenOffice. Les balises suivantes sont utilisées :
- library:name
- Spécifie le nom de la bibliothèque Apache OpenOffice Basic.
- xlink:href
- Spécifie l'URL du fichier script.xlb pour la bibliothèque. Cet URL doit commencer par la notation file:///.
- xlink:type
- Balise requise par la balise xlink:href et devant être définie sur simple.
- library:link
- Spécifie que l'entrée est un lien vers une bibliothèque qui ne se trouve pas à l'emplacement par défaut des bibliothèques. Pour les bibliothèques Apache OpenOffice Basic, cet emplacement est install-dir/user/basic. Si vous utilisez uniquement l'emplacement par défaut des bibliothèques, définissez la valeur de cette balise sur false. Si ce n'est pas le cas, définissez la valeur de la balise sur true.
- library:readonly
- Spécifie si une bibliothèque est accessible en lecture seule. Définissez la valeur de cette balise sur true pour restreindre l'accès en lecture seule.
Le code XML suivant est celui d'un fichier de configuration script.xlc pour des bibliothèques Apache OpenOffice Basic. La seule différence entre ce fichier et un fichier dialog.xlc réside dans le fait que la balise xlink:href pointe vers le fichier script.xlb d'une bibliothèque au lieu du fichier dialog.xlb.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd"> <library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink"> <library:library library:name="Standard" xlink:href="file:///.../user/basic/Standard/script.xlb/" xlink:type="simple" library:link="false"/> <library:library library:name="FormWizard" xlink:href="file:///.../share/basic/FormWizard/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/> </library:libraries>
Exemple de fichier de configuration Apache OpenOffice Basic
Distribution de bibliothèques Apache OpenOffice Basic
Vous pouvez rendre les bibliothèques Apache OpenOffice Basic personnalisées accessibles aux installations d'Apache OpenOffice existantes ou uniquement aux nouvelles installations.
Rendre une bibliothèque Apache OpenOffice Basic personnalisée accessible à tous les utilisateurs d'un réseau
Utilisez Apache OpenOffice pour créer une bibliothèque personnalisée, ainsi que les macros de la bibliothèque.
-
En tant qu'utilisateur root, copiez la bibliothèque personnalisée, à partir de l'installation utilisateur où vous l'avez créée, dans l'installation serveur d'Apache OpenOffice.
cp -r install-dir/user/basic/custom library install-dir/share/basic/ -
Dans le fichier de configuration script.xlc pour l'installation utilisateur, ajoutez un lien au fichier de configuration script.xlb pour la bibliothèque.
Pour ce lien, utilisez la syntaxe suivante :<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
-
Dans le fichier de configuration dialog.xlc pour l'installation utilisateur, ajoutez un lien au fichier de configuration script.xlb pour la bibliothèque.
Pour ce lien, utilisez la syntaxe suivante :<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/dialog.xlb/" xlink:type="simple" library:link="false"/>
- Redémarrez Apache OpenOffice sur les stations de travail.
Rendre une bibliothèque Apache OpenOffice Basic personnalisée accessible à un seul utilisateur
-
Copiez la bibliothèque personnalisée, à partir de l'installation utilisateur où vous l'avez créée, dans l'installation utilisateur où vous souhaitez déployer la bibliothèque.
- Sur les plates-formes Solaris et Linux, connectez-vous en tant qu'utilisateur root, puis copiez la bibliothèque.
cp -r ''install-dir''/user/basic/custom library ''install-dir''/user/basic/
- Sous Windows, connectez-vous en tant qu'utilisateur doté de privilèges d'administrateur, puis copiez la bibliothèque.
Le chemin d'accès au nom de fichier pour la bibliothèque est C:\Documents and Settings\user-id\Application Data\install-dir\user\basic\custom library
-
Dans le fichier de configuration script.xlc pour l'installation utilisateur, ajoutez un lien au fichier de configuration script.xlb pour la bibliothèque.
Pour ce lien, utilisez la syntaxe suivante :<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
-
Dans le fichier de configuration dialog.xlc pour l'installation utilisateur, ajoutez un lien au fichier de configuration script.xlb pour la bibliothèque.
Pour ce lien, utilisez la syntaxe suivante :<library:library library:name="Library Name" xlink:href="$(USER)/basic/Library Name/dialog.xlb/" xlink:type="simple" library:link="false"/>
- Redémarrez Apache OpenOffice.
Installation d'une bibliothèque Apache OpenOffice Basic personnalisée avec une macro
Vous pouvez créer une macro qui installe une bibliothèque Apache OpenOffice Basic à partir d'un document Apache OpenOffice.
- Dans Writer, créez une bibliothèque Apache OpenOffice Basic personnalisée dans un nouveau document.
- Enregistrez le document.
- Créez une macro d'installation.
- Choisissez Outils → Macros → Gérer les macros → Apache OpenOffice Basic. La boîte de dialogue Macros Apache OpenOffice Basic apparaît.
- Dans la liste Macro de, sélectionnez votre document Writer.
- Dans la zone Nom de la macro, saisissez le nom de la macro d'installation.
- Cliquez sur le bouton Nouveau. La fenêtre EDI BASIC apparaît.
- Saisissez le code suivant :
- Remplacez les variables SrcLibraryName et DestLibraryName par le nom de votre bibliothèque.
- Fermez la fenêtre EDI BASIC.
- Ajoutez un bouton au document.
- Dans la barre d'outils ''''Contrôles de formulaire, cliquez sur l'icône Bouton.
- Dans le document, faites glisser le curseur pour dessiner le bouton.
- Affectez la macro d'installation au bouton.
- Cliquez avec le bouton droit de la souris sur le nouveau bouton et choisissez Contrôle.
- Cliquez sur l'onglet Événements.
- Cliquez sur les points de suspension ... en regard d'un événement, par exemple, l'événement Bouton de souris enfoncé.
- Dans la boîte de dialogue Assigner une action, cliquez sur le bouton Macro. La boîte de dialogue Sélecteur de macro apparaît.
- Dans la liste Bibliothèque, sélectionnez la bibliothèque contenant la macro d'installation.
- Dans la liste Nom de la macro, sélectionnez la macro d'installation.
- Cliquez sur OK.
- Dans la boîte de dialogue Assigner une action, cliquez sur OK.
- Enregistrez le document.
Sub AddBasicLibrary Dim SourceLibraryName As String, DestLibraryName As String Dim oSrcLib As Object, oDestLib As Object, iCounter As Integer Dim oLib As Object, oGlobalLib As Object ' paramétrez ces 2 variable au nom de votre bibliothèque SrcLibraryName = "TextLib" ' Le nom de la bibliothèque qui contient les modules DestLibraryName = "NewLib" ' Cette bibliothèque sera créée et est la ' destination des modules à partir du document source. oLib = BasicLibraries ' Pour les bibliothèques Basic oGlobalLib = GlobalScope.BasicLibraries For iLib = 1 To 2 If oGlobalLib.hasByName( DestLibraryName ) = False Then oGlobalLib.createLibrary( DestLibraryName ) End If If oLib.hasByName( SrcLibraryName ) Then oLib.loadLibrary( SrcLibraryName ) oSrcLib = oLib.getByName( SrcLibraryName ) sSrcModules = oSrcLib.getElementNames() iCounter = lBound( sSrcModules() ) while( iCounter <= uBound( sSrcModules() ) ) oDestLib = oGlobalLib.getByName(DestLibraryName) If oDestLib.hasByName( sSrcModules(iCounter) ) = False Then oDestLib.insertByName( sSrcModules(iCounter),_ oSrcLib.getByName( sSrcModules(iCounter) ) ) End If iCounter = iCounter + 1 wend End If oLib = DialogLibraries ' Même chose pour les bibliothèques de dialogue oGlobalLib = GlobalScope.DialogLibraries Next iLib End Sub
Content on this page is licensed under the Public Documentation License (PDL). |