<h2>But de ce document</h2>
<p class="spip">Expliquer comment débuter en programmation sous OOo. Ce document s’adresse à des personnes ayant déjà programmé et si possible en programmation objet et désirant commencer à programmer sous OOo en partant sur de bonnes bases.</p>

<h2>Écriture du premier programme dans Calc</h2>
<p class="spip">Depuis Calc, passer dans l’éditeur de programmes :
<br /></p>
<li> Menu « Outils / Macros / Gérer les macros / OpenOffice.org Basic »
<br /><li> Dans la partie gauche, sélectionner le nom du document document et « Standard »
<br /><li> Cliquer sur le bouton « Nouveau », laisser le nom « Module 1 » et OK
<br /><li> Effacer le texte proposé par défaut et saisir ceci :
<p class="spip"><code class='spip_code' dir='ltr'>sub Programme1()</code></p>

<p class="spip"><code class='spip_code' dir='ltr'>  thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("A1").string="Bonjour"</code></p>

<p class="spip"><code class='spip_code' dir='ltr'>end sub</code></p>

<h2>Exécuter manuellement un programme</h2>
<p class="spip">Depuis Calc, pour exécuter manuellement ce programme, il faut faire :
<br /></p>
<li> Outils / Macros / Exécuter la macro
<br /><li> Dans la partie gauche, sélectionner le nom du fichier, puis « Standard » puis « Module1 »
<br /><li> Dans la partie droite, sélectionner le programme et cliquer sur « Exécuter »
<h2>Exécuter le programme avec un bouton</h2>
<p class="spip">Depuis Calc :
<br /></p>
<li> Affichage / Barre d’outils / contrôle de formulaires
<br /><li> Cliquer sur l’icône en forme de bouton et dessiner un bouton sur la feuille
<br /><li> Clic droit sur le bouton et « Contrôle »
<br /><li> Cliquer sur « ... » à droite de « Lors du déclenchement »
<br /><li> Cliquer sur « Assigner »
<br /><li> Sélectionner la macro et fermer les fenêtres
<br /><li> Dans la barre d’outils, cliquer sur le bouton pour sortir du mode conception de formulaires
<br /><li> Cliquer sur le bouton ajouter pour tester la macro :-)
<h2>Créer une macro avec l’enregistreur de macros</h2>
<p class="spip">Dans Calc :
<br /></p>
<li> Sélectionner une cellule
<br /><li> Outils / Macros / Enregistrer une macro
<br /><li> Saisir dans la cellule « Bonjour »
<br /><li> Cliquer sur « Terminer l’enregistrement »
<br /><li> Indiquer un nom à la macro et dans quel module il faut l’enregistrer
<br /><li> Cliquer sur « Enregistrer »
<p class="spip">Comparer la macro enregistrée avec la macro écrite à la main en allant dans l’éditeur :
<br /></p>
<li> Menu « Outils / Macros / Gérer les macros / OpenOffice.org Basic »
<br /><li> Dans la partie gauche, sélectionner le nom du document document et « Standard »
<p class="spip">L’enregistreur de macros se contente d’enregistrer les appels aux menus. Il n’utilise pas les objets, ce qui le rend particulièrement illisible et donc quasiment inutilisable dans la plupart des cas. Je conseille donc de ne pas l’utiliser.</p>

<h2>Télécharger et installer la documentation de l’API</h2>
<p class="spip">Télécharger le SDK (Software Development Kit) contenant la documentation de l’API (Application programming interface), à cette adresse :
<br /></p>
<li> <a href="http://api.openoffice.org/" class="spip_out">http://api.openoffice.org/</a>
<br /><li> <a href="http://download.openoffice.org/2.0.3/sdk.html" class="spip_out">http://download.openoffice.org/2.0.3/sdk.html</a>
<p class="spip">Une fois le fichier téléchargé, il faut le rendre exécutable :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chmod +x OOo_2.0.3_LinuxIntel_sdk.sh</code></p>

<p class="spip">Ensuite, il faut l’exécuter pour décompresser le paquet RPM :</p>

<p class="spip"><code class='spip_code' dir='ltr'>./ OOo_2.0.3_LinuxIntel_sdk.sh</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Par défaut le RPM est décompressé dans « <strong class="spip">/var/tmp/unpack_openofficeorg</strong> »</p>

<p class="spip">Sous Debian, il faut convertir ce RPM en paquet Debian :</p>

<p class="spip"><code class='spip_code' dir='ltr'># alien /var/tmp/unpack_openofficeorg/RPMS/openoffice.org-sdk-2.0.3-5.i586.rpm</code></p>

<p class="spip">Et pour finir, il faut installer le paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># dpkg -i openoffice.org-sdk_2.0.3-6_i386.deb</code></p>

