Macros et bibliothèques OpenOffice.org Basic personnalisées

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo



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.

Documentation note.png 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.

Documentation caution.png

Vous ne pouvez pas modifier l'emplacement des fichiers de configuration script.xlc et dialog.xlc.


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:///.
Documentation note.png Vous n'avez pas besoin de spécifier de valeur pour la balise xlink:href si la bibliothèque se trouve dans le répertoire <OpenOffice.org installation directory>/user/basic de l'installation utilisateur.
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.

Documentation note.png Les fichiers de configuration script.xlc et dialog.xlc sont placés dans les répertoires suivants :
  • Plates-formes Solaris et Linux : install-dir/usr/basic/
  • Windows : C:\Documents and Settings\user-id\Application Data\install-dir\user\basic\

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.

  1. 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/
    Documentation note.png 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
  2. 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"/>
  3. 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"/>
  4. Redémarrez OpenOffice.org sur les stations de travail.

Rendre une bibliothèque OpenOffice.org Basic personnalisée accessible à un seul utilisateur

  1. 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

  2. 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"/>
  3. 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"/>
  4. 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.

  1. Dans Writer, créez une bibliothèque OpenOffice.org Basic personnalisée dans un nouveau document.
  2. Enregistrez le document.
  3. Créez une macro d'installation.
    1. Choisissez Outils → Macros → Gérer les macros → OpenOffice.org Basic. La boîte de dialogue Macros OpenOffice.org Basic apparaît.
    2. Dans la liste Macro de, sélectionnez votre document Writer.
    3. Dans la zone Nom de la macro, saisissez le nom de la macro d'installation.
    4. Cliquez sur le bouton Nouveau. La fenêtre EDI BASIC apparaît.
    5. Saisissez le code suivant :
    6.  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 &lt;= 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
    7. Remplacez les variables SrcLibraryName et DestLibraryName par le nom de votre bibliothèque.
    8. Fermez la fenêtre EDI BASIC.
  4. Ajoutez un bouton au document.
    1. Dans la barre d'outils ''''Contrôles de formulaire, cliquez sur l'icône Bouton.
    2. Dans le document, faites glisser le curseur pour dessiner le bouton.
  5. Affectez la macro d'installation au bouton.
    1. Cliquez avec le bouton droit de la souris sur le nouveau bouton et choisissez Contrôle.
    2. Cliquez sur l'onglet Événements.
    3. Cliquez sur les points de suspension ... en regard d'un événement, par exemple, l'événement Bouton de souris enfoncé.
    4. 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.
    5. Dans la liste Bibliothèque, sélectionnez la bibliothèque contenant la macro d'installation.
    6. Dans la liste Nom de la macro, sélectionnez la macro d'installation.
    7. Cliquez sur OK.
    8. Dans la boîte de dialogue Assigner une action, cliquez sur OK.
  6. Enregistrez le document.
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages