Macros et bibliothèques OpenOffice.org Basic personnalisées
From OpenOffice.org Wiki
- 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
OpenOffice.org Basic est un langage de programmation utilisable pour l'automatisation des tâches dans OpenOffice.org. Les macros OpenOffice.org 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 OpenOffice.org Basic.
Vous pouvez stocker les bibliothèques Basic dans tout répertoire accessible par l'utilisateur.
| Utilisez les extensions d'OpenOffice.org pour procéder à la mise en packages et au déploiement des bibliothèques Basic. Le guide du développeur d'OpenOffice.org (Developer's Guide) présente ces extensions de manière détaillée. |
À propos des bibliothèques et modules OpenOffice.org
Les bibliothèques OpenOffice.org 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 OpenOffice.org Basic pour un seul module OpenOffice.org 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 OpenOffice.org Basic. Le nom du fichier correspond au nom de la boîte de dialogue.
- *.pba
- Module OpenOffice.org 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 OpenOffice.org Basic
Les fichiers de configuration script.xlc et dialog.xlc contiennent la liste des emplacements des bibliothèques et boîtes de dialogue OpenOffice.org Basic. Ces fichiers se trouvent dans le répertoire install-dir/user/basic/, qui contient également la bibliothèque OpenOffice.org 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 OpenOffice.org. Les balises suivantes sont utilisées :
- library:name
- Spécifie le nom de la bibliothèque OpenOffice.org 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 OpenOffice.org 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 OpenOffice.org 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 OpenOffice.org Basic
Distribution de bibliothèques OpenOffice.org Basic
Vous pouvez rendre les bibliothèques OpenOffice.org Basic personnalisées accessibles aux installations d'OpenOffice.org existantes ou uniquement aux nouvelles installations.
Rendre une bibliothèque OpenOffice.org Basic personnalisée accessible à tous les utilisateurs d'un réseau
Utilisez OpenOffice.org 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'OpenOffice.org.
cp -r install-dir/user/basic/custom library install-dir/share/basic/
Sous Windows, l'emplacement d'une bibliothèque personnalisée est C:\Documents and Settings\user-id\Application Data\installation-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 OpenOffice.org sur les stations de travail.
Rendre une bibliothèque OpenOffice.org 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 OpenOffice.org.
Installation d'une bibliothèque OpenOffice.org Basic personnalisée avec une macro
Vous pouvez créer une macro qui installe une bibliothèque OpenOffice.org Basic à partir d'un document OpenOffice.org.
- Dans Writer, créez une bibliothèque OpenOffice.org Basic personnalisée dans un nouveau document.
- Enregistrez le document.
- Créez une macro d'installation.
- Choisissez Outils → Macros → Gérer les macros → OpenOffice.org Basic. La boîte de dialogue Macros OpenOffice.org 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). |

