Macros/Python Guide/fr/1stmacro

    From The Document Foundation Wiki
    < Macros‎ | Python Guide‎ | fr

    Environnement de développement |Table des matières| Principes de base

    Ma première macro

    Comment écrire une première macro en python et l'exécuter ?


    Nous allons créer une première macro qui va afficher une boite de dialogue de titre «Python» avec le message «Bonjour à tous».

    Gestion de la révision de version

    Initialisation de l'historisation

    Si vous avez la révision de versions git déjà initialisée :

    • sous Linux

    #Se positionner dans le répertoire des macros
    cd ~/.config/libreoffice/4/user/Scripts/python
    #afficher les modifications du dépot distant à récupérer
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
    #mise à jour du dépot local avec le dépot distant
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git checkout master
      Déjà sur 'master'
    #afficher le résultat de la mise à jour
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log
      commit 14e26fbbbd49e67a5fd1ba1390482ee4df142f49
      Author: Franc SERRES <sefran007@gmail.com>
      Date:   Fri Mar 3 10:23:35 2017 +0100
      
          Initialisation du dépot de macros python

    Si vous avez des problèmes à ce stade de la mise à jours du dépot local git

    Vous pouvez maintenant continuer sur comment éditer le fichier en cliquant ici

    Mise à jour de l'historisation de vos modifications

    • sous Linux

    #Voir l'état des modifications
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
      Sur la branche master
      Modifications qui ne seront pas validées :
        (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
        (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)
      
              modifié :         bonjour.py
      
      aucune modification n''a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
    #Voir ce qui a été modifié
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git diff
      diff --git a/bonjour.py b/bonjour.py
      index 26c654b..2d58594 100644
      --- a/bonjour.py
      +++ b/bonjour.py
      @@ -5,6 +5,7 @@
       #Auteur: Franc SERRES
       #Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html
       
      +
       import uno
       from com.sun.star.awt.MessageBoxType import MESSAGEBOX
           #Typedeboite :
      @@ -32,3 +33,5 @@ def bonjour():
           #  CANCEL/Retry/Ignore : 6
           boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
           return boîtemessage.execute()
      +
      +g_exportedScripts = bonjour,
    #Indexer les modifications
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git add bonjour.py
    #Voir l'état des modifications
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
      Sur la branche master
      Modifications qui seront validées :
        (utilisez "git reset HEAD <fichier>..." pour désindexer)
      
              modifié :         bonjour.py
    #historisation dans le dépot local
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git commit -m 'Ce que vous avez modifié dans bonjour.py'
      [master bc0bdbe] Ce que vous avez modifié dans bonjour.py
       1 file changed, 3 insertions(+)
    #mise à jour des informations entre le dépot local et distant
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
    #ce que vous pouvez mettre à jour
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log origin/master..
      commit bc0bdbe4d2a1b5713ceee270f986cb1334fa64fc
      Author: Franc SERRES <sefran007@gmail.com>
      Date:   Sun Mar 5 23:21:10 2017 +0100
      
          Ce que vous avez modifié dans bonjour.py
      
    #mise à jour du dépot distant
    utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git push origin master
      Décompte des objets: 3, fait.
      Delta compression using up to 4 threads.
      Compression des objets: 100% (3/3), fait.
      Écriture des objets: 100% (3/3), 350 bytes | 0 bytes/s, fait.
      Total 3 (delta 2), reused 0 (delta 0)
      To file:///srv/git/macros.git
         14e26fb..bc0bdbe  master -> master

    Lancement de l'éditeur

    Pour cela ouvrez le menu dans LibreOffice :

     Outils/Macros/Gérer les scripts python ou au clavier Alt+Maj+F11 
    
    Lancer l'extension

    Dans la boite de dialogue Scripts python :

    La fenêtre principale de l'extension
    1. Sélectionnez avec la souris la liste Mes macros
    2. Cliquez sur le bouton Menu et sélectionnez le menu Nouveau module
      Ajouter une nouvelle macro
    3. Dans la boite de saisie Nom du module à créer saisissez bonjour
      Saisie du nom de la macro
    4. Sélectionnez dans la liste Mes macros avec la souris le module bonjour nouvellement créé.
    5. Cliquez sur le bouton Menu et sélectionnez le menu Modifier
      Pour modifier une macro python

    Votre éditeur python s'ouvre avec le fichier bonjour.py

    Édition de la macro

    Coder sa macro python

    Nous devons d'abord saisir des informations sur le fichier dans l'entête du fichier :

    #!
    #coding: utf8
    #Macro: bonjour.py
    #Objectif: Affiche une boîte de dialogue avec le message «Bonjour à tous»
    #Auteur: Franc SERRES
    #Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html

    On charge dans python la bibliothèque pyuno

    import uno

    On récupère le type de boite de dialogue à afficher

    from com.sun.star.awt.MessageBoxType import MESSAGEBOX
     #Typedeboite :
     #  Boite de message      : MESSAGEBOX
     #  Boite d'information   : INFOBOX
     #  Boite d'erreur        : ERRORBOX
     #  Boite d'alerte        : WARNINGBOX
     #  Boite d'interrogation : QUERYBOX

    Et on écrit la fonction bonjour()

    def bonjour():
       #Python s'exécute dans un contexte différent de celle du bureau.
       #XSCRIPTCONTEXT récupère le contexte qui va nous autoriser à mettre en place des services de LibreOffice.
       #getDesktop() Renvoie le service de gestion du bureau de LibreOffice
       bureau = XSCRIPTCONTEXT.getDesktop()
       #Récupération du cadre de la fenêtre du bureau qui contient les objets du bureau.
       cadre = bureau.getCurrentFrame()
       #Récupération de l'objet de la fenêtre
       fenêtre = cadre.getContainerWindow()
       #Récupération des outils de gestion de la fenêtre
       boîteàoutils = fenêtre.getToolkit()
       titre = "Python"
       message = "Bonjour à tous !"
       #Création d'une boîte de dialogue.
       boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
       # boîtemessage = boîteàoutils.createMessageBox(fenêtreapplication, Typedeboite, Typedebouton, titreboîteàmessage, messageboîte)
       #
       #Typedebouton :
       #  OK                  : 1
       #  OK/CANCEL           : 2
       #  Oui/Non             : 3
       #  Oui/Non/CANCEL      : 4
       #  Retry/CANCEL        : 5
       #  CANCEL/Retry/Ignore : 6
       return boîtemessage.execute()


    Exécuter la macro

    Puis on exécute la macro avec le bouton «Exécuter».

    Avec l'extension APSO :

    Exécution de bonjour.py avec le bouton Exécuter

    ou avec le gestionaire standard de macro LibreOffice :

    Exécution de la macro bonjour.py avec le bouton Exécuter

    Ce qui nous nous donne :

    Le résultat de l'exécution de bonjour.py


    Vous pouvez maintenant archiver vos modifications


    Environnement de développement | Principes de base