Home
        Comprendre l`API d`OpenOffice.org
         Contents
1.   CharFontFamily  CharFontFamily  sian  CharFontFamilyComplex  CharFontName  CharFontNamesian  CharFontNameComplex       ScTableSheet0bj  False    Xray Rev 4 0       Afficher   C Propri  t  s    Propri  C M  thodes      C Services       C Interfaces support  es         s A Z      Objet d origine   ScTableSheetObj    Documentation du SDK    Xray sur la propri  t   m  thode   Configuration            Objet affich        Vous pouvez s  lectionner et copier les lignes affich  es   lt     gt        Objet d origine x     icreateSubTotalDescriptor  decrementIndent    firePropertiesChangeEvent  igetannotations  get  rrayFormula  igetCellByPosition  igetCellFormatRanges  igetCellRangeByName  igetCellRangeByPosition  igetCharts  igetColummDescriptions  igetColummnPageBreaks    leat Ca timne       bEmpty as boolean        aDescriptor as   struct  nFillDirection as integer  nSourceCount as cee      AS object    nFillDirection as integer  nFillMode as integer  xDescriptor as object  xDesc as object   AS object  xDesc as object   AS object  x tart  t as object  xDesc as object   AS object  aPropertyNames as   string  xListener as object    AS object    AS string  nColumn as long  nRow as long   AS object    AS object  aRange as string   AS object  nLeft as long  nTop as long  nRight as long  nBt    AS object    AS   string    AS   struct       AG nahianr    710 Outils et ressources                 ANNEXES  Figure C 7  Xray  version Python AA Deer oo ne      Propri  t  s    Laurent Godard  
2.   Notez que ThisComponent n est pas une variable  mais un appel de fonction   s   il y a plu   sieurs documents OpenOffice org ouverts  elle renvoie le document OpenOffice org dont  la fen  tre est actuellement en avant plan  C   est pourquoi il est pr  f  rable de ne l appeler  qu au d  but de la macro et de sauver le r  sultat dans une variable interne     Outils et ressources       ANNEXES    CreateUnoStruct    Sert    obtenir une structure UNO  par exemple      Dim uneProp As Object  uneProp   CreateUnoStruct  com sun star beans Property      Il est plus simple de d  finir directement la variable        Dim uneProp As New com sun star beans Property    CreateUnoValue    Sert    cr  er une donn  e quelconque pour la transmettre    PAPI  Cette m  thode est  pr  vue pour des probl  mes tr  s particuliers de conversion Basic UNO     CreateUnoService    Permet d   obtenir un objet capable de fournir le service donn   en argument      Dim demandePasse As Object  demandePasse   CreateUnoService  _   com sun star task InteractionHandler      Cette fonction est un raccourci pour      Dim outilService As Object  demandePasse As Object   outilService   GetProcessServiceManager   demandePasse   outilService createInstance  _   com sun star task InteractionHandler      CreateUnoListener    Permet    un programme de s enregistrer comme auditeur d   un ensemble d     v  nements   Voir le principe au chapitre 19 et un exemple au chapitre 17     CreateUnoDialog    En fait  cette fonction 
3.   rentes langues  La figure C 1 montre un sous menu cr     pour acc  der     Vadd on        Figure C 1  Sous menu  pour un add on       21122 23 24 25 26 27 2             La figure C 2 montre deux boutons ajout  s sur la barre d   outils de la version 1 1 d   Open   Office org  Dans la version 2 0  chaque add on est accessible dans une barre d   outil sup   pl  mentaire qui peut   tre juxtapos  e aux autres                       Figure C 2  Nouveaux boutons  pour un add on ARE FA    me  Han  De  6 17 18 19 20 2  22 23 24 25 26 27 26       Ceci est expliqu   dans le document    HowTo   Comment diffuser vos macros avec un    Add on     Le document est lui m  me un outil  r  alis   par macros  qui sert    cr  er ladd on  sous forme d   un fichier ZIP      gt  http   fropenoffice org Documentation How to indexht html  section programmation Basic  document n  4     Avec la version 1 1 d   OpenOffice org  le fichier add on doit   tre install   en ex  cutant le  programme pkgchk    partir de la ligne de commande  La m  thode    suivre est indiqu  e  dans le document  mais certains utilisateurs ont quelques difficult  s    le faire correctement   aussi d   autres d  veloppeurs ont ils cherch   une m  thode plus simple pour diffuser un  add on  Parmi ceux ci  Didier Lachi  ze a r  alis   le    HowTo   Installeur de macros      D autres travaux sont en cours      gt  http   fropenoffice org Documentation How to indexht html  section programmation Basic  document n  6     Avec la versio
4.  As String  nomStyle As String  As String  Dim uneFamille As Variant  Dim desStyles As Object  unStyle As Object    on Error Goto pbStyle   desStyles   leDoc StyleFamilies getByName fam   unStyle   desStyles getByName nomStyle   getLocaleStyleName   unStyle DisplayName   On Error Goto 0   exit function    pbStyle   On Error Goto 0  getLocaleStyleName           End Function    Nous avons utilis   un traitement d   erreur pour renvoyer des points d interrogation sur les  cas d     chec  notamment si le nom de famille de styles ou le nom de style est inconnu     u un ex utine utili ion  Vou u   Le document comporte un exemple de routine utilisant la fonction  Vous remarquerez  que si vous entrez un nom localis    la fonction renvoie ce m  me nom  gr  ce    la souplesse  de getByName        Routines utilitaires   699    ANNEXE B  Rappel des routines d  j   d  crites dans les chapitres    Dialogue    La fonction Dialogue cr  e un objet dialogue connaissant le nom de la bo  te de dialogue et  sa biblioth  que  Le sous programme CenterDialog centre un nouveau dialogue par  rapport    un dialogue p  re  Voir le chapitre 16 pour ces deux routines     Tableur et base de donn  es    Les fonctions suivantes se trouvent dans le fichier CalcSQL sxc qui se trouve dans le  r  pertoire regroupant les exemples du chapitre 17    La fonction CALCSQL1 sert    effectuer dans une cellule Calc une requ  te SQL sur une base  de donn  es  Elle renvoie un tableau de r  sultats     La fonction CALCSQL2 
5.  C M  thodes Documentation du SDK   Igodard indesko com   Faas    Vous pouvez s  lectionner et copier le d  tail affich      Objet affich    Origine o       D  tail de la s  lection       e Interfaces support  es Xray sur la s  lection    C Listeners support  s                         Annotations    ArrayFormula  AsianVerticalMode  AutomaticPrintArea  BorderColor  BottomBorder  CellBackColor  CellFormatRanges             CellProtection  com sun star util CellProtection                 Valeur    IsLocked    booleanjtrue  IsFormulaHidden    boolean false  IsHidden    boolean false  IsPrintHidden    boolean false                CellStyle  CharColor  CharContoured  CharCrossedOut  CharEmphasis   CharFont  CharFontCharSet  CharFontCharSetAsian  CharFontCharSetComplex  CharFontFamily  CharFontFamilyAsian                Certaines propri  t  s d   objet sont list  es mais non disponibles dans le contexte  d   autres ren   voient un objet qui n   est autre que l   objet lui m  me     Lorsque vous demandez la documentation sur un   l  ment d   un objet  la recherche peut    chouer   la documentation manque  ou l   l  ment est un    fossile    des temps r  volus  ou  l   objet n est pas officiellement utilisable     Les biblioth  ques de DannyB    DannyB est la signature de Danny Brewer  Il propose  sur la page Developers du site  OOoMacros  des exemples et des routines r  utilisables  dont        Danny Brewers Examples  bas   sur les r  ponses donn  es dans OOoForum       Dannys Draw P
6.  RightL et AscL  Elles  utilisent les m  mes arguments que les fonctions d   origine     Remplacer un motif partout dans une cha  ne de  caract  res    La fonction RemplaceChaine  disponible sur la page Internet http   fr openoffice org index html a  pour but de remplacer une s  quence de caract  res par une autre  chaque fois qu   elle appa   ra  t dans une cha  ne de caract  res  Un exemple trivial consiste    remplacer les caract  res  de s  paration dans un chemin de fichier  Les arguments de la macro sont  dans l   ordre     e la cha  ne initiale    e la s  quence    rechercher  cha  ne de caract  res     e la s  quence qui doit la remplacer  cha  ne de caract  res       un indicateur mis    True pour que la recherche distingue la casse     La fonction renvoie une cha  ne de caract  res modifi  e     Cette macro est cod  e afin de fonctionner aussi sur des cha  nes de plus de  32 767 caract  res     Trier un tableau de donn  es    La fonction TriShe11  disponible sur la page Internet http   fr openoffice org index html effectue  le tri d   un tableau  Array  de Variant  Elle est facilement modifiable pour trier une struc   ture quelconque     Le c  ur de la macro est la comparaison des   l  ments et leur   change  Adaptez le    vos  besoins  par exemple une comparaison de String tenant compte de la casse     Ainsi que le pr  cise le texte du document contenant la macro  des th  oriciens ont   tudi    avant nous comment optimiser un tri  alors c   est l   occasion de ne p
7.  This property defines the rendering of joints between thick lines       LOPTIONAT 1 El       Conclusion    Une compr  hension de l API elle m  me hors du contexte des macros et une connaissance  des sources d   information disponibles nous semblent n  cessaires pour parvenir    en tirer  parti     Lannexe suivante offre un panorama de routines utilitaires  qui compl  te utilement les  techniques vues au chapitre 19     689    Routines utilitaires    Les sous programmes pr  sent  s dans cette annexe seront souvent utilis  s dans vos projets  de macros  Certains sont soumis    la licence LGPL  d  crite sur le site http   www gnu org   copyleft lesser html        LICENCE LGPL    Une traduction non officielle de la licence LGPL est disponible sur le site http   www linux france org article   these licence lgpl Igpl_monoblock html  Cette licence stipule que vous pouvez utiliser ces routines dans vos  programmes et les am  liorer     condition de maintenir les indications de licence et d auteur initial              La premi  re partie des routines d  crites ici ont d  j     t   utilis  es dans divers chapitres de  ce livre  Elles peuvent servir de base    des constructions plus   labor  es  notamment sur le  plan du traitement d   erreurs     Tableaux de propri  t  s    Certains objets de PAPI se pr  sentent sous la forme d   un tableau de propri  t  s dont la  liste est pr  d  finie  C   est le cas des descripteurs de tri pour Calc et Writer          692   Outils et ressources  A
8.  Width   Taille Width   2  dessin setSize Taille     Lutilisateur OOoBasic ne voit qu   une propri  t   Size  En r  alit    cette propri  t   n existe  pas  mais elle est un raccourci vers deux m  thodes     e setSize valeur  qui modifie la taille  en anglais size  de l   objet     e getSize   qui renvoie la taille de l   objet     Pour retrouver dans l API la description d   une propri  t   d   objet  il est donc n  cessaire  d ajouter get ou set sl s   agit d   une pseudo propri  t    Certaines donn  es internes Xyz  peuvent   tre manipul  es seulement par getXyz  ou seulement par setXyz  Dans ces cas  la  pseudo propri  t   est restreinte    la seule lecture ou   criture     On acc  de aux vraies propri  t  s des objets de PAPI de mani  re plus simple en OOoBasic  que dans d   autres langages comme Java  Exemple        codage autoris   par OOoBasic  couleur   UneCellule Cel1BackColor  UneCellule Cel11BackColor   RGB 255 255 204       deuxi  me mani  re  plus complexe  et aussi valide en O0oBasic    ici la casse de CellBackColor doit   tre respect  e   couleur   UneCellule getPropertyValue  Cel1BackColor     UneCel lule setPropertyValue  Cel1BackColor   RGB 255 255 204      Un objet dans une collection est accessible en OOoBasic par une indexation  comme si la  collection   tait un tableau  En r  alit    OO oBasic fait appel    la fonction getByIndex de la  collection        codage autoris   par OOoBasic  uneFeuille   monDocument Sheets 1       deuxi  me mani  re  plus comp
9.  ce         une   unit      Delphi contenant des fonctions simplifi  es d   acc  s    PAPI       une    unit      listant toutes les constantes API et un programme pour la mettre    jour       partir d   un SDK   e une   unit      apportant les fonctionnalit  s de Xray   e des exemples de programmation     e un mode d emploi avec des conseils pour convertir une macro Basic en   quivalent    Delphi        RESSOURCE    Le fil de discussion    Using COM for OOo with different languages    donne des exemples en Visual Basic   C  C    C   Python  Perl  Ruby  TCL et Delphi                 Comprendre l API d OpenOffice org   687    ANNEXE A    La documentation de l   API  Software Development Kit     L ensemble de la documentation est appel   SDK  Software Development Kit   con  u     l   origine pour un environnement de d  veloppement en Java ou en C    Il se compose de  diverses parties  d   o   sa taille respectable      e le    Developers Guide     qui est un hypertexte expliquant la conception de PAPI  OpenOffice org       une version PDF imprimable du    Developers Guide     plus de 1000 pages pour ceux  qui veulent d  truire les for  ts  ou pour imprimer quelques pages d   un chapitre      e la r  f  rence IDL  Interface Definition Language  qui est un gigantesque hypertexte  documentant  presque  tous les objets  au sens le plus g  n  ral  de PAPI      e les fichiers   id1 ayant servi    constituer la r  f  rence   ce sont des fichiers texte o   on  peut lire les valeurs des
10.  ci dessus donne cette erreur  car elle n existe pas en Basic  mais elle existe  dans d   autres langages   L     quivalent Basic est        wait  1000     Erreur   runtime exception    Traduction   anomalie    l   ex  cution  Sur un appel de fonction API  vous d  clenchez un  message d erreur contenant      Type  com sun star uno RuntimeException  MesSage   XXXXXX        Comprendre l API d OpenOffice org   683    ANNEXE A    Parfois la section Type indique un nom d   exception plus sp  cifique  Bien souvent la sec   tion Message ne contient rien  C   est la fonction API qui vous renvoie un diagnostic suite     ses propres contr  les  V  rifiez chacun des arguments et relisez la documentation de    PAPI     La raison est parfois plus subtile      Dim MonDocument As Object  MonTexte As Object  Dim MonCurseur As Object  MonCadre As Object    MonDocument   ThisComponent   MonTexte   MonDocument Text   MonCurseur  MonTexte createTextCursor   MonCadre   MonDocument createInstance  com sun star text TextFrame    MonCadre Width   10400   104 mm largeur   MonCadre Height   2530   25 3 mm de haut   MonCadre String    hello     Ci dessus  il s   agit d   une erreur de m  thodologie   API ne permet pas d   initialiser la pro   pri  t   String du cadre avant de l   avoir ins  r   dans le texte     Erreur   cannot coerce argument type during corereflection call      Ce message en anglais est issu de l API  Il nest compr  hensible que par un informaticien  connaissant les m  canismes inter
11.  connexion OLE et la syntaxe propre au langage  le c  ur  des instructions peut   tre remarquablement similaire    ce qui a   t   expos    Voici l     quiva   lent en langage Delphi    du codage exemple cit   plus haut en Java et OOoBasic      const  _awtFontWeightBOLD   150 000000    var  mxDocText  mxDocCursor   Variant       extrait du codage  mxDocCursor   mxDocText createTextCursor   mxDocCursor gotoNextSentence false     mxDocCursor gotoNextWord false     mxDocCursor gotoNextWord true     mxDocText insertString mxDocCursor     hello  mxDocCursor CharWeight   _awtFontWeightBOLD       true      Comme nous n avons pas un acc  s direct aux constantes nomm  es  nous devons d  finir  celles dont nous avons besoin  Les valeurs de ces constantes sont lisibles dans les fichiers  de l   arborescence  id1 du SDK  Les constantes nomm  es    enum    sont implicitement  num  rot  es    partir de z  ro     En Delphi  les noms des propri  t  s employ  s comme ci dessus ne sont pas sensibles    la  casse  Il en est de m  me pour les noms de m  thodes  Les pseudo propri  t  s sont aussi  utilisables  Les tableaux r  els  comme ElementNames fournis par certains objets  peuvent    tre index  s normalement  En revanche  les pseudo indexations de collections permises  par OOoBasic doivent   tre remplac  es par l   usage de la m  thode getByIndexO de l   objet  collection     La bo  te    outils Delphi_OOo disponible en fran  ais sur le site frOpenOffice org facilite la  programmation OOo gr 
12.  constantes nomm  es        une r  f  rence pour le d  veloppement en Java       une r  f  rence pour le d  veloppement en C       e des exemples  repris dans le    Developers Guide        e la sp  cification des formats XML utilis  s     e divers outils de d  veloppement        Le SDK est disponible pour consultation en ligne     la page http   api openoffice org  o   vous trouverez aussi  la derni  re version a t  l  charger    Il existe une version du SDK pour OOo 1 1 0 et une autre pour OOo 2 0  Dans cette derni  re  vous trouverez  aussi des informations concernant les versions 1 1 2 et suivantes  qui ne sont pas int  gr  es au SDK 1 1 0       Dans sa version hypertexte  le    Developer   s Guide    contient de nombreux liens vers la  r  f  rence IDL  et r  ciproquement  ce qui rend une lecture interactive souvent pr  f  rable    une  lecture imprim  e  D ailleurs  la r  f  rence IDL est disponible seulement en version HTML     La principale difficult   lorsqu on   tudie cette documentation est qu   elle est con  ue pour un  d  veloppeur Java ou C   charg   de faire   voluer OpenOffice org ou d   en r  aliser une  variante  Ce point de vue est intimement m  lang   avec les descriptions des fonctionnalit  s  disponibles  ce qui en rend la lecture assez difficile  D   autre part  et principalement dans le     Developers Guide     les exemples sont donn  s en langage Java  notablement plus lourd  que OOoBasic     La r  f  rence IDL est r  dig  e par les programmeurs eux m  
13.  nom d   objet  La  fonction getIndexByName recherche dans la collection l   objet dont le nom est pass   en  argument  En cas de succ  s  elle renvoie l   index correspondant   en cas d     chec  elle  affiche une erreur et renvoie un index hors limites     rem CodeAnnexeB 01 sxw bibli   Collections Modulel  Option Explicit    renvoie l index de l   l  ment ayant le nom donn   en argument  Function getIndexByName collection As Object  _  leNom As String  As Long  Const Titre    Collection   Dim x As Long  for x   0 to collection Count  1  if collection x  Name   leNom then  getIndexByName   x   renvoyer l index correspondant au nom  Exit Function    end if  next  MsgBox  Nom inconnu      amp  leNom  16  Titre   getIndexByName    100   valeur d index hors limites    End Function    Coordonn  es de cellules    L API fournit des fonctions pour convertir en adresse num  rique une    adresse utilisateur     de cellule ou de zone de cellules  Les fonctions de cette biblioth  que r  alisent l inverse  sur  toute l   tendue des adresses possibles  La version 2 d   OpenOffice org devrait repousser les  limites de Calc au del   de 32 000 lignes  Ces macros peuvent facilement   tre adapt  es   mais plusieurs fonctions Basic pourront aussi   tre modifi  es par cette   volution     La fonction adrZoneString renvoie la cha  ne de caract  res correspondant aux coordon   n  es de la zone de cellules pass  e en argument  La fonction adresseString effectue le  m  me travail pour une adresse d
14.  origine           Nom interne de l objet   ScTableSheetO0bj  sianVerticalMode boolean False  struct  long  struct  string  long  CharContoured boolean  CharCrossedout boolean  CharEmphasis integer  CharFont integer  CharFontChar et integer  CharFontChar et  sian integer  CharFontChar etComplex integer  CharFontFamily integer  CharFontFamily  sian integer  CharFontFamilyComplex integer  CharFontName string  CharFontNameAsian string  CharFontNameComplex string    o    VVVOOumHHH EN       En positionnant le curseur sur la ligne d   un   l  ment  un simple clic sur le bouton Docu   mentation permet de visualiser sur votre navigateur Internet la documentation API con   cernant l   objet s  lectionn    voir figure C 5   Pour utiliser cette fonction  il faut toutefois  avoir install   la documentation SDK sur l ordinateur     La figure C 6 montre les m  thodes offertes par l   objet en analyse  On peut approfondir  l analyse sur une des m  thodes    condition qu   elle ne comporte aucun argument ou  encore acc  der    sa documentation     Xray liste les services propos  s par l   objet et ceux disponibles par invocation  ou liste les  interfaces prises en charge  La encore  la documentation d   un service ou d   une interface  est directement accessible     Une version   quivalente de Xray pour le langage Python est disponible  Naturellement  appell  e pyXray  voir figure C 7   elle a   t   r  alis  e par Laurent Godard et est disponible  sur le site http   www indesko com   Cet ou
15.  passez    autre  chose  revenez y et relisez encore     Respectez la casse des caract  res  majuscule minuscule  pour les arguments en cha  ne de  caract  res  ainsi que pour les constantes API  Ce codage est un exemple typique      DescrTri 0  Name    SortFields    Attention    la casse    DescrTri 0  Value   ConfigTriQ  DescrTri 1  Name    Orientation    Attention    la casse        Constante API sur la ligne suivante  attention    la casse    DescrTri 1  Value   com sun star table TableOrientation ROWS   DescrTri 2  Name    ContainsHeader    Attention a la casse     DescrTri 2  Value   true    Erreur   variable ind  finie  Le message signifie plut  t   variable non d  finie  Il appara  t si vous avez utilis   option de  d  claration obligatoire des variables        Option Explicit    Quelque part sur la ligne en erreur  une variable n   a pas   t   d  clar  e pr  alablement  Sou   vent  il s   agit d   une simple faute de frappe  Relisez encore une fois    Et b  nissez l   Option  Explicit     Erreur   variable objet non param  tr  e    Premier cas  Vous utilisez une propri  t   ou une m  thode d   une variable objet  mais cette variable est  un objet vide  Nu11   Exemple      Dim tata as object  toto as object  tata   toto truc       Comprendre l API d OpenOffice org   681    ANNEXE A    L erreur est que la variable toto rest pas un v  ritable objet  puisque nous avons oubli   de  lui affecter un objet API  Basic ne peut pas trouver un truc dans cet objet      Contre exe
16. 06 sxw bibli   PressePapier Modulel  Option Explicit    Sub CopierDansPressePapier     dim fenetreDoc as object  dsp as object   fenetreDoc   StarDesktop CurrentFrame   dsp   createUnoService  com sun star frame DispatchHel per    dsp executeDispatch fenetreDoc    uno Copy       0  ArrayO   End Sub    Sub CollerDepuisPressePapier     dim fenetreDoc as object  dsp as object   fenetreDoc   StarDesktop CurrentFrame   dsp   createUnoService  com sun star frame DispatchHelper    dsp executeDispatch fenetreDoc    uno Paste       0  Array     End Sub       Routines utilitaires EUR  ANNEXE B    Les deux macros doivent   tre lanc  es sans utiliser le bouton de PEDI  En premier plan  doit s afficher une fen  tre g  r  e par OpenOffice org  en g  n  ral celle d   un document  ouvert  Notez que m  me la fen  tre de PEDI conviendra      La premi  re macro copie dans le presse papiers la zone s  lectionn  e par l utilisateur  ou  s  lectionn  e par macro puis rendue visible pour l utilisateur  comme expliqu   dans la  partie Writer   Pour cela  elle r  cup  re la fen  tre courante affich  e par OpenOffice org   alors que le codage de l   enregistreur de macros r  cup  re la fen  tre courante du docu   ment   L utilisation du service DispatchHelper est reprise du code de l   enregistreur de  macros  le nom de la variable ayant   t   chang   pour raison de mise en pages     La deuxi  me macro copie le presse papiers dans la fen  tre OpenOffice org en premier   plan  en   crasant   ventuellem
17. Comprendre l API  d   OpenOffice org       Cette annexe offre une introduction    la principale source d   information officielle sur les  m  canismes internes    OpenOffice org  Tous ces documents  en anglais  sont accessibles     un utilisateur confirm       Qu est ce que l   API      L API  Application Programming Interface  d OpenOffice org est un ensemble de points  d entr  e permettant de manipuler OpenOffice org     quoique ne couvrant cependant tous  ses m  canismes  Sans   tre li  e    un langage de programmation particulier  elle est acces   sible de mani  re privil  gi  e avec OOoBasic  mais on peut aussi utiliser des langages tels  que Java  Python  Delphi  voire d   autres outils de script tel VBscript     L API est un syst  me logiciel tr  s complexe par son   tendue et par ses concepts   elle est  compos  e de tr  s nombreux objets h  ritant les uns des autres  Le d  veloppeur la verra  comme un ensemble de m  thodes  de fonctions  de propri  t  s  de structures de donn  es   Elle est organis  e en un arbre dont la racine est        com sun star     Outils et ressources       ANNEXES       partir de cette racine  elle se subdivise en modules  qui sont des groupements de logi   ciels  par exemple        com sun star text     Tout   l  ment de l API se situe    un n  ud de cet arbre  en juxtaposant les branches  successives        com sun star text WrapTextMode  PARALLEL    Un module se d  compose en un service ou plusieurs  et parfois en sous modules  comme  pou
18. La position d   une page dans cet arbre est rappel  e en haut a  gauche des pages  par exemple   com  sun  star    et l   organisation des r  pertoires  contenant les pages HTML refl  te exactement cette hi  rarchie  Lorsque nous indiquons  une r  f  rence de documentation comme com sun star drawing LineProperties  vous  afficherez la page correspondante en suivant  depuis la premi  re page de PIDL  le lien  intitul   drawing  puis dans la page obtenue le lien intitul   LineProperties  comme on  peut le voir sur la figure A 1     L autre moyen d   acc  s    l   IDL     partir de n importe laquelle de ses pages  est d utiliser le  lien Index  sur la premi  re ligne du haut de la page  Il vous affiche la page A d   un diction   naire  Si vous cherchez la documentation sur LineProperties  affichez la page L et  recherchez ce mot dans celle ci  en d  but de ligne  Vous rep  rerez la ligne      LineProperties   service   com  sun  star  drawing    LineProperties    Ici  il s   agit d   un service dont la page de description est accessible par lien hypertexte   Dans bien des cas  vous obtiendrez plusieurs lignes avec le m  me nom  car plusieurs types  d objets ayant une propri  t   ou une m  thode similaire ont normalement le m  me nom   Ce sera    vous de d  terminer lequel correspond    votre contexte  gr  ce aux autres infor   mations de la ligne     Un dernier moyen  tr  s rapide  d   acc  der directement    la bonne page de PIDL consiste     utiliser l   outil XRay  dont nous 
19. NNEXES    La routine printProps affiche les noms de ces propri  t  s et leur rang dans le tableau  La  fonction getPropVal renvoie la valeur de la propri  t   dont le nom est en argument  La  routine setPropVal affecte une valeur    une propri  t       rem CodeAnnexeB 01 sxw bibli   Proprietes Modulel  Option Explicit      affiche les noms de propri  t  s du tableau descr  Sub printProps descr As Variant   Const Titre    Tableau de propri  t  s   Dim x As Long  liste As String  for x   0 to UBound descr   liste   liste  amp   Index   amp x    _   amp  descr x  Name  amp  chr 13     next  MsgBox liste  0  Titre   End Sub    affecte la valeur valProp a la propri  t   nomProp  Sub setPropVal descr As Variant  _  nomProp As String  valProp As Variant   Const Titre    Tableau de propri  t  s   Dim x As Long  for x   0 to UBound descr   if descr x  Name   nomProp then  descr x  Value   valProp  Exit Sub  end if  next  MsgBox  Propri  t   inconnue      amp  nomProp  16  Titre   End Sub    renvoie la valeur de la propri  t   nomProp  Function getPropVal  descr As Variant  nomProp As String _  As Variant  Const Titre    Tableau de propri  t  s   Dim x As Long  for x   0 to UBound descr   if descr x  Name   nomProp then  getPropVal   descr x  Value  Exit Function  end if  next  MsgBox  Propri  t   inconnue      amp  nomProp  16  Titre   End Function       Routines utilitaires   693     ANNEXE B    Collections    Certaines collections d   objets ne permettent pas un acc  s direct par le
20. age  il est plus difficile      crire et    relire  En contrepartie  les exemples du Developers  Guide   tant   crits pour la plupart en Java sont facilement transposables     Avec ces langages  la casse doit   tre respect  e tant pour les noms de m  thodes et de pro   pri  t  s que pour tous les noms symboliques du programme  Les pseudo propri  t  s de  Basic n existent pas  vous devez utiliser les m  thodes de l   objet  Les pseudo indexations  de collections permises par OOoBasic doivent   tre remplac  es par l   usage de la m  thode  getByIndex   de l objet collection  Pour des interactions simples avec l utilisateur  vous  devrez d  velopper des   quivalents de MsgBox et InputBox     Python    Dans Python  la casse doit   tre respect  e tant pour les noms de m  thodes et de propri  t  s  que pour tous les noms symboliques du programme  Les pseudo indexations de collec   tions permises par OOoBasic doivent   tre remplac  es par l   usage de la m  thode  getByIndex   de l objet collection  Pour des interactions simples avec l utilisateur  vous  devrez d  velopper des   quivalents de MsgBox et InputBox     Dans l     tat actuel  pr   version 1 9 ou version 2 0 0   il est n  cessaire de cr  er et   diter les  scripts Python dans un   diteur externe produisant un codage source avec des fins de ligne  fa  on Unix  m  me sous MS Windows  Le fichier doit   tre mis dans un sous r  pertoire  user Scripts python  ou share Scripts python  Dans le premier cas  le sous r  per   toire 
21. as r  inventer la roue   en plus mal   La m  thode Shell est tr  s efficace sans n  cessiter un codage r  cursif  Elle  est probablement assez rapide pour vos besoins en Basic  et pas plus compliqu  e     employer qu un tri Bulle  m  thode   vidente mais tr  s lente        EUR Outils et ressources  ANNEXES    Obtenir des adresses URL de fichiers et r  pertoires    Le document CodeAnnexeB 05 sxw contient plusieurs fonctions facilitant l analyse  d adresses de chemins de fichiers  Elles sont   crites en anglais pour   tre comprises du plus  grand nombre     Toutes ces fonctions  voir le tableau B 2  utilisent des adresses au format URL  Toutes  les adresses de r  pertoires doivent se terminer par le caract  re       Tableau B 2 Fonctions d adresses URL    Fonction Argument R  sultat   getDirectory Chemin d un fichier Chemin du r  pertoire contenant le fichier  getParentDir Chemin d un r  pertoire Chemin du r  pertoire parent  getFullFileName Chemin d un fichier Nom et extension du fichier  exemple      monfichier sxw    getFileNameOnly Chemin d un fichier Nom du fichier sans l extension  exemple    monfichier    getFileExt Chemin d un fichier Extension du fichier  avec le point  exemple    sxw    Copier coller avec le presse papiers    C   est avec un peu de scrupules que nous pr  sentons ces deux macros  qui ont   t   r  alis  es  avec l   enregistreur de macros   c   est cependant une solution simple et efficace et nous en  avons am  lior   le code obtenu     rem CodeAnnexeB 
22. asic et l API ont leur  place sur la liste prog fr openoffice org  Il arrive que certains messages soient sign  s de l   un ou  l   autre des auteurs de ce livre      gt  http   fr openoffice org servlets ProjectMailingListList    Le site OOoConv  cr     par un des auteurs  pr  sente plusieurs outils dont l   analyse sera  instructive   OOoConv  FitOO  BatchConv      gt  http   oooconv free fr     En anglais    Le site http  www oooforum org  a une vitalit   semblable aux forums fran  ais d   Open   Office org  mais il n   est accessible qu   avec un navigateur Web  On y trouve en particulier      e le forum Macros and API  supervis   par Danny Brewer  o   vous trouverez de nombreu   ses informations dans les r  ponses d  ja faites     e le pseudo forum Code Snippets  d  j   cit    qui n   est pas un vrai forum de discussion mais  un r  pertoire d   exemples de codage     La page http  Awww openoffice org mail_list html vous donne acc  s    tous les forums Open   Office org de langue anglaise  Le forum dev api openoffice org est consacr   aux questions sur  PAPI elle m  me  pos  es par des programmeurs exp  riment  s  Les r  ponses sont souvent    Outils et ressources       ANNEXES    apport  es par les chefs d  veloppeurs d   OpenOffice org dans la mesure de leur disponibi   lit    Abstenez vous d   y poser des questions de d  butant     Pour les programmeurs aguerris  le site du projet UDK d OpenOffice org http  udk   openoffice org  est consacr   aux d  veloppements permet
23. avons d  j   parl       Comprendre l API d OpenOffice org       ANNEXE A  7   Service LineProperties   Opera   _  of x   Figure A 1 G Fichier Editer Afficher Navigation Signets Courier Fen  tre Aide  l  x     Une page de    dene  IT EEE TT es    Re y Recherche L QQ Actu France     ActuUS     World wire     Clubint Actus     Flashmail cl        Silicon  fr    Menu d outils    O Module star   O Module drawing  jc Service LineProperties  CR og Cr  a  91 1_SDK docs common ref com sun star drawing LineProperties  html x  Aller  amp                 cherche d          Overview Module Use Devguide Index    IncLuDeD SERVICES EXPORTED INTERFACES PROPERTIES Summary Properties    DETAILS       sun    star    drawing          service LineProperties    Description  This is a set of properties to describe the style for rendering a Line   The properties for line ends and line starts are only supported by shapes with open line ends     Developers Guide    9 3 2 Drawing Documents and Presentation Documents   Working with Drawing Documents    Shapes   Shape Operations   General Drawing Properties                                                Properties Summary     LineStyle   This property contains the type ofthe line      LineDach   The property contains the dash ofthe line      LineColor   This property contains the line color      LineTransparence   This property contains the extent of transparency      Line Width   This property contains the width of the line in 1 100th mm      LineJoint  
24. cit     retrouve un objet diagramme    partir du nom de l objet   Function FindChartByObjName laFeuille As Object  _  nomDiag As String  As Object   Dim dessin As Object  sv As String    sv    com sun star drawing OLE2Shape   dessin   FindObjectByName laFeuille Drawpage  nomDiag  sv   if not IsNull dessin  then  if dessin Model supportsService _   com sun star chart ChartDocument   then  FindChartByObjName   dessin Model  end if  end if  End Function    renvoie Null en cas d   chec    Routines utilitaires       ANNEXE B    Redimensionner une image    Le sous programme resizelmageByWidth redimensionne une image    une largeur  donn  e  en gardant ses proportions  Il obtient de l objet image l   objet  GraphicObjectFil1Bitmap  qui donne acc  s aux informations sur l   image elle m  me   Dans ce dernier objet  la structure Size nous donne la taille de l   image mesur  e en pixels   Une r  gle de trois nous permet d   en d  duire les dimensions en 1 100 de millim  tres     rem CodeAnnexeB 02 sxw bibli   Images Modulel  Option Explicit    Sub resizeImageByWidth uneImage As Object  largeur As Long   Dim leBitMap As Object  Proportion As Double  Dim Taillel As New com sun star awt Size    LeBitmap   uneImage GraphicObjectFil1Bitmap  Taillel   LeBitMap Size   taille en pixels    Proportion   Taillel Height   Taillel Width  Taillel Width   largeur   largeur en 1 100 de mm  Taillel Height   Taillel Width   Proportion  uneImage Size   Taillel   End Sub    Vous pourrez facilement r  alis
25. d  riv   d   OpenOffice org  Vous y trouverez une description succincte  mais couvrant  l   ensemble OOoBasic et API  avec quelques informations non d  crites ici et des con   seils pour un programmeur Visual Basic for Application     La page Macros du site fran  ais d   OpenOffice org met    disposition un grand nombre  d   exemples de macros s  lectionn  s pour leur valeur explicative      gt  http   fr openoffice org Documentation Macros indexmac html    Le document    El  ments de programmation des macros dans OOo    est une traduction  francaise d   un document anglais   crit par Andrew Pitonyak  Il contient un grand nombre  de    recettes    sur des aspects assez sp  cialis  s de la programmation OpenOffice org  La  traduction   tant assez en retard sur le document original  consultez plut  t la version  anglaise si vous maitrisez la langue de Mark Twain      gt  Fran  ais   http   fr openoffice org Documentation Guides Indexguide html  Anglais   http   www pitonyak org oo php    Outils et ressources       ANNEXES    Le site de langue anglaise OOoMacros contient de nombreuses macros  la plupart assez   voire tr  s   labor  es  On y trouve notamment des macros   crites par Danny Brewer  qui  sont des mod  les de bonne programmation  Vous y retrouverez aussi certaines macros  fran  aises publi  es en version anglaise      gt  http   ooomacros org     Le site de langue anglaise OOoForum consacre la section Code Snippets    des exemples de  codage  la plupart en OOoBasic  C
26. dCursor xWordCursor    XWordCursor   UnoRuntime queryInterface XWordCursor class  mxDocCursor    xWordCursor gotoNextWord false     xWordCursor gotoNextWord true     mxDocText insertString xWordCursor   hello    true    XPropertySet xCursorProps    XPropertySet   UnoRuntime queryInterface XPropertySet class  mxDocCursor     xCursorProps setPropertyValue  CharWeight    new Float com sun star awt FontWe  ight BOLD      Ce code Java n  cessite trois variables suppl  mentaires pour g  rer le curseur  une pour  chaque interface n  cessaire  Voici pour comparaison le code OOoBasic   quivalent  qui  utilise que la variable curseur      mxDocCursor   mxDocText createTextCursor  mxDocCursor gotoNextSentence false   mxDocCursor gotoNextWord false   mxDocCursor gotoNextWord true   mxDocText insertString mxDocCursor   hello    true   mxDocCursor CharWeight   com sun star awt FontWeight BOLD    Lorsqu il existe deux m  thodes compl  mentaires simples  l   une servant    affecter une  valeur    une donn  e interne  l   autre servant    obtenir la valeur de cette donn  e  OOoBasic    676    Outils et ressources       ANNEXES    combine les deux sous la forme d   une pseudo propri  t    utilisable comme une simple  variable  Voici deux codages OOoBasic qui r  alisent exactement la m  me chose      Dim Taille As Object    codage autoris   par OOoBasic  Taille   dessin Size  Taille Width   Taille Width   2  dessin Size   Taille    application stricte de l API  Taille   dessin getSize    Taille
27. e  target milestone   Ceci ne veut pas dire qu   elles seront intro   duites  car d   autres crit  res entrent en jeu  ressources  int  r  t marketing  complexit        Avant d   crire un rapport d   anomalie  v  rifiez tr  s soigneusement qu   il s   agit bien d   une  erreur de l   application OpenOffice org et non pas d   une erreur de compr  hension de votre  part  ou une mauvaise configuration de votre ordinateur  Simplifiez au maximum les con   ditions d   apparition de l   anomalie  Joignez si possible un document d  montrant l erreur   par exemple une macro r  duite au codage minimum n  cessaire  En effectuant ce travail   vous analyserez mieux l   anomalie et souvent vous verrez qu   elle provient d   une erreur de  votre part  Soyez le plus clair possible dans les explications  restez factuel  Pensez que les  d  veloppeurs ont    lire des dizaines de rapports  en plus de leur activit   habituelle     L   criture de rapports est r  serv  e aux membres d   OpenOffice org  Ce mest pas une  soci  t   secr  te  nimporte qui peut devenir membre  gratuitement et sans engagement   Allez    la page http  www openoffice org servlets Join et remplissez le formulaire  Vous avez  maintenant une identit   dans le syst  me et un mot de passe     Pour cr  er un rapport  vous devez d   abord vous connecter au syst  me  en allant a la page  http  Awww openoffice org servlets TLogin  Puis  commencez    la page http   www openoffice org issues   enter_bug cgi  Une fois choisi le domain
28. e cellule  Les autres fonctions sont utilis  es par les deux  pr  c  dentes     Notez que ces routines effectuent un contr  le de vraisemblance sur les coordonn  es four   nies  En cas d   anomalie  la cha  ne renvoy  e comportera des caract  res              Outils et ressources       ANNEXES    rem CodeAnnexeB 01 sxw bibli   Cellules Modulel  Option Explicit    convertit une adresse de zone de cellules en adresse textuelle  Function adrZoneString maDoc As Object  adrZone As Object  As String  Dim resu As String  resu   maDoc Sheets adrZone Sheet   Name  amp       amp  _  alphaXY adrZone StartColumn  adrZone StartRow   if  adrZone StartColumn  lt  gt  adrZone EndColumn  or _   adrZone StartRow  lt  gt  adrZone EndRow  then  resu   resu  amp       amp  alphaXY adrZone EndColumn  adrZone EndRow   end if  adrZoneString   resu  End Function    convertit une adresse de cellule en adresse textuelle  Function adresseString maDoc As Object  adrCellule As Object  As String  adresseString   maDoc Sheets adrCellule Sheet  Name  amp       amp  _  alphaXY adrCellule Column  adrCellule Row   End Function    convertit une coordonn  e XY en coordonn  e alphanum  rique  Function alphaXY X As Long  Y As Long  As String  if  Y gt  0  and  Y lt 32000  then  alphaXY   lettreColonne X   amp  CStr Y  1   else  alphaXY   lettreColonne X   amp        end if  End Function    1    convertit num  ro de colonne 0   255 en lettres A   IV  Function lettreColonne n As Long  As String  Select Case n  Case  
29. e principal  vous vous retrouvez devant un formu   laire dont il faut remplir au mieux les cases  Ce rest pas facile les premi  res fois  Le titre  du rapport et le texte explicatif doivent obligatoirement   tre en anglais  Envoyez le rap   port  Un num  ro sera attribu   automatiquement et vous recevrez un courrier   lectronique  pour chaque   volution de ce rapport  Utilisez la page Web renvoy  e pour ajouter   ven     tuellement un fichier  Plus tard  en r  affichant le rapport  vous pourrez ajouter de nou   velles informations     condition de vous   tre identifi    Soyez tr  s patient  un rapport peut  rester plusieurs mois sans r  ponse       Si votre anomalie est reconnue comme telle  la date pr  visionnelle de correction sera indi   qu  e dans le champ Target Milestone  Les ressources humaines   tant toujours limit  es  il est  encore possible que cette date soit repouss  e    plus tard lors d   une r   analyse des priorit  s     Partager la connaissance    Comme nous l   avons vu dans l   expos   pr  c  dent  la communaut   est tr  s active en ce qui  concerne l API et les macros  De nombreuses sources sont disponibles et il ne tient qu       nous  acteurs et utilisateurs  d enrichir notre connaissance commune     Vous venez d   crire une macro qui comble un manque d   OpenOffice org ou simplement  se r  v  le utile au jour le jour   il est fort probable que cette macro puisse servir    quelqu un  d autre  Comme nous apprenons tous de la lecture des macros publi  es 
30. e type Variant  Si vous aviez utilis   l   option  le message  d erreur aurait   t   plus clair     Outils et ressources       ANNEXES    Erreur   utilisation incorrecte d   un objet    Cela signifie que vous essayez d   affecter    une variable objet quelque chose qui n   est pas  un objet  par exemple une valeur num  rique  ou une cha  ne de caract  res comme ici l     l     ment Author      Dim tata as object  tata   ThisComponent  DocumentInfo Author    Erreur   propri  t   ou m  thode introuvable    Ce message est assez explicite  Vous cherchez    utiliser dans un objet  qui existe bien  une  propri  t   ou une m  thode que l   objet ne poss  de pas  Souvent  c   est une faute typogra   phique  parfois c   est une mauvaise connaissance de  API comme ici  pour un document    Writer      Dim tata as object  tata   thisComponent  DrawPages    La propri  t   est DrawPage  sans s         alors qu un document Draw poss  de effectivement une propri  t   DrawPages      Si l erreur provient de ce que vous cherchez    deviner une propri  t   d   un objet API  vous  perdez votre temps  Relisez plut  t ce livre  et utilisez la macro Xray     Erreur   la sous proc  dure ou proc  dure fonctionnelle n   est pas d  finie    Dans instruction en faute  Basic pense que vous essayez d   appeler une fonction ou pro   c  dure qu il ne conna  t pas  V  rifiez l orthographe de la proc  dure que vous voulez uti   liser  et v  rifiez qu elle existe bien  Exemple        sleep 1000     Linstruction
31. ent une zone s  lectionn  e  L utilisateur peut afficher une  autre application OpenOffice org  alors que le codage original ne le permettrait pas  La  seule diff  rence avec la premi  re macro r  side dans le deuxi  me argument de la m  thode  executeDispatch           NOTER L enregistreur de macros   Utiliser l enregistreur de macros est quelquefois frustrant  mais cela peut   tre un moyen simple de couvrir  une fonctionnalit   difficile ou impossible    impl  menter avec l API    La liste des commandes du dispatch est disponible sur internet aux adresses suivantes     e pour la version 1 1 d OpenOffice org      gt  http   framework openoffice org files documents 25 1042 commands_11beta html   e pour la version 2 0 d OpenOffice org      gt  http   framework openoffice org files documents 25 2570 commandsReference html    Les commandes de la forme  uno xxxxx sont dans la premi  re colonne des tableaux  L utilisation des cons   tantes num  riques  ID  de cette page est a proscrire  Elles sont a usage interne et peuvent changer a tout  moment              Conclusion    Les macros expos  es dans ce chapitre sont directement op  rationnelles  Elles illustrent la  notion de    r   utilisabilit      qui permet de gagner du temps et de l     nergie en p  rennisant  les d  veloppements  Il est inutile de r     crire plusieurs fois le m  me code pour effectuer la  m  me action  Usez et abusez de telles routines   elles constitueront progressivement une  bo  te    outils adapt  e    v
32. er sur ce mod  le un sous programme redimensionnant  selon une hauteur donn  e     Autre variation  le sous programme resizeImageByDPI redimensionne l   image en respec   tant une densit   de points  donn  e en DPI     rem CodeAnnexeB 02 sxw bibli   Images Module2  Option Explicit    Sub resizeImageByDPI uneImage As Object  DPI As Long   Dim leBitMap As Object  Proportion As Double   Dim Taillel As New com sun star awt Size   Const pouce   2540   longueur en 1 100 de mm    LeBitmap   uneImage GraphicObjectFil1Bitmap   Taillel   LeBitMap Size   taille en pixels    Proportion   pouce   DPI   Taillel Width   Taillel Width   Proportion   Taillel Height   Taillel Height   Proportion  uneImage Size   Taillel   End Sub    697    698    Outils et ressources       ANNEXES    Traduire un nom de style    Le nom d   un style obtenu par exemple avec la propri  t   ParaStyleName est le nom  interne  en anglais  Le nom affich   dans le styliste est dans la langue locale     La fonction getLocaleStyleName renvoie le nom localis   correspondant    un nom  interne  Elle emploie trois arguments      e l   objet document  qui contient les styles    e le nom de la famille de styles   e le nom anglais du style     Cette fonction ne donnera pas de bons r  sultats dans Impress pour les styles de la famille  Standard  voir le chapitre 13      rem CodeAnnexeB 03 sxw bibli   NomsStyles Modulel  Option Explicit      renvoie le nom localis   d un style  Function getLocaleStyleName leDoc As Object  _  fam
33. es codages ont   t   choisis pour leur int  r  t p  dago   gique et technique  Danny Brewer est un des mod  rateurs de OOoForum      gt  http   www oooforum org forum viewforum php f 11    Le projet API du site anglais OpenOffice org  n   est pas en reste et publie les Snippets que  lui fournissent les programmeurs API      gt  http   codesnippets services openoffice org     Le projet DBA d   OpenOffice org consacr   aux bases de donn  es  en anglais  offre un  fichier ZIP contenant quelques macros d   acc  s aux bases de donn  es  D  compressez  ce ZIP et utilisez Outils  gt  Macros  gt  Macro pour ins  rer une biblioth  que  qui aura pour nom  DBATools      gt  http   dba openoffice org downloads DBATools zip    Votre application OpenOffice org elle m  me est livr  e avec plusieurs biblioth  ques de  macros dans soffice  Ces codages sont malheureusement tr  s peu document  s et sou   vent anciens  On peut y glaner des s  quences int  ressantes  et m  me utiliser des macros  telles quelles  Voyez notamment les biblioth  ques ImportWizard  Gimmicks et Tools     D une mani  re plus g  n  rale  les solutions    base de macros cit  es dans le chapitre 1 du  pr  sent ouvrage peuvent aussi apporter des solutions    vos besoins     Sites Web et forums    Parmi les sources d   information  nous citerons des forums en langue fran  aise  anglaise ou  autres  Rappelons quelques principes communs    tous les forums    e Commencez par observer les   changes de messages avant de participe
34. gt  255  lettreColonne  Case  lt  0  lettreColonne         Case  lt  26  lettreColonne   _Lettre n   Case Else  lettreColonne   _Lettre  n   26   1   amp  _Lettre n Mod 26   End Select  End Function    moon      fonction interne   Function _Lettre p As Long  As String  _Lettre   chr Asc  A    p    End Function       Routines utilitaires   655    ANNEXE B    Rechercher un objet par son nom    La fonction findObjectByName est inspir  e des travaux de Danny Brewer  Cette fonction  recherche dans une page de dessin un objet dont le nom est donn   en argument  En cas       chec  la fonction renvoie la valeur Nu11     rem CodeAnnexeB 02 sxw bibli   Dessin Modulel  Option Explicit    retrouve un objet a partir de son nom  Function FindObjectByName unePage As Object  _  nomObj As String  Optional service As String  As Object  Dim objX As Object  x As Long  For x   0 To unePage Count   1  objX   unePage x   If objX Name   nomObj Then  if IsMissing service  then  FindObjectByName   objX   objet trouv    Exit Function  else  if objX supportsService service  then  FindObjectByName   objX   objet trouv    Exit Function  end if  end if  EndIf  Next  End Function    renvoie Null en cas d   chec    Le param  tre service est optionnel  Il permet de ne rechercher qu   un objet proposant le  service indiqu    En effet  une page de dessin peut contenir diff  rentes sortes d   objets  et  vous pourriez par exemple obtenir une image ayant le nom du dessin que vous cherchez   par programmation  on 
35. importe le r  sultat d   une requ  te SQL depuis une base de donn  es   Le r  sultat est obtenu dans un tableau de cellules d   une feuille du tableur     Rechercher la forme d   un contr  le de formulaire    La fonction FindCtr1ShapeByName recherche dans une page de dessin une forme correspon   dant    un contr  le de formulaire dont le nom est donn   en argument  Voir le chapitre 18     Cr  ation et d  compression d   un fichier ZIP  Plusieurs sous programmes de gestion de fichier ZIP sont d  crits dans le chapitre 19     Les routines suivantes n   ont pas   t   utilis  es dans les chapitres pr  c  dents  mais elles sont  d   une incontestable utilit       Conversion date heure vers heure  minute  seconde    Les fonctions Basic Hour  Minute  Second sont incorrectes sur les versions d   Open   Office org ant  rieures    1 1 4  et corrig  es    partir de celle ci et sur la version 2 0 0  Pour  les utilisateurs des versions posant probl  me  nous proposons le sous programme  Time_HMS qui r  alise une conversion correcte  Il a   t   test   sur les 86 400 valeurs possibles  de la partie heure     Le sous programme Time_HMS re  oit une valeur de date heure au format interne  et en  extraie les valeurs d   heure  minute  seconde    e Argument 1   date heure   e Argument 2   variable qui recevra la valeur d   heure  0    23        700 Outils et ressources  ANNEXES      Argument 3   variable qui recevra la valeur de minute  0    59   e Argument 4   variable qui recevra la valeur de 
36. lexe  et aussi valide en O0oBasic  uneFeuille   monDocument Sheets getByIndex 1        Comprendre l API d OpenOffice org 677  ANNEXE A    Il existe aussi un raccourci OOoBasic pour acc  der par son nom    un objet de collection   Nous ne l   avons pas employ   car il peut donner des expressions ambigu  s     codage recommand    uneFeuille   monDocument Sheets getByName  Total        deuxi  me mani  re  valide en OOoBasic  d  conseill  e  uneFeuille   monDocument Sheets Total       ALLER PLUS LOIN Liaison Basic   UNO    L interfa  age entre OOoBasic et UNO  le concept logiciel d OpenOffice org  est d  crit plus longuement dans  le    Developer s Guide     chapitre 3 4 3              Les fonctions Basic d  di  es a I    API    Tout au long de cet ouvrage  nous avons utilis   plusieurs fonctions OOoBasic qui facili   tent l   acc  s    PAPI  En voici une liste plus syst  matique     StarDesktop    Il s   agit d   un objet pr  d  fini qui est le service de base d   OpenOffice org  Il est un raccourci  pour      Dim mon00o As Object  mon000o   createUnoService  com sun star frame Desktop      ThisComponent    Repr  sente l   objet document en cours   il est en g  n  ral   quivalent         Dim monDocument As Object  monDocument   StarDesktop CurrentComponent    Cependant  si PEDI est en premier plan  CurrentComponent renverra PEDI et la macro    ne fonctionnera pas  alors que ThisComponent continue    renvoyer l   objet document   C   est pourquoi ThisComponent est pr  f  rable   
37. mes lors du d  veloppement  et  compil  e ensuite automatiquement  Lennui  c   est que les programmeurs sont rarement  int  ress  s par l     criture de la documentation  Aussi est elle parfois d  cevante par son aspect  r  p  titif et ses lacunes     688    Outils et ressources       ANNEXES    Comment s   y retrouver      Nous vous conseillons d installer le SDK sur votre ordinateur  pour un acc  s plus rapide   et d utiliser un navigateur Internet capable d afficher de multiples pages accessibles sous  forme d   onglets  par exemple Mozilla Firefox  http   frenchmozilla org       Dans une installation standard sous MS Windows  la page d   entr  e se trouve sur votre  disque a l   adresse C   OpenOffice orgl 1_SDK index htm1  En fait  cette page est assez  peu utilis  e  Vous commencerez plut  t par la page    Developers Guide    ou la page     IDL Reference     qui sont accessibles depuis la premi  re     La page d introduction au    Developers Guide    vous renvoie vers le sommaire  Table of  contents  de ce qui est en fait un v  ritable livre  Beaucoup de recherches g  n  rales parti   ront de ce sommaire  Comme certaines pages sont tr  s lentes 4 charger sur un navigateur     il peut   tre plus pratique d   afficher la version PDF du    Developer   s Guide        La premi  re page de la r  f  rence IDL liste les diff  rents modules qui composent le  module Star  l   ensemble de l   application  Tout est ensuite d  compos   en un arbre avec de  nombreuses ramifications  
38. mest concevable que dans un environnement OOoBasic   puisqu elle sert    cr  er une bo  te de dialogue  voir chapitre 15      GetProcessServiceManager    Renvoie un objet permettant d   obtenir un service initialis    soit par d  faut  soit avec des  arguments  Le premier cas est r  alis   plus simplement avec CreateUnoService  Le  deuxi  me cas est de la forme         Comprendre l API d OpenOffice org   679    ANNEXE A    Dim outilService As Object  unService As Object   Dim args 1    un ou plusieurs arguments   outilService   GetProtcessServiceManager       initialiser le tableau args   avant cette instruction     unService   outilService createlnstanceWithArguments  _   com sun star xxx yyy zzz   args       Il existe aussi une troisi  me forme d   initialisation      createlnstanceWithArgumentsAndContext    Ces deux derni  res formes ne sont utilis  es que dans des cas assez particuliers     IsUnoStruct    Renvoie True si la variable est une structure UNO  Exemple de structure UNO   le des   cripteur renvoy   par createReplaceDescriptor  voir chapitre 11   Cette fonction permet  de distinguer une structure d   un objet v  ritable  ou d   une donn  e simple     Les variables de structure UNO sont de vraies valeurs  et non des r  f  rences comme les  variables sur les objets  C   est la raison des recopies n  cessaires pour effectuer une modifi   cation  comme ici      dim rognure as object  rognure   monImage GraphicCrop  rognure Bottom    2000  monImage GraphicCrop   rognu
39. mple  ceci fonctionne sans erreur      Dim tata as object  toto as object  tata   toto    En effet  cela revient    affecter    tata une variable objet de valeur Nu11     En pratique  le cas arrive lorsqu une fonction API est mal utilis  e  mais qu   elle se con   tente de renvoyer un objet Nu11  sans erreur d   ex  cution      Dim MonDocument As Object  lesFeuilles As Object  Dim AdresseDoc As String  PropFich      AdresseDoc    private factory calc    MonDocument   StarDesktop LoadComponentFromURL  _  AdresseDoc  _blank  0  PropFich    lesFeuilles   MonDocument Sheets    La derni  re ligne d  clenche une erreur parce que MonDocument est Nu11  En effet  il y a  une erreur dans l appel de LoadComponentFromURL qui l emp  che de cr  er un nouveau  document Calc   on a affect   une valeur incorrecte    la variable AdresseDoc  Cherchez  l erreur      Deuxi  me cas    Vous appelez une fonction de API   un des arguments de cette fonction doit   tre un  objet API  mais vous transmettez un autre type  valeur num  rique  cha  ne de carac   t  res      comme ici sur la derni  re ligne      Dim MonDocument As Object  MonTexte As Object  Dim MonCurseur As Object    MonDocument   ThisComponent  MonTexte   MonDocument Text  MonCurseur  MonTexte createTextCursorByRange 1234     Si vous n utilisez pas Option Explicit  l erreur peut aussi   tre une faute de frappe dans le  nom d   une variable pass  e en argument    la fonction API  ce nom est alors interpr  t    comme une nouvelle variable d
40. n 2 0 d   OpenOffice org  l installation d   un add on est beaucoup plus simple   car on peut utiliser le Gestionnaire de packages  qui est accessible    partir du menu Outils   La figure C 3 montre un add on d  j   install       Contrairement    la version 1 1 d   OpenOffice org  un add on peut   tre ajout   dynamique   ment    OpenOffice org m  me si celui ci est en cours d   execution   cliquer sur le bouton  Ajouter et choisir le fichier  zip de add on  Le gestionnaire de packages peut aussi   tre  ex  cut   en ligne de commande par l interm  diaire de la commande unopkg     Ressources disponibles sur Internet       Figure C 3  Le Gestionnaire de packages Parcourir les packages    ANNEXE C    FF Gestionnaire de packages    oO  x     Package et Ajouter         amp   F Mes packages  E  Be  MultiPages zip Activ   Supprimer  kml addon xcu Activ         MultiPages Activ       amp  Packages OpenOffice org          we         Introspection et documentation avec Xray    L API offre des fonctions d   introspection et de core reflection permettant d   obtenir    l   ex     cution de nombreuses informations sur les objets manipul  s  Toutefois  ces fonctions sont  assez complexes    utiliser     Loutil Xray  r  alis   avec des macros  met en forme ces informations et permet d     tudier  les sous objets  Il est capable de retrouver dans PIDL la documentation du sous objet  si  elle existe  Les auteurs utilisent intensivement Xray pour   tudier la structure des objets et  lire leur d
41. nes de OOoBasic  En termes courants  il signifie   vous          rs    m avez transmis un argument dont le type n   est pas compatible avec celui que j attends  je   ne sais pas l   utiliser     En pratique  un des arguments servant    appeler la m  thode API est incorrect     vous de  trouver de quel argument il s   agit  et en quoi il est incorrect  Relisez la documentation de  PAPI ou le chapitre correspondant dans ce livre  Cet exemple essaie d ins  rer un cadre  dans un document Writer      Dim MonDocument As Object  MonTexte As Object  Dim MonCurseur As Object  MonCadre As Object    MonDocument   ThisComponent   MonTexte   MonDocument Text   MonCurseur  MonTexte createTextCursor  MonTexte insertTextContent  MonCurseur  MonCadre  false     L erreur est qu on a oubli   d   initialiser la variable monCadre        684 Outils et ressources  ANNEXES    L   API avec d   autres langages de programmation    Les autres langages de script de la version 2    Nous avons signal   au chapitre 3 les diff  rents langages de scripts utilisables avec la  version 2 d   OpenOffice org et le niveau de leur int  gration dans l   application  Voici le  point de vue du programmeur     JavaScript et BeanShell    Ces langages tr  s similaires    Java n  cessitent comme lui d   invoquer l interface des  m  thodes    utiliser  Nous n   avons pas pr  cis   les noms des interfaces dans ce livre car c   est  parfaitement inutile avec Basic  et Python   La cons  quence est une certaine lourdeur du  cod
42. ocumentation dans API  Sans Xray  cet ouvrage ne serait pas aussi d  taill        gt  http   fr openoffice org Documentation How to indexht html  section programmation Basic  document n  5     Xray se pr  sente sous la forme de deux biblioth  ques de macros    installer dans le conte   neur soffice  dans Mes Macros pour la version 2 0 d   OpenOffice org   Pour   tudier un  objet  il est n  cessaire d   ajouter une instruction dans le codage  pour appeler Xray      monDocument   thisComponent   lesFeuilles   monDocument  Sheets   maFeuille   lesFeuilles getByName  Janvier    xray xray maFeuille    L expression signifie   appeler la macro xray qui se trouve dans la biblioth  que xray et lui  transmettre en argument l   objet maFeuille  On obtient le panneau de la figure C 4  o    on visualise les propri  t  s disponibles pour l   objet analys    En positionnant le curseur sur  la ligne d   un   l  ment complexe comme Ce11Protection  il suffit de cliquer le bouton  Xray pour afficher le contenu de ce sous objet  Lop  ration peut   tre r  p  t  e sur diff  rents  sous objets  a plusieurs niveaux     707    708    Outils et ressources       d une feuille Calc       ANNEXES  Figure C 4 Xray Rev 4 0 Fi  l  t   Afficher      Ce PER Pen Obiet donne setabiesheetOb  E       Propri  t  s C Propri  t  s A Z    C M  thodes C M  thodes A Z Documentation du SDK    C Services  Configuration              C Interfaces support  es Xray sur la propri  t   m  thode          Objet affich    Objet d
43. or gotoNextWord False    mxDocCursor gotoNextWord True    mxDocText insertString mxDocCursor   hello    True    mxDocCursor CharWeight   uno getConstantByName  com sun star awt FontWeight BOLD      Avant de vous lancer  lisez ces pages fondamentales en anglais sur le site udk       conversions entre types API et types Python  cr  ation de composant OpenOffice org  en Python   http   udk openoffice org python python bridge html   cette page est aussi valide avec  la version 1 1 d OpenOffice org       mise en place de scripts Python et sorties de messages d   erreur dans Open   Office org 2 0   http   udk openoffice org python scriptingframework index html    Piloter OpenOffice org avec Microsoft COM    Sous MS Windows  il est possible     partir d   un langage de programmation ind  pendant    utiliser COM pour piloter l   application OpenOffice org et manipuler des documents en  utilisant son API telle quelle a   t   d  crite dans cet ouvrage  Le SDK de la version 2 0  d    OpenOffice org fournit plusieurs exemples     e dans examples CLI   langages VB NET et C     e dans examples OLE    langages Delphi et VbScript     Dans la section CodeSnippets de OOoForum  http  Awww oooforum org forum   vous trouverez  notamment le fil de discussion Using COM for OOo with different languages  qui pr  sente des  exemples de programmation COM avec divers langages dont VB  C   Python  Lotus   Script  Delphi     686    Outils et ressources       ANNEXES    Mises    part l initialisation de la
44. os besoins  et vous permettront de rester concentr   sur l   objectif  premier de la macro que vous   tes en train de concevoir     Voyons maintenant quelles richesses sont disponibles sur l Internet     Ressources disponibles  sur Internet       De nombreuses informations  outils et compl  ments sur la programmation Open   Office org sont disponibles sur Internet  Ils sont une source toujours renouvel  e de savoir  et d inspiration        ATTENTION Lecture critique    De nombreuses macros sont disponibles sur Internet  mais elles ne doivent pas   tre consid  r  es comme  une r  f  rence absolue  Elles peuvent contenir des erreurs  ou   tre am  lior  es  ou correspondre aux pre   miers essais d un programmeur ou    des extraits d un codage plus complexe  Cherchez donc toujours     comprendre les principes utilis  s              Diffuser vos macros avec un add on    Installer des macros sur un syst  me et ajouter des ic  nes pour les d  clencher est une t  che  intimidante pour un utilisateur ordinaire  Pour un utilisateur confirm    r  p  ter ces op  ra   tions sur plusieurs ordinateurs devient lassant et sujet    erreurs  La m  thode des add on  est pr  vue pour modifier la configuration d   une installation OpenOffice org  En particu   lier  elle permet d installer une biblioth  que de macros  d ajouter des sous menus ou des  boutons avec ic  nes     des endroits r  serv  s pour cet usage  et m  me de pr  voir des    706 Outils et ressources  ANNEXES       libell  s en diff
45. ower Tools  outils de macros pour Draw       Danny    Library  biblioth  que de l   auteur    Il a publi   aussi dans la section Code Snippets de OOoForum plusieurs biblioth  ques  personnelles  mises    jour au long de ses recherches   notamment     e Dannys Basic library   e Danny s Python Modules       Ressources disponibles sur Internet om    ANNEXE C    e String utility functions for OOo Basic     gt  http   ooomacros org dev php  Comme vous pouvez vous en douter  Danny Brewer   crit en anglais       Les ressources que nous venons de passer en revue sont essentiellement destin  es au d  ve   loppeur  Nous allons voir quelles sont celles mises    la disposition des utilisateurs     Documents informatifs et exemples    La page des HowTo du site fran  ais d   OpenOffice org contient une section int  ressante  sur la programmation Basic      gt  http   fr openoffice org Documentation How to indexht html    Une partie de ces    HowTo    fait double emploi avec notre ouvrage ou sont cit  s ailleurs   mais nous signalerons ceux apportant des informations compl  mentaires     e    Dans la jungle de PAPI      une exp  rience v  cue d   un essai de compr  hension de  PAPI  racont  e sur le mode humoristique     e    Exemples pour BDD      divers conseils de programmation Basic sur les bases de  donn  es et formulaires     e   Manuel de programmation Basic StarOffice 7     ce document   crit par Sun  Microsystems vous fournit une autre vision de la programmation de StarOffice  un  
46. par d   autres  vous  pouvez vous aussi participer en rendant public votre travail     Vous serez accueillis avec enthousiasme sur les listes de diffusion francophones comme  doc fr openoffice org ou prog fropenoffice org  Votre contribution y sera valoris  e et ce  en    changeant juste quelques courriers   lectroniques  Pourquoi s   en priver      Conclusion    La richesse des ressources disponibles sur l   Internet  source d informations dynamique et  vivante  est illimit  e et nous n   en pr  sentons qu   une partie  N h  sitez pas    en tirer r  gu   li  rement profit     
47. peut donner le m  me nom    plusieurs objets d   une page   En  v  rifiant que l   objet obtenu reconna  t un service caract  ristique du type d   objet recherch     nous effectuons une v  rification suppl  mentaire  Le tableau B 1 indique quel service  caract  rise un objet     Tableau B 1 Services caract  ristiques    Type d objet recherch   Service caract  ristique   Dessin  sauf 3D com sun star drawing LineProperties  Dessin 3D com sun star drawing Shape3DScene   Image com sun star drawing GraphicObjectShape    Objet OLE2 com sun star drawing OLE2Shape         696   Outils et ressources  ANNEXES    Par exemple  pour rechercher seulement une forme dessin  e appel  e    F3     nous    crirons      Dim sv As String  sv    com sun star drawing LineProperties   maForme   FindObjectByName maPage   F3   sv     En effet  le service Shape  trop g  n  ral  est   galement propos   par une image  En  revanche  vous pouvez   tre plus pr  cis et exiger par exemple une EllipseShape     Rechercher un diagramme par son nom    La fonction FindChartByObjName recherche dans une feuille Calc un objet diagramme     partir du nom de forme d  fini par l interface utilisateur  Elle utilise la fonction pr  c     dente  en recherchant un objet OLE2  Toutefois  pour   tre certain qu il s   agit d   un dia   gramme  elle v  rifie que le sous objet Mode1 propose le service de diagramme  La fonction  renvoie la valeur Nu11 en cas d   chec     rem CodeAnnexeB 02 sxw bibli   Dessin Modulel   Option Expli
48. python  doit   tre cr     par le d  veloppeur  Dans un document  le script doit   tre  ins  r   en manipulant la structure du fichier document  Actuellement  le sys path fourni  ne permet d importer que des modules situ  s dans  installation  program  et ceux du  python core     Tout ceci semble d  courageant  pourtant les scripts obtenus g  rent l API aussi facilement  qu en OOoBasic   pas d   invocation d interface  utilisation possible des pseudo propri  t  s   De plus  contrairement a Basic  il est possible avec Python de cr  er de v  ritables compo        Comprendre l API d OpenOffice org   685    ANNEXE A    sants UNO int  gr  s    OpenOffice org  Ils sont alors utilis  s comme de nouveaux services   m  me dans une macro Basic     Le programmeur profite des qualit  s de Python   l   indentation obligatoire facilite la relec   ture  les variables ne sont pas d  clar  es mais leur usage est contr  l    elles peuvent changer  de type dynamiquement  les algorithmes sont plus simples gr  ce aux fonctions puissantes  int  gr  es dans Python et ses modules principaux  la gestion des erreurs est celle des lan   gages modernes  et la programmation objet facilite la conception de programmes com   plexes     Pour montrer la similarit   de programmation API  voici le portage en Python de la por   tion de codage Basic indiqu   plus haut  section   LAPI r  elle et PAPI selon  OOoBasic         mxDocCursor   mxDocText createTextCursor     mxDocCursor gotoNextSentence False    mxDocCurs
49. r activement    ceci afin de cerner le domaine des discussions et le niveau technique   e Ne posez pas une question qui a d  j   re  u une r  ponse r  cemment   il existe des  moyens de recherche dans chacun des forums        Ressources disponibles sur Internet   713    ANNEXE C    e Restez poli    vitez le bavardage intempestif  soyez bref et clair dans votre demande      Il est tr  s mal   lev   de poser dans un forum une question dans une autre langue que  celle pour laquelle il est cr        e Rappelez vous que ces forums sont anim  s par des bonnes volont  s  qui ne sont pas  r  tribu  es pour cela           RETENIR S inscrire    un forum    Les forums cit  s sont pour la plupart des listes de distribution de messages  mailing lists   Pour savoir com   ment s y abonner  gratuitement   envoyer un message  se d  sabonner  il suffit d envoyer un courrier   lec   tronique vide    l adresse xxx info yyyy  par exemple prog info fr openoffice org  Un robot vous renverra un  message explicatif  en anglais  Comme c est un robot  inutile d   tre poli avec lui  et inutile d esp  rer une  r  ponse personnalis  e              En fran  ais    Le site fran  ais d   OpenOffice org  http   f openoffice org  est probablement le plus vivant et le  plus complet de tous les sites nationaux d   OpenOffice org  Nous en avons cit   plusieurs  pages  Ce site est g  r   par Sophie Gautier  qui est aussi la mod  ratrice des forums en  langue fran  aise  Les questions  et r  ponses  concernant OOoB
50. r le module text     Un service comporte lui m  me parfois des services  en anglais included services   Il peut  avoir des propri  t  s  Ce sont des   vraies   propri  t  s  nous verrons plus loin  qu OOoBasic pr  sente aussi des pseudo propri  t  s   Un service poss  de en g  n  ral une  interface ou plusieurs  Tous les noms d   interfaces commencent par un X  majuscule   La  documentation dit que le service exporte des interfaces  ce qui signifie qu il les met    la  disposition du programmeur     Une interface contient des m  thodes  Ce sont des sous programmes utilisables    partir de  l objet consid  r    Les m  thodes utilisent des arguments et renvoient   ventuellement un  r  sultat  sous programme fonction   Chaque argument et chaque r  sultat peut   tre      un objet API     une donn  e d   un type simple  bool  en  entier  flottant      une s  quence de donn  es ou d   objets  pr  sent   en OOoBasic sous forme de tableau      une constante nomm  e  qui est un type entier dont les valeurs possibles sont d  finies  avec des noms qualifi  s     une structure de donn  es  qui est un regroupement de donn  es accessibles individuel   lement     Comme l   API est ind  pendante du langage  le type simple indiqu   pour une donn  e doit    tre    traduit    dans le type de donn  es le plus proche pour le langage de programmation  utilis    Cela peut poser quelques difficult  s   par exemple  OOoBasic ne poss  de ni type  Byte  ni type hyper    Un objet API  en dehors des cons
51. re    EqualUnoObjects    Les variables repr  sentant des objets sont en fait des r  f  rences sur l   objet lui m  me  Il est  donc possible d   avoir deux variables pointant sur le m  me objet  Cette fonction permet de  le v  rifier     HasUnolnterfaces    Renvoie True si l   objet en premier argument prend en charge toutes les interfaces des  arguments suivants  Cette fonction est parfois utile pour rechercher un objet d   un type  particulier dans une collection  Un autre moyen est dutiliser la fonction  supportsService des objets pour v  rifier s ils prennent en charge un service particulier     Comprendre les messages d   erreur OOoBasic    Les messages d   erreur d   ex  cution de OpenOffice org Basic sont souvent assez peu com   pr  hensibles  Voici quelques informations pour vous aider     680    Outils et ressources       ANNEXES      vitez les erreurs    V  rifiez la syntaxe de chaque module que vous avez   crit ou modifi    Il suffit de cliquer  sur le bouton Compiler dans PEDI  Faites le pour chaque module modifi    car seul celui  affich   par PEDI est analys       Si vous utilisez des instructions complexes  ou des notations point  es en cascade  il  devient difficile de trouver la raison de l   erreur d ex  cution  D  composez l instruction en  plusieurs instructions successives  et rep  rez celle qui part en erreur  Remontez ensuite en  v  rifiant chaque variable ou valeur utilis  e     Beaucoup d erreurs sont dues    une faute d orthographe  Relisez  relisez 
52. seconde  0    59     Codage du sous programme      rem CodeAnnexeB 04 sxw bibli   Standard Modulel  Option Explicit     Convertit une heure de type Date en heure  minute  seconde  Sub Time_HMS temps As Date  _  hr As Integer  mn As Integer  sec As Integer   Dim s2 As Long  m2 As Long  h2 As Long  Dim d3 As Double  s3 As Long    d3   CDbl temps    conversion en Double   d3   d3   Fix d3    garder la partie fractionnaire   s3   CLng d3   86400    convertir le temps en secondes    le calcul se poursuit avec des entiers Long    s2   s3 Mod 60   s3    s3  s2    60  m2   s3 Mod 60   h2    s3  m2    60  hr   h2   mn   m2   sec   s2   End Sub    Exemple d utilisation      rem CodeAnnexeB 04 sxw bibli   Standard Module2  Option Explicit    Sub Exemple_Time_HMS    Dim t1 As Date  Dim h1 As Integer  ml As Integer  s1 As Integer    t1   Now  Time_HMS t1  hl  ml  s1   MsgBox CStr t1   amp  chr 13   amp  _    M  amp  h1  amp       amp  ml  amp   2   amp  s1   End Sub    Traitement des cha  nes de caract  res longues    Sur les versions 1 1 et ant  rieures d   OpenOffice org  les instructions OOoBasic InStr   Left  Right et Asc ne traitent pas de mani  re correcte les cha  nes de caract  res de plus de       Routines utilitaires EUR  ANNEXE B    32 767 caract  res  Elles sont corrig  es    partir de la version 2 0 0  Pour les utilisateurs des  versions posant probl  me  le document CodeAnnexeB 07 sxw contient dans la biblio   th  que LongString des fonctions de remplacement   InStrL  LeftL 
53. tant de programmer OpenOffice org  dans diff  rents langages  dont OOoBasic  Il fournit diff  rents liens et des pages explica   tives  Ce projet poss  de un forum dev udk openoffice org  Il traite de l   interfa  age de langages  de programmation  OOoBasic  Python  Java  etc  avec l API OpenOffice org  et de  OOoBasic     Autres langues    Le site principal d   OpenOffice org poss  de de plus en plus de subdivisions nationales   accessibles depuis la page principale  voir la liste d  roulante Native Language Projects   Il  faut reconna  tre qu   elles n offrent que peu d informations nouvelles sur la programmation    d OpenOffice org      gt  http   www openoffice org     Le site priv   allemand Kienlein offre diverses informations de programmation d   Open   Office org pour acc  der    des bases de donn  es      gt  http   kienlein com pages oo html    IssueZilla    IssueZilla  appel   aussi en abr  g   IZ  est une base de donn  es pour g  rer les rapports d   ano   malies et de demandes d am  lioration    galement connue depuis peu sous le nom de  IssueTracker  IT en abr  g    elle est consultable sur Internet  Les rapports IssueZilla sont  r  dig  s en anglais  afin d     tre compr  hensibles par des lecteurs du monde entier  Il est  donc n  cessaire d   avoir une connaissance de cette langue pour utiliser cette source d   infor   mation     Rechercher un rapport dans IssueZilla    La page d   entr  e pour rechercher quoi que ce soit dans IssueZilla est       gt  http   w
54. tantes et des structures  comporte un service ou plu   sieurs  Il y a lieu de distinguer les services pris en charge  directement utilisables  et les  services disponibles  qui peuvent   tre invoqu  s avec la fonction createInstance        Comprendre l API d OpenOffice org   675    ANNEXE A    L   API r  elle et PAPI selon OOoBasic    OOoBasic a plusieurs avantages par rapport aux autres langages    e Ilest le plus int  gr      l   application   e Il est facile    apprendre       Il est con  u pour simplifier l   acc  s aux primitives de l API   il n   impose pas de respec   ter les majuscules et minuscules dans l emploi des noms de routines et de propri  t  s       Il conna  t les valeurs des constantes nomm  es      Il permet d utiliser directement les interfaces dun objet  contrairement    Java          Il permet utiliser comme une pseudo propri  t   le couple de m  thodes get et set  manipulant la m  me donn  e interne  contrairement    Java     our toutes ces raisons  les exemples en Java  nombreux dans la documentation  sont bien  Pour tout l l breux dans la d tat tb  plus difficiles    lire que leurs   quivalents en OOoBasic  A titre dexemple  voici un extrait  de code en Java qui modifie un mot dans un texte Writer et modifie le curseur pour   crire  en gras     mxDocCursor   mxDocText createTextCursor     XSentenceCursor xSentenceCursor    XSentenceCursor   UnoRuntime queryInterface XSentenceCursor class  mxDocCursor    xSentenceCursor gotoNextSentence false     XWor
55. til est utilisable d  s la version 1 1 d   Open   Office org     Il faut une certaine exp  rience de l API pour ne pas   tre perdu dans les informations four   nies  Comme les objets API h  ritent pour la plupart des propri  t  s et m  thodes d   un ou  plusieurs autre s  objet s   et ainsi de suite  et que vous pouvez analyser un objet interne    un  objet  vous retrouvez certaines m  thodes et propri  t  s des   briques de base    d   Open   Office org  par exemple setDelegator  getByName  ou le tableau ImplementationId     Ressources disponibles sur Internet       Figure C 5  Xray   voir la documentation  d un objet    Figure C 6  Xray   m  thodes  d une feuille Calc    Xray Rey 4 0    ANNEXE C EE     x        Afficher     Propri  t  s  C M  thodes  C Services  C Interfaces support  es          Propri  t  s A Z  C M  thodes A Z      Objet d origine   ScTableSheetObj  Mettez le curseur sur la ligne de la propri  t   ou m  thode       Documentation du SDK          Objet affich       lt  gt        Vous pouvez s  lectionner et copier les lignes affich  es     objet d origine x         Nom interne de l objet  boolean  struct  long  1  struct   string Care  gt   long  1  boolean   boolean   integer   integer   integer   integer   integer   integer   integer   integer   string   string   string    sianVerticalMode  ottomBorder    CellBackColor  CellProtection    CharContoured  CharCrossed0ut  CharEmphasis  CharFont    CharFontChar et  CharFontChar et  sian  CharFontCharSetComplex
56. ww openoffice org project www issues query cgi    Chaque rapport IssueZilla re  oit un num  ro  Pour afficher un rapport dont on conna  t le  num  ro  il suffit de remplir le champ en haut de la page et de cliquer sur le bouton Jump to Issue        Ressources disponibles sur Internet on    ANNEXE C    Si vous cherchez s   il existe un rapport sur un sujet donn    il faut remplir certains champs  propos  s par le formulaire  Plus vous remplissez de champs  plus la recherche se focalise   La difficult   est de se demander quels mots ont pu   tre utilis  s dans les rapports d  j      crits  Pour   viter des recherches infructueuses  il est pr  f  rable de commencer par une  recherche assez g  n  rale  un mot ou deux dans le titre du rapport  et de restreindre la  recherche si elle renvoie un grand nombre de rapports  Souvent il faut essayer des mots  synonymes  ou   crits diff  remment     R  diger un rapport    De nombreux rapports sont   crits chaque jour et les d  veloppeurs ont du mal    les  analyser  Vous ne devriez en   crire que sur un sujet que vous estimez important et faire  une recherche pr  alable pour   viter de dupliquer un rapport existant        On peut   crire un rapport pour seulement deux raisons   demander une am  lioration ou signaler une ano   malie  IssueZilla n est pas un site pour demander une aide  voyez les forums pour cela        Les demandes d   am  liorations sont lues par les d  veloppeurs et class  s avec un horizon de  prise en compte   ventuell
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Poulan P1500 User's Manual  Netgear WNA1000M Installation Guide  User Manual - Azuretec Press Releases  Scarica il manuale Robomow RL2000  Mpman TS200/4GB  Benutzerhandbuch Wiper Runner X  教育・実習用 卓上型 pHメータ D-71AC    FIコン2 CBR250R用 取扱説明書  Curvassure Manual    Copyright © All rights reserved. 
   Failed to retrieve file