<p class="spip">Ce paquet installe les fichiers dans le dossier suivant :
<br /></p>
<li> /opt/openoffice.org2.0_sdk
<p class="spip">La documentation est donc disponible à cette adresse :
<br /></p>
<li> /opt/openoffice.org2.0_sdk/index.html
<h2>Télécharger et installer xRay</h2>
<p class="spip">xRay est une macro permettant d’obtenir facilement la liste des méthodes et propriétés d’un objet.</p>

<p class="spip">Page de téléchargement de cet outil :
<br /></p>
<li> <a href="http://fr.openoffice.org/Documentation/How-to/indexht-programmation.html" class="spip_out">http://fr.openoffice.org/Documentation/How-to/indexht-programmation.html</a>
<br /><li> <a href="http://fr.openoffice.org/Documentation/How-to/Basic/XrayTool50_fr.sxw" class="spip_out">http://fr.openoffice.org/Documentation/How-to/Basic/XrayTool50_fr.sxw</a>
<p class="spip">Pour installer xRay, il faut :
<br /></p>
<li> menu Outils > Macros > Gérer les macros > OpenOffice.org Basic
<br /><li> cliquer le bouton “ Gérer... ”
<br /><li> cliquer sur l’onglet Bibliothèques
<br /><li> choisir dans la liste déroulante Emplacement : Mes macros et boîtes de dialogue
<br /><li> cliquer sur le bouton “ Ajouter... ”
<br /><li> choisir le fichier « XrayTool50_fr.sxw » téléchargé précédemment
<br /><li> <strong class="spip">ATTENTION</strong> : Décochez la coche Standard
<br /><li> cliquer OK
<h2>Tester xRay</h2>
<p class="spip">Pour tester xRay, il faut utiliser dans un programme la commande « <strong class="spip"> xray </strong> » suivi de l’objet à analyser.</p>

<p class="spip">Cette ligne analyse l’objet « <strong class="spip"> thisComponent </strong> » et on pourra retrouver la propriété « <strong class="spip"> sheets </strong> »</p>

<p class="spip"><code class='spip_code' dir='ltr'>xray thisComponent  </code></p>

<p class="spip">Cette ligne analyse l’objet « <strong class="spip"> Sheets </strong> » et on pourra retrouver la méthode « <strong class="spip"> getByName </strong> »</p>

<p class="spip"><code class='spip_code' dir='ltr'>xray thisComponent.Sheets</code></p>

<p class="spip">Cette ligne analyse l’objet « <strong class="spip"> getByName("Feuille1") </strong> » et on pourra retrouver la méthode « <strong class="spip"> getCellRangeByName </strong> »</p>

<p class="spip"><code class='spip_code' dir='ltr'>xray thisComponent.Sheets.getByName("Feuille1")</code></p>

<p class="spip">Cette ligne analyse l’objet « <strong class="spip"> getCellRangeByName("A1") </strong> » et on pourra retrouver la propriété « <strong class="spip"> string </strong> »</p>

<p class="spip"><code class='spip_code' dir='ltr'>xray thisComponent.Sheets.getByName("Feuille1").getCellRangeByName("A1")</code></p>

<h2>Configurer  xRay pour accéder directement à la documentation d’une propriété ou d’une méthode</h2>
<p class="spip">Quand xRay est exécuté, il faut cliquer sur le bouton « <strong class="spip"> Configurer </strong> » et indiquer le chemin du SDK
<br /></p>
<li> /opt/openoffice.org2.0_sdk
<p class="spip">Ensuite, il faut lui indiquer le chemin du navigateur à exécuter. Dans mon cas, je mets simplement « <strong class="spip"> firefox </strong> » sans chemin.</p>

<p class="spip">Une fois la configuration validée par « OK », il suffit de placer le curseur sur une méthode ou une propriété et de cliquer sur « Documentation du SDK » pour afficher la documentation dans le navigateur indiqué.</p>

<h2>Autres sources d’informations</h2>
<br /><li> Le site francophone de OOo : <a href="http://fr.openoffice.org/Documentation/Index.html" class="spip_out">http://fr.openoffice.org/Documentation/Index.html</a>
<br /><li> La liste de diffusion Francophone « prog-fr » : <a href="http://fr.openoffice.org/contact-forums.html" class="spip_out">http://fr.openoffice.org/contact-forums.html</a>
<p class="spip">Un livre incontournable :
<br /></p>
<li> <a href="http://www.eyrolles.com/Informatique/Livre/9782212117639/livre-programmation-openoffice-org-2.php" class="spip_out">http://www.eyrolles.com/Informatique/Livre/9782212117639/livre-programmation-openoffice-org-2.php</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>27/09/06</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td> </td><td> </td><td> </td></tr>
</tbody>
</table>