issue70:libreoffice
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue70:libreoffice [2013/05/24 15:42] – [1] auntiee | issue70:libreoffice [2013/05/26 10:45] (Version actuelle) – [7] auntiee | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
The LibreOffice Basic language is very similar to other Basic languages, such as Visual Basic for Applications. To manipulate the underlying LibreOffice document, we access the Uno framework controlling the document. The Uno framework is quite complex, but I will explain, as best I can, the properties and objects we will use. The goal is not to teach you how to write LibreOffice macros, but how you can use them.** | The LibreOffice Basic language is very similar to other Basic languages, such as Visual Basic for Applications. To manipulate the underlying LibreOffice document, we access the Uno framework controlling the document. The Uno framework is quite complex, but I will explain, as best I can, the properties and objects we will use. The goal is not to teach you how to write LibreOffice macros, but how you can use them.** | ||
- | Pour les quatre parties précédentes de cette série, nous avons pris notre temps pour construire un document de base de données avec le module Base de LibreOffice. Nous avons une base de données avec des formulaires pour saisir nos données et des requêtes et rapports pour les extraire. Nous avons maintenant un document que nous pouvons utiliser pour l' | + | Pour les quatre parties précédentes de cette série, nous avons pris notre temps pour construire un document de base de données avec le module Base de LibreOffice. Nous avons une base de données avec des formulaires pour saisir nos données et des requêtes, et des rapports pour les extraire. Nous avons maintenant un document que nous pouvons utiliser pour l' |
- | Le langage Basic de LibreOffice est très similaire à d' | + | Le langage Basic de LibreOffice est très similaire à d' |
===== 2 ===== | ===== 2 ===== | ||
Ligne 18: | Ligne 18: | ||
Now, on to the fun stuff.** | Now, on to the fun stuff.** | ||
+ | |||
+ | Macros : Sécurité et Options | ||
+ | |||
+ | Alors qu'il est vrai que les macros nous permettent de faire des trucs sympas dans nos documents, elles peuvent également être source de problèmes. Il y a des individus qui se servent de macros pour compromettre le système d' | ||
+ | |||
+ | La sécurité des macros dans LibreOffice est simple. Outils > Options ouvre le dialogue Options pour LibreOffice. Sous LibreOffice, | ||
+ | |||
+ | Et maintenant, amusons-nous. | ||
===== 3 ===== | ===== 3 ===== | ||
Ligne 28: | Ligne 36: | ||
Tools > Macros > Organize Macros > LibreOffice Basic. The LibreOffice Basic Macros dialog pops up. Select book.odb from the Macro from-list. Click the New button. A dialog pops up asking you for a name for the module. Name it FormCalls. Click OK. This brings up the LibreOffice macro editor. The macro comes with a default main subroutine. We will not use this subroutine. Highlight Sub main and End Sub and press the backspace key to delete them.** | Tools > Macros > Organize Macros > LibreOffice Basic. The LibreOffice Basic Macros dialog pops up. Select book.odb from the Macro from-list. Click the New button. A dialog pops up asking you for a name for the module. Name it FormCalls. Click OK. This brings up the LibreOffice macro editor. The macro comes with a default main subroutine. We will not use this subroutine. Highlight Sub main and End Sub and press the backspace key to delete them.** | ||
+ | |||
+ | Les macros | ||
+ | |||
+ | Nous allons écrire quatre macros pour notre document de base de données. Trois traiteront l' | ||
+ | |||
+ | Avant de commencer à écrire les macros, nous avons besoin d'un conteneur où les mettre. Les macros sont contenues dans un module. Les modules peuvent vivre dans le programme même ou au sein du document. Puisque nos macros sont spécifiques au fichier de base de données, nous allons les intégrer dans le document. Les macros intégrées à un document ne sont disponibles que quand le document est chargé. Les macros contenues dans un programme sont disponibles tant que le programme fonctionne. | ||
+ | |||
+ | Outils > Macros > Gérer les macros > LibreOffice Basic. La boîte de dialogue Macros LibreOffice Basic s' | ||
===== 4 ===== | ===== 4 ===== | ||
Ligne 36: | Ligne 52: | ||
| | ||
+ | |||
+ | Notre première macro est une routine généralisée pour ouvrir un formulaire. Une routine généralisée est écrite pour être réutilisée. Nous appellerons cette routine deux fois à partir d' | ||
+ | |||
+ | La première ligne de la routine s' | ||
+ | |||
+ | ThisDatabaseDocument (CeDocumentBase) fait référence au document de base de données actuellement ouvert. Ici, il s'agit de book.odb (livre.odb). FormDocuments est un ensemble de tous les formulaires dans le document. Enfin, GetByName (ObtenirParNom) récupère un objet formulaire spécifique dans l' | ||
===== 5 ===== | ===== 5 ===== | ||
Ligne 52: | Ligne 74: | ||
Once again, since we will call this subroutine (shown right) from a control, we need a reference to the control making the call. However, this time we will actually use the object. This subroutine makes a method call to the underlying model of the list box and refreshes the data in the list, thus updating our list of authors or media types. Save your module and close the Basic editor.** | Once again, since we will call this subroutine (shown right) from a control, we need a reference to the control making the call. However, this time we will actually use the object. This subroutine makes a method call to the underlying model of the list box and refreshes the data in the list, thus updating our list of authors or media types. Save your module and close the Basic editor.** | ||
+ | Nous appellerons la routine OpenAForm deux fois. Une fois pour ouvrir le formulaire auteurs et une fois pour ouvrir le formulaire média. Ajoutez les deux sous-routines ci-dessous dans votre éditeur. | ||
+ | |||
+ | La signature sur ces deux routines est un peu différente. Puisque nous les appellerons à partir d'un contrôle à l' | ||
+ | |||
+ | La routine finale traite notre problème du rafraîchissement des données dans les menus déroulants pour les auteurs et les médias quand nous ajoutons des auteurs ou médias au moyen des deux routines ci-dessus. | ||
+ | |||
+ | Sub ListRefresh(oEv as Object) | ||
+ | oEv.source.model.Refresh | ||
+ | |||
+ | End Sub | ||
===== 6 ===== | ===== 6 ===== | ||
Ligne 60: | Ligne 92: | ||
In the database pane, click on Forms. Right-click the Books form and select edit. Add two push buttons to the form, one under the Authors table and another under the Media table. Right-click the button under the Authors table and select Control to bring up the buttons properties dialog. On the General tab, change the name to AddAuthors and the Label to Add Authors. On the Events tab, click the ellipses (…) button next to Execute Action – which brings up the Assign Action dialog. Click the Macro button to bring up the Macro Selector dialog. In the tree list under Library, select book.odb > Standard > FormCalls. Select OpenAuthorsForm from the Macro Name list and click OK. Click OK to close the Assign Action dialog. Close the buttons properties dialog.** | In the database pane, click on Forms. Right-click the Books form and select edit. Add two push buttons to the form, one under the Authors table and another under the Media table. Right-click the button under the Authors table and select Control to bring up the buttons properties dialog. On the General tab, change the name to AddAuthors and the Label to Add Authors. On the Events tab, click the ellipses (…) button next to Execute Action – which brings up the Assign Action dialog. Click the Macro button to bring up the Macro Selector dialog. In the tree list under Library, select book.odb > Standard > FormCalls. Select OpenAuthorsForm from the Macro Name list and click OK. Click OK to close the Assign Action dialog. Close the buttons properties dialog.** | ||
- | Do the same with the button under the Media table, only name it AddMedia, make the label Add Media Type, and assign the macro OpenMediaForm to the Execute Action event. | + | Créer des connexions aux macros |
- | Finally, we need to add the refresh subroutine to our list boxes. Right-click the Authors column in the authors table and select Column. On the Events tab, click the ellipse | + | À ce stade, nos macros ne font rien du tout. Il faut les relier aux objets dans notre formulaire afin de pouvoir les activer quand on en a besoin. Nous allons d' |
+ | Dans le volet Base de données, cliquez sur Formulaires. Faites un clic droit sur le formulaire Livres et sélectionnez Éditer. Ajoutez deux boutons-poussoirs au formulaire, un sous le tableau Auteurs et l' | ||
+ | |||
+ | **Do the same with the button under the Media table, only name it AddMedia, make the label Add Media Type, and assign the macro OpenMediaForm to the Execute Action event. | ||
+ | |||
+ | Finally, we need to add the refresh subroutine to our list boxes. Right-click the Authors column in the authors table and select Column. On the Events tab, click the ellipse (…) button beside “When receiving focus”. In the Assign Action button, use the Macro button to assign the ListRefresh macro to the action. This will cause the list to update data from the Authors table when you click on a list box in the column. Do the same for the Media column in the media table. Save your changes to the Books form and close it.** | ||
+ | |||
+ | Faites la même chose pour le bouton sous le tableau Média : nommez-le AjouterMédia, | ||
+ | |||
+ | Enfin, nous devons ajouter la routine pour rafraîchir nos listes déroulantes. Faites un clic droit sur la colonne Auteurs dans le tableau auteurs et sélectionnez Colonne. Sous l' | ||
===== 7 ===== | ===== 7 ===== | ||
Ligne 79: | Ligne 120: | ||
Next time, we will move on to another part of the LibreOffice suite and explore the Math module.** | Next time, we will move on to another part of the LibreOffice suite and explore the Math module.** | ||
+ | |||
+ | Tester les modifications | ||
+ | |||
+ | Chaque fois que nous changeons quelque chose dans les formulaires, | ||
+ | |||
+ | Quelques réflexions et références pour terminer. | ||
+ | |||
+ | À nouveau, j' | ||
+ | |||
+ | LibreOffice Basic Guide: http:// | ||
+ | Andrew Pitonyak' | ||
+ | Un livre (payant) en français : http:// | ||
+ | |||
+ | Vous trouverez les macros utilisés dans ce tutoriel sur pastebin.com à http:// | ||
+ | |||
+ | La prochaine fois, nous continuerons notre exploration de la suite bureautique LibreOffice avec le module Formule. | ||
+ | |||
+ | |||
+ |
issue70/libreoffice.1369402961.txt.gz · Dernière modification : 2013/05/24 15:42 de auntiee