OpenOffice est un logiciel de bureautique, contenant un traitement de texte, un tableur, un logiciel de présentation, un logiciel de dessin vectoriel, une interface à des bases de données. C'est un équivalent libre de la suite Office de Microsoft.
J'ai toujours eu du mal à utiliser ces logiciels Wysiwyg, plutôt conçus pour les transfuges du monde Microsoft que pour des utilisateurs novices : voici les notes que j'ai prises en tentant d'apprendre à utiliser ces logiciels -- si vous venez de chez Micro$oft, tout vous semblera trivial, mes incompréhensions et déboires vous sembleront risibles -- preuve que ces logiciels sensés être faciles à utiliser ne le sont peut-être pas tant que ça.
Nous verrons en particulier comment utiliser le traitement de texte et comment "gérer" des "bases de données" ; je serai plus allusif sur le tableur et le logiciel de présentation -- et encore plus sur le logiciel de dessin vectoriel.
Ces essais ont été réalisés avec OpenOffice 1.0.2 (c'était la dernière version quand j'ai commencé à rédiger cette page, mais la version 1.1 est sortie depuis...)
Comme les captures d'écran sont nombreuses, j'ai demandé à Sawfish (le gestionnaire de fenêtres) d'exécuter la commande
$HOME/bin/grab_screen.sh
quand j'appuie sur la touche "Print".
#! /bin/sh cd /tmp file=grab_screen_`date "+%Y-%m-%d-%H:%M:%S"` xwd -root > $file.xwd convert $file.xwd $file.png rm -f $file.xwd
Au shell, je tape
ooffice &
Je tape un texte, sans me soucier de quoi que ce soit.
On peut mettre une partie du texte en italique : il suffit de sélectionner cette partie et de cliquer sur le bouton "italique".
De même, on peut sélectionner les paragraphes et cliquer sur le bouton "justifier", afin de justifier le texte.
Je constate avec effroi qu'il n'y a aucune césure. Si je vais dans
Tools --> Hyphenation
(si rien n'est sélectionné, cela demande d'effectuer la césure sur tout le document) j'obtient un message d'erreur.
Je suis ces instructions :
Et ça marche. Mais il faut lancer explicitement la césure et le logiciel demande confirmation à chaque fois.
Si on modifie le texte, il faudra relancer la césure (les points de césure qui ont été trouvés sont gardés, même s'ils ne sont plus utiliser, mais il faut en trouver d'autres).
Pour le français, c'est pareil,
mais il faut que la version française d'OpenOffice ait été installée.
urpmq -y office 2>&1 | perl -p -e 's/\s+/\n/g' | grep fr OpenOffice.org-l10n-fr OpenOffice.org-help-fr urpmi OpenOffice.org-l10n-fr
Elles ne sont pas respectées : OpenOffice n'a aucun scrupule à aller à la ligne avant un point d'exclamation (en français, le point d'exclamation ou d'interrogation est précédé d'un petit espace insécable : LaTeX est capable de transformer l'espace normal que l'on tape en un petit espace insécable, OpenOffice non).
Il faut explicitement taper les espaces insécables (en particulier avant ; : ! ?) : STRL-SPC.
Pour obtenir les caractères qui ne sont pas présents sur le clavier, il suffit d'aller dans
Insert --> Special Character
(oui, il faut faire ça à chaque caractère...)
Je ne sais pas s'il est possible de définir des raccourcis-clavier pour les caractères dont on a besoin le plus souvent (par exemple, << pour les guillemets ouvrants).
Pour les guillemets, c'est facile : il suffit d'aller dans Tools --> AutoCorrect ; on peut alors taper " pour les guillemets ouvrants ou fermants. Il ajoute même l'espace insécable.
Elles datent de l'époque des machines à écrire mécaniques, mais les tabulations sont toujours très utilisées dans le monde Microsoft : on déplace le taquet de tabulation et tout ce que l'on tape sera à droite de ce taquet. Ensuite, on le remet à sa position de départ.
C'est très approximatif : si différents passages d'une même page doivent être alignés, ils ne le seront pas précisément. Pire : on peut être imprécis en remettant le taquet à sa position originelle...
Pour écrire un document de ce genre-là, on pourrait commencer par taper tous les paragraphes (en particulier un paragraphe après l'adresse du destinataire), sélectionner le destinataire et le déplacer à l'aide du taquet de tabulation. Ainsi, on ne touche pas à la position de la suite du document.
Détaillons le différents éléments de cette barre. A gauche, le type de taquet de tabulation (gauche, droit, central, décimal) ; ensuite, deux taquets superposés : celui du bas indique la position du paragraphe, celui du haut la position de la première ligne du paragraphe ; à droite, le dernier taquet indique la fin des lignes.
L'utilisation en est relativement intuitive : on commence par fixer les taquets (oui, c'est approximatif), puis on tape le texte, en utilisant la touche de tabulation pour aller au taquet suivant.
S'il s'agit d'un taquet gauche, le texte est placé à droite (il peut déborder sur les taquets suivants).
S'il s'agit d'un taquet droit, le texte est placé à sa gauche.
Sauf s'il y a déjà du texte à gauche (dans ce cas, on déborde à droite)
ou s'il y a un autre taquet de tabulation (gauche) à gauche, même vide -- ce comportement me semble étrange...
On peut aussi définir une tabulation pour aligner sur le point décimal.
Attention : la tabulation gauche indique simplement le début d'un texte, mais ne dit pas que tout le texte doit se trouver à sa droite. Si le texte est suffisemment long pour s'étendre jusqu'à la ligne suivante, il commencera à la marge gauche...
Si on veut que tout le texte se trouve à droite d'un taquet de tabulation, même s'il y a plusieurs lignes, on peut utiliser un tableau -- en d'autres termes, les taquets de tabulation ne servent à rien...
Il est possible de se laisser guider pour créer un nouveau document : ici, une lettre.
(Ca me semble très étrange : il n'y a pas la place pour le destinataire, le texte du corps de la lettre est aligné à droite (!), etc.)
Mon écran est petit mais a une résolution élevée (15', 1400x1050) -- or la plupart des logiciels sont conçu pour de grand écrans avec une résolution faible (17', 1024x768)... J'essaye donc toujours d'aggrandir la taille du texte et des icones.
Mais c'est juste la taille de l'affichage du texte : les menus et les icones sont toujours très petits (si vous avez un grand écran avec une faible résolution, ce n'est pas grave, mais je suis en face d'un petit écran avec une résolution elévée... On peut imaginer que dans un futur peut-être pas si lointain, les logiciels ne préciseront plus la taille du texte, des menus, des icones en pixels mais en centimètres...)
On remarquera que les icones ont une taille fixe et que les zônes affichant certaines informations ne tiennent pas compte de la taille de ces informations (par exemple, les informations en bas de la fenêtre)...
Quelques exemples :
Je ne donne pas d'exemple des fontes à chasse fixe (Courrier, Lucida Sans Typewriter, Luxi mono, Nimbus Mono, etc.), qu'on utilise pour taper du code.
Il suffit de redéfinir le comportement du "paragraphe par défaut".
Ce changement est valable pour le document courrant, il sera sauvegardé avec lui. Par contre, de nouveaux documents l'oublieront -- d'où l'utilité des modèles de documents.
Comme précédemment, il suffit de changer le comportement du "paragraphe par défaut".
Indenter chaque paragraphe :
Ajouter un peu d'espace entre les paragraphes :
On peut être tenté de modifier localement un paragraphe, ce qui risque de produire un document hétérogène. Pour éviter cela, on peut demander à OpenOffice de répercuter les changements effectués à un objet au style qui lui a été attribué ; ainsi, en modifiant un objet, on change en fait le style correspondant et donc tous les objets du même style dans le document.
Mise en garde : je n'ai rien compris à ce qui suit...
Voici une première manière d'obtenir des listes, numérotées ou non, éventuellement imbriquées. On commence par taper le texte sans se préoccuper de rien, en changeant de paragraphe quand il faut.
On peut alors sélectionner tout le texte et cliquer sur l'un des icones correspondant aux listes.
On enlèverait ce formatage en liste de la même manière.
On peut aussi imbriquer ces listes : on sélectionne les paragraphes à déplacer et on clique sur le bouton correspondant.
Si le style de numérotation ou les symboles utilisés ne conviennent pas, on peut les changer.
Mais pour que ça marche, il faut sélectionner juste le morceau à modifier (pas plus -- en particulier, on ne peut pas tout sélectionner...)
Une autre manière de procéder consiste à taper le texte sans se soucier de rien, tout sélectionner, appliquer le style "Numbering 1" et le modifier de manière qu'il numérote (on pourrait croire qu'il ne fait par défaut, mais non...).
Ici, il ne faut pas confondre le style "numbering 1" (c'est un style comme un autre, on peut lui donner le nom qu'on veut, on peut le modifier à l'aide du styliste, on peut en créer plein d'autres) et le style de numérotation "numbering 1".
J'ai beaucoup de mal à modifier les styles de numérotation parfois ça marche, parfois non, mais rarement sur tout le document. En particulier, je me retrouve souvent avec des numérotations non homogènes... (Que c'est facile et intuitif à utiliser, un logiciel wysiwyg !)
A FAIRE : idée : dans le styliste, on trouve "numbering 1" à deux entroits différents : parmi les styles de paragraphes et parmi les styles de numérotation.
A FAIRE : n'y a-t-il pas quelque chose qui marche ???
A FAIRE : n'y a-t-il pas plus simple ???
A FAIRE : effacer ce qui suit ?
Taper un document hiérarchisé à l'aide des styles Heading1, Heading2, Heading3, etc.. Cliquer sur Insert-->Index/Table, éventuellement changer le style de la numérotation,
et c'est tout.
Insert-->graphics, choisir le fichier. Si le graphique se superpose au texte : clic-droit dessus, Wrap-->No wrap. Je n'ai pas l'impression que les figures soient flottantes, comme en LaTeX.
Ajouter une légende : clic-droite, Caption.
Pour faire référence à cette figure : Insert-->Reference (on peut avoir le numéro de page, la légende complète, le numéro de la figure, etc.).
Pour l'index : Insert-->Index-->Index, choisir "Alphabetical Index", changer son nom.
Pour les entrées : sélectionner le texte à indexer, Insert-->Index-->Entry. Mettre l'index à jour.
Voici un modèle de lettre (je ne sais pas si c'est très conforme aux habitudes françaises, mais c'est à peu près ce que j'utilise).
La seule chose que nous n'avons pas encore vue, c'est la date. On peut l'insérer ainsi :
mais ça donne 06/28/2003. On peut aussi l'insérer ainsi :
Pour faire de ce fichier un modèle, il suffit de l'enregistrer comme tel (et pas comme un simple document). Si on l'utilisait en tant que document normal, on le reprendrait pour écrire de nouvelle lettres et, un jour ou l'autre, on le modifierait en oubliant de changer le nom -- le document initial serait perdu. Avec les modèles, ce genre de problème disparait.
On utilise un modèle ainsi :
On remarquera que le nouveau fichier n'a pas encore de nom :
Mise en garde : comme pour les énumérations, je n'y comprends pas grand-chose.
Un article (exercice : le terminer en ajoutant table des matière, index, illustrations (bitmap et vectorielles) avec des légendes, bibliographie) :
article.stw
Un CV :
http://documentation.openoffice.org/Samples_Templates/User/template/resume_4.stw CV.stw CV2.stw
On insére un tableau à l'aide du menu Insert-->Table ou à l'aide de l'icône correspondant sur la barre de gauche.
Pour rendre un tableau plus lisible on peut changer la couleur du fond une ligne sur deux : on peut le faire à la main (ici, il s'agit du tableur et pas du traitement de texte -- mais le principe est le même).
Pour le faire automatiquement, il suffit de sélectionner "autoformat" lors de la création du tableau.
Attention : les couleurs sont fixées, en dur, lors de la création du tableau : il faut lui donner le bon nombre de lignes dès le début...
Pour insérer une image dans un document :
Pour la positionner correctement, je procède ainsi :
On peut aussi la déplacer à la souris.
Ce qui précède ne se généralise pas : j'ai mis l'image dans le fond du document, sans tenir compte du texte (en espérant qu'il n'y aurait pas de texte à cet endroit là).
Voici une situation plus réaliste.
Pour qu'un ensemble de documents soient homogènes, on peut utiliser un ensemble de styles prédéfinis (il suffit de les créer et de les sauvegarder, sous forme d'un modèle de document (vide)) on peut aussi utiliser un modèle (c'est comme les styles, mais en plus, on a un exemple de document qu'il suffit de modifier) ou des formulaires (j'ai lu ça dans un livre sur Word, est-ce que ça existe aussi sous OOo ?) (c'est comme les modèles, sauf qu'on n'a pas à chercher les parties à modifier : elles sont clairement mises en évidence et on passe de l'une à l'autre à l'aide de la touche de tabulation).
La touche F3 active le texte automatique : elle prend le dernier mot tapé et regarde si on lui a associé du texte ; si c'est le cas, le logiciel insére ce texte. Dans l'exemple suivant, j'ai tapé "DT" (pour "dummy text") puis F3.
Voir aussi http://fr.openoffice.org/Documentation/How-to/writer/autotex11fr.pdf
Bien que l'utilisateur de LaTeX que je suis reste frustré face aux possibilités d'un traitement de texte WYSIWYG, il est quand-même possible de mettre des morceaux de mathématiques dans des documents OpenOffice.
Le document suivant est très clair, je n'ai rien a ajouter :
http://fr.openoffice.org/Documentation/How-to/Math/math3_ht_debuter.pdf
Nous avons vu comment taper du texte français ou anglais avec OpenOffice ; passons maintenant à une langue plus complexe : le japonais. Il faut tout d'abord installer la partie japonaise d'Open Office
urpmi OpenOffice.org-l10n-ja
On peut alors demander un OpenOffice entièrement en japonais :
XMODIFIERS='@im=kinput2' LANG=ja_JP.eucjp LC_ALL=ja_JP.eucjp ooffice&
(On pourrait aussi utiliser la commande localedrake, de sorte que ces changements soient définitifs, pour l'utilisateur courrant.)
On change la fonte par défaut (il faut une fonte qui possède les caractères dont on a besoin) : on choisit par exemple Cyberbit, on tape SHIFT-ESPACE et on peut taper du texte en japonais.
Je pense qu'on devrait pouvoir avoir du texte en japonais avec de menus en anglais en se contentant de changer la variable XMODIFIER
XMODIFIERS='@im=kinput2' ooffice &
et en disant que le document est en japonais...
(certains menus changent alors)
...Mais SHIFT-ESPACE ne marche plus...
On restera donc avec la version tout en japonais.
On peut quand même lire un fichier comportant du japonais avec une interface en anglais -- mais on ne peut pas ajouter de texte en japonais.
sample_japanese_document.sxw
Un tableur, c'est un grosse machine à calculer -- grosse en ce sens qu'elle permet d'effectuer de grosses additions.
L'utilisation est relativement simple : on met les nombres dans les cases, on sélectionne la case dans laquelle on veut mettre leur somme, on tape "=sum(" (sans les guillemets), on sélectionne les cases à ajouter (s'il y a des cases vides, par exemple des cases pas encore remplies, elles ne comptent pas), on tape ")". C'est tout : l'ordinateur calcule la somme. Si on modifie certains des nombres, si on en ajoute un nouveau (dans les cases que l'on a sélectionnées mais qui étaient vides), la somme est recalculée.
Autres remarques.
On peut cliquer sur le coin en bas à droite d'une cellule (ou d'un groupe de cellules sélectionnées) et l'étendre verticalement ou horizontalement : la cellule (ou la formule qu'elle contient) sera copiée.
Les cases ont des noms du genre "C17". Il s'agit d'une référence relative : si dans la case D17 on lit "=C17+C18", dela signifie en fait : "somme de la case à gauche et de la case en dessous à gauche". Si on copie la case D17 contenant cette formule, la formule sera transformée afin que son sens demeure inchangé.
Il y a aussi des références absolues ($C$17), absolues sur les lignes mais pas sur les colonnes (C$17), absolues sur les colonnes mais pas sur les lignes ($C17).
Les formules peuvent faire intervenir des ensembles de cases : "=sum(A1:A20)" calcule la somme A1+A2+A3+...+A20.
On peut demander à l'ordinateur de résoudre des équations : Tools-->Goal Seek.
Pour les longs documents, on peut demander à ce que le haut du document (qui contient les colonnes) soit toujours visible : se placer sur la première case de la deuxième ligne et faire Windows-->Freeze.
Je n'ai pas vraiment utilisé le logiciel de dessin vectoriel d'OpenOffice, mais je conseillerais plutôt Sodipodi.
http://hawthorn.csse.monash.edu.au/~njh/programming/drawing-packages/sodipodi/index.html
OpenOffice permet aussi de faire des présentations, i.e., des transparents qu'on peut projeter lors d'un exposé. C'est un équivalent de PowerPoint.
On peut créer un nouveau document à l'aide du pilote automatique
On remarque de nouveaux boutons, horizontalement en bas à gauche et verticalement en haut à droite (l'avant-dernier bouton permet de "jouer" la présentation)
La première page ne contient que le titre.
Les pages suivantes contiennent du texte. Par défaut, ce sont des listes.
Mais on peut faire disparaitre les points devant les paragraphes.
Heu... Non. Il vaut peut-être mieux faire appel au styliste.
Eh non... Le styliste est devenu effrayant, comparé à celui du traitement de texte : il en manque plein, il n'y a plus de relation d'héritage entre les styles, il est impossible de définir ses propres styles, certains formatages ne sont plus possibles...
Pour avoir du texte normal, on peut prendre l'un des styles et en modifier l'indentation...
Eh non...
Une chose qui marche : choisir un autre format de page, titre+objet, et créer un objet de type texte. Faire attention à la taille du texte et de l'objet (c'est tellement bien fait que ça déborde...).
Ah, je crois que j'ai compris : on est sensé écrire le document à l'aide du traitement de texte, pour lequel on aura soigneusement réglé la taille de la page et de la fonte, puis on "importe" les différents morceaux de texte à grands coups de copier-coller (comparativement, LaTeX est très simple : on tape le texte normalement et c'est l'ordinateur qui s'occupe de trouver les changements de pages optimaux -- on se contente de vérifier son travail).
Après avoir essayé, je constate que ça ne marche pas si bien que ça : le texte est mal positionné et tronqué (tout le texte est là, mais le reste est caché : si j'essaye de redimentionner la boite le contenant, c'est la taille du texte qui change...)
Utilisons par exemple le modèle :
http://documentation.openoffice.org/Samples_Templates/User/template/presentations/plain-or-singlecol/Gray-green.sti
Il ne s'agit pas d'une page de la présentation mais du format général des pages : en particulier, il n'y a aucun contenu. On peut changer le texte (titre, auteur, organisation, date, etc.), avec de grosses restrictions (je ne parviens pas à avoir la date en français, à changer la fonte (si : les changements sont effectifs mais invisibles, c'est toujours marqué "helvética", mais quand on éditera le document, ce sera une autre fonte), etc.).
On peut ensuite passer en mode édition et rédiger le contenu de chacune des pages.
Ma connaissance d'Impress est trop superficielle pour que je puisse réellement le critiquer en connaissance de cause. Néanmoins, la FAQ souligne quelques manques : impossibilité de changer le numéro des pages (utile, si on veut une page de titre ou même une numérotation ad hoc -- en fait, le problème est bien pire : on ne peut insérer que quelques champs prédéfinis, dans des formats limités ; par exemple, je ne peux pas choisir le format de la date (j'écris les dates sous la forme peu standard 2003/09/24, mais je n'ai même pas réussi à l'avoir dans l'ordre européen...)) ; impossibilité de mélanger des pages horizontales (à l'italienne (les anglais disent "landscape")) ou verticales (à la française) ; avec certains modèles, je ne parviens pas à changer la fonte, et encore moins la fonte par défaut ; lors de la visualisation du document, de gros morceaux de texte disparaissent ; etc.
Par contre, s'il s'agit juste de lire des fichiers PowerPoint, il marche très bien -- et ces fichiers donnent une idée de ce qu'il est possible de faire. Pour voir ces fichiers en plein écran, il suffit de cliquer sur l'icone entouré en rouge.
Il y a juste un petit problème : s'il ne connait pas la fonte Comic de Microsoft, il en utilise une autre qui n'est peut-être pas suffisemment lisible (et qui pose des problèmes, car certains caractères manquent)...
KPresenter me semble plus utilisable (et je ne l'ai utilisé que pendant une dizaine de minutes, contre plusieurs heures pour Impress).
On peut bien sûr utiliser LaTeX (ou, mieux, ConTeXt) pour faire des présentations.
ConTeXt
seminar.cls
http://www.tug.org/applications/Seminar/
Prosper (utilise seminar)
http://prosper.sourceforge.net/prosper.html
pdfslide
pdfscreen
Il n'y a pas de logiciel de mise en page (du genre Quark XPress ou Adobe InDesign, qui permettent de réaliser des plaquettes, des dépliants, des prospectus, des journaux -- i.e., des documents, souvent très graphiques, dans lesquels on règle la mise en page à la main) dans OpenOffice. Voir toutefois :
http://documentation.openoffice.org/Samples_Templates/User/template/newsletter_2.stw
On pourra aussi se tourner vers Scribus.
http://www.yeccoe.org/scribus/
Les bases de données que l'on peut manipuler avec ce genre de logiciel sont essentiellement de grands tableaux, très hauts (plusieurs centaines de lignes) et (éventuellement) très larges.. On peut par exemple y mettre la liste des livres (ou des CDs, ou des DVDs) qu'on possède. Pour chaque livre, on pourra indiquer l'auteur, le titre, l'ISBN, le genre (roman, dictionnaire, grammaire, art, etc.), la date d'achat, le lieu d'achat, le prix et quelques paragraphes de commentaires. Utiliser un tableau pour stocker de telles informations ne serait pas très pratique : d'une part, le tableau (avec une ligne par livre) risquerait d'être trop large ; d'autre part, on aimerait pouvoir faire facilement des opérations sur ces données : par exemple, compter le nombre de romans japonais, calculer la dépense en dictionnaires de l'année 2002, chercher tous les livres de Murakami Haruki, chercher les auteurs dont j'ai au moins trois livres, obtenir la liste des auteurs dans l'ordre alphabétique, etc.
Une base de donnée permet d'effectuer de telles opérations. (Attention : il s'agit ici de bases de données simples, réduites à une seule table. Je ne sais pas si OpenOffice est réellement adapté à la conception et la gestion d'une base dont le schéma serait plus complexe).
Pour définir une nouvelle base de données, sélectionnons "Data Sources" dans le menu "Tools".
On peut alors ajouter une nouvelle base de données : choisissons par exemple le type "dbase" (mais on peut aussi utiliser des fichiers texte, au format CSV).
et donner un nom de fichier (qui n'existe pas encore : ce sera un répertoire).
On peut alors définir une une nouvelle table
et ses colonnes.
Nous pouvons maintenant commencer à utiliser, de façon encore rudimentaire, cette base de données. Pour cela, sélectionnons "Data sources" dans le menu "View".
et commençons à rentrer des données.
Néanmoins, il n'est pas très pratique de rentrer les données ainsi, car les cases de certaines colonnes (dans notre exemple, la colonne "remarque") sont suceptibles de contenir plusieurs paragraphes de texte -- ça va déborder. Pour contourner ce problème, on peut utiliser des formulaires.
Le moyen le plus simple de les créer est d'utiliser le pilote automatique.
On peut ensuite utiliser le formulaire, soit pour éditer des données déjà entrées, soit pour en rajouter d'autres (commencer par placer le curseur dans l'un des champs, à l'aide de la souris, et passer d'un champ à l'autre à l'aide de la touche de tabulation, exactement comme quand on remplissait la base dans un tableau.
Pour sauvegarder l'entrée qu'on vient de taper, il faut utiliser le bouton de sauvegarde en bas de l'écran (celui du haut sauve le formulaire, pas son contenu). Néanmoins, quand on passe d'une fiche à une autre, le contenu de l'ancienne est automatiquement sauvegardé.
Il y a toutefois quelques petits problèmes : d'une part, notre base de données est mal conçue (je ne peux pas taper le titre en entier...), d'autre part, j'aimerais des fontes un peu plus grosses et des champs plus larges (ils font actuellement moins d'un cinquième de la largeur de mon écran).
Pour le premier problème, c'est facile : on repart dans l'outil de conception de base de donnée et on modifie le type de la colonne. On prend toujours VARCHAR, mais on fixe la longueur maximale à 254 (c'est le maximum possible pour ce type là : si on met plus, il descend à 255).
On remarquera aussi que le formulaire qu'on vient de créer est indiqué.
Néanmoins, il y a un gros problème : le formulaire refuse les caractères supplémentaires, bien que la table ait effectivement été modifiée (dans la vue sous forme de tableau, on peut rentrer le titre entier).
Même en créant un nouveau formulaire, ça ne marche pas... Même en créant une nouvelle base, une nouvelle table, avec des colonnes plus grandes, ça ne marche pas. Même avec le dernier champ, de type LONGCHAR, ça ne marche pas... Grrrrr... C'est visiblement un bug (mais je n'ai pas la dernière version).
Pour le deuxième problème, je n'y arrive pas non plus : normalement, un formulaire, c'est un document comme un autre, que l'on peut éditer. Je peux rajouter du texte en dehors des champs, mais c'est tout...
Ah, j'ai trouvé : dans la barre d'outils sur la gauche, il faut cliquer sur l'icône des formulaires (J'ai eu du mal à le trouver, car il change de forme...).
(Au lieu d'utiliser le "Form Navigator", on aurait pu passer en mode édiction de formulaire (comme précédemment, en cliquant sur l'icone des formulaires), sélectionner un champ en cliquant dessus, le séparer du label (clic droit, Group->ungroup, cliquer ailleurs pour désélectionner, cliquer sur le champ pour le sélectionner à nouveau), puis le redimentionner.)
Mais je n'arrive toujours pas à rentrer le titre complet...
Il n'est pas résolu : je suggère simplement d'attendre une version plus récente, dans laquelle ce bug sera corrigé...
Sélectionner la colonne et cliquer sur le bon icone (il y en a trois : tri croissant, décroissant, personnalisé (i.e., faisant intervenir plusieurs champs)).
Cliquer sur le bon icône.
Pour revenir à la vue initiale de la base :
Autre méthode : cliquer sur une cellule puis sur l'icône de l'autofiltre (juste à côté de l'icône du filtre, utilisé un peu plus haut). On obtient tous les enregistrements contenant ce champ.
On peut faire un copier-coller de la vue vers un document dans le tableur ou dans le traitement de texte (ce qui permet, par exemple, de faire des publipostages -- mais je n'ai pas encore compris comment...)
On peut créer un formulaire à partir de zéro : on part d'un document vide, dans le traitement de texte, on clique sur le bouton des formulaires (attention : cet icône a deux formes différentes !) et on ouvre le navigateur de formulaires.
On crée un nouveau formulaire et on édite ses propriétés.
On ajoute un label (pour le positionner, il faut cliquer, laisser le bouton de la souris enfoncé, déplacer la souris pour décrire le rectangle qui contiendra le lable et relacher le bouton -- si on le relache tout de suite, on a un label de taille nulle)
puis un champ
dans lequel on met l'une des colonnes de notre table (cliquer avec le bouton droit de la souris pour faire apparaitre le premier menu).
On fait de même pour le reste.
Vu la laideur du résultat, je suggère d'utiliser le pilote automatique, quitte à modifier les détails qui ne conviendraient pas.
En cliquant sur l'intitulé des colonnes, comme avec un tableau, ça ne marche pas... Si on veut trier la liste des livres dans l'ordre alphabétique des auteurs, on peut effectuer une recherche.
On peut définir des requêtes, en SQL.
En cas d'erreur (il peut s'agir d'une erreur de syntaxe, de l'utilisation d'un mot-clef comme nom de colonne (ainsi, j'ai utilisé "date" un peu plus haut) ou des limitations du moteur SQL d'OpenOffice), on obtient souvent le message peu informatif :
Syntax error in SQL expression parse error, unexpected $, expecting NOT or BETWEEN or SQL_TOKEN_IN
Une fois les requêtes définies, on peut les exécuter depuis le "data source browser".
Voici quelques exemples de requêtes (la plupart de marchent pas, car OpenOffice semble avoir des problèmes avec les commandes aggrégatives (GROUP BY)).
Pour avoir la liste des livres, triée dans l'ordre alphabétique des auteurs et, pour chaque auteur, dans l'ordre alphabétique des titres :
SELECT auteur, titre, ISBN, date, genre, prix, remarques FROM Livres ORDER BY auteur, titre;
Nombre de romans japonais :
SELECT COUNT(*) FROM Livres WHERE genre = "roman japonais";
Livres d'un auteur donné :
SELECT auteur, titre, ISBN, date, genre, prix, remarques FROM Livres WHERE auteur LIKE "Murakami%";
(Les exemples suivants ne fonctionnent pas avec OpenOffice/dBase : il faut une vraie base de donnée, du genre MySQL ou PostgreSQL.)
Nombre de livres dans chaque catégorie :
SELECT genre, COUNT(*) AS nombre FROM Livres GROUP BY genre ORDER BY nombre;
Dépense en dictionnaires en 2002 :
SELECT genre, SUM(prix) AS dépense FROM Livres WHERE genre="dictionnaire" AND data LIKE "2002/%" GROUP BY genre;
Nombre de livres par auteur :
SELECT auteur, COUNT(*) AS livres FROM Livres GROUP BY auteur;
Auteurs dont j'ai au moins trois livres (non testé) :
SELECT auteur FROM (SELECT auteur, COUNT(*) AS livres FROM Livres GROUP BY auteur) WHERE livres >= 3;
Livres de ces auteurs (non testé) :
SELECT auteur, titre, ISBN, date, genre, prix, remarques FROM Livres WHERE auteur IN ( SELECT auteur FROM (SELECT auteur, livres=COUNT(*) FROM Livres GROUP BY auteur) WHERE livres >= 3 )
Liste de ces auteurs, classés selon le nombre de livres :
(exercice laissé au lecteur...)
C'est possible, mais c'est encore plus pénible que d'écrire directement le SQL.
Saisir une requête avec un paramètre, i.e., une valeur qui commence par ":".
SELECT * FROM a WHERE Title LIKE :titre
On peut ensuite créer un formulaire à l'aide du pilote automatique.
(Ah, non : on ne peut pas...)
Je crois qu'on est sensé procéder ainsi :
Créer un nouveau formulaire dans lequel on tapera le titre Créer un sous-formulaire pour afficher les résultats Dans ce sous-formulaire : requête: SELECT * FROM a WHERE Titre = :title lier le champ :titre avec le titre tapé plus haut
Avec le type de base de données qu'on a choisi, les bases de données sont nécessairement limitées à une seule table (plus précisémenent : les recherches ne font intervenir qu'une seule table).
Pour les bases requérant un schéma plus complexe, faisant intervenir plusieurs tables, on peut utiliser un vrai SGBD, du genre MySQL ou PostgreSQL (on peut aussi utiliser Adabas, la base de données fournie avec OpenOffice).
http://fr.openoffice.org/Documentation/How-to/Bdd/ http://fr.openoffice.org/Documentation/How-to/Bdd/02odbc_mysqlfr.pdf
Système d'aide (j'ai l'impression qu'il est impossible de changer la taille de la fonte du système d'aide : sur mon écran, c'est trop petit, je ne peux donc pas lire cette documentation...)
Les fichiers d'OpenOffice sont en XML compressé.
% file essai1.sxw essai1.sxw: Zip archive data, at least v2.0 to extract % unzip essai1.sxw ./content.xml ./styles.xml ./meta.xml ./settings.xml ./META-INF ./META-INF/manifest.xml
Exemple de contenu :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE office:document-content PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd"> <!-- Les espaces de nommage --> <office:document-content xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" office:class="text" office:version="1.0"> <office:script/> <!-- La déclaration des fontes utilisées dans le document --> <office:font-decls> <style:font-decl style:name="Nimbus Roman No9 L" fo:font-family="'Nimbus Roman No9 L'" style:font-family-generic="roman" style:font-pitch="variable"/> ... </office:font-decls> <!-- La déclaration des styles utilisés dans le document --> <office:automatic-styles> <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard"> <style:properties style:font-name="Bitstream Cyberbit"/> </style:style> ... <office:automatic-styles> <office:body> <text:sequence-decls> <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/> <text:sequence-decl text:display-outline-level="0" text:name="Table"/> ... </text:sequence-decls> <!-- Enfin, le contenu --> <text:p text:style-name="P1"> Bla bla bla... </text:p> ... </office:body> </office:document-content>
Exercice : écrire un programme qui extraie le texte contenu dans un tel fichier.
s/<.*?>//g (non testé)
Exercice : même question pour récupérer un tableau.
Il est possible d'écrire des macros en Basic ou en Python.
A FAIRE : URL
Exemples :
Tools->Macros On les écrit en StarBasic5 Quand on met des boutons dans un document, on peut leur associer une macro. On peut associer une macro à divers évènements (ouverture d'un fichier, sauvegarde, etc.) : Tools->Configure->Events à des touches : Tools->Configure->Keyboard à des entrées des menus, des icones des barres d'outils, du texte (Insert->Field->Functions->Execute Macro) On peut appeler une macro depuis une feuille de calcul (c'est une fonction normale)
Sections : on peut marquer certains morceaux de texte de sorte qu'on ne puisse pas les modifier (par exemple, dans un modèle), qu'ils ne s'affichent pas à l'impression, qu'il contiennent exactement la même chose qu'une autre section.
Sélectionner la future section Insert->Section etc.
On peut aussi utiliser les sections pour mettre un morceau de texte en colonnes.
Dans un prochain document (peut-être), j'évoquerai les sujets que le n'ai pas abordés ici : les formulaires, le publipostage et la programmation (en basic -- ou plutôt en python).
Vincent Zoonekynd
<zoonek@math.jussieu.fr>
latest modification on Wed Nov 26 12:55:57 CET 2003