<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY legal SYSTEM "legal.xml">
<!ENTITY appversion "1.6">
<!ENTITY manrevision "0.2">
<!ENTITY date "20 June 2004">
<!ENTITY app "Glom">
<!-- Information about the entities
       The legal.xml file contains legal information, there is no need to edit the file. 
       Use the appversion entity to specify the version of the application.
       Use the manrevision entity to specify the revision number of this manual.
       Use the date entity to specify the release date of this manual.
       Use the app entity to specify the name of the application. -->]>
<!-- 
      (Do not remove this comment block.)
  Maintained by the GNOME Documentation Project
  http://developer.gnome.org/projects/gdp
  Template version: 2.0 beta
  Template last modified Apr 11, 2002
-->
<!-- =============Document Header ============================= -->
<article id="index" lang="fr">
<!-- please do not change the id; for translations, change lang to -->
<!-- appropriate code -->
  <articleinfo> 
    <title>Manuel d'utilisation de Glom v0.2 </title>       
    <subtitle>pour Glom v1.6</subtitle>

    <copyright lang="en"> 
      <year>2004</year> 
      <holder>Murray Cumming</holder> 
    </copyright> 
<!-- translators: uncomment this:

  <copyright>
   <year>2002</year>
   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
  </copyright>

   -->
<!-- An address can be added to the publisher information.  If a role is 
     not specified, the publisher/author is the same for all versions of the 
     document.  -->
    <publisher> 
      <publishername>Équipe de développement de Glom</publishername> 
    </publisher> 

      <legalnotice id="legalnotice">
         <para>Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de cette licence en suivant ce <ulink type="help" url="ghelp:fdl">lien</ulink> ou dans le fichier COPYING-DOCS fourni avec le présent manuel.</para>
          <para>Ce manuel fait partie de la collection de manuels GNOME distribués selon les termes de la licence de documentation libre GNU. Si vous souhaitez distribuer ce manuel indépendamment de la collection, vous devez joindre un exemplaire de la licence au document, comme indiqué dans la section 6 de celle-ci.</para>
 
         <para>La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de Documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule.</para>
 
         <para lang="en">
           DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
           UNDER  THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
           WITH THE FURTHER UNDERSTANDING THAT:
 
           <orderedlist>
                 <listitem>
                   <para lang="en">DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
                     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
                     IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
                     THAT THE DOCUMENT OR MODIFIED VERSION OF THE
                     DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
                     A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
                     RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
                     OF THE DOCUMENT OR MODIFIED VERSION OF THE
                     DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
                     MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
                     YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
                     CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
                     SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
                     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
                     LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
                     VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
                     EXCEPT UNDER THIS DISCLAIMER; AND
                   </para>
                 </listitem>
                 <listitem>
                   <para lang="en">UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
                        THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
                        CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
                        INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
                        DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
                        OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
                        PARTIES, BE LIABLE TO ANY PERSON FOR ANY
                        DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
                        CONSEQUENTIAL DAMAGES OF ANY CHARACTER
                        INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
                        OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
                        MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
                        LOSSES ARISING OUT OF OR RELATING TO USE OF THE
                        DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
                        EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
                        THE POSSIBILITY OF SUCH DAMAGES.
                   </para>
                 </listitem>
           </orderedlist>
         </para>
   </legalnotice>
 
   <!-- This file  contains link to license for the documentation (GNU FDL), and 
        other legal stuff such as "NO WARRANTY" statement. Please do not change 
	any of this. -->

    <authorgroup> 
      <author role="maintainer" lang="en"> 
		<firstname>Murray</firstname> 
		<surname>Cumming</surname> 
		<affiliation> 
	  		<orgname>Glom Development Team</orgname> 
	  		<address> <email>murrayc@murrayc.com</email> </address> 
		</affiliation> 
      </author> 
      
<!-- This is appropriate place for other contributors: translators,
     maintainers,  etc. Commented out by default.
     
      <othercredit role="translator">
		<firstname>Latin</firstname> 
		<surname>Translator 1</surname> 
		<affiliation> 
	  		<orgname>Latin Translation Team</orgname> 
	  		<address> <email>translator@gnome.org</email> </address> 
		</affiliation>
		<contrib>Latin translation</contrib>
      </othercredit>
-->
    </authorgroup>


<!-- According to GNU FDL, revision history is mandatory if you are -->
<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
<!-- Remember to remove the &manrevision; entity from the revision entries other
-->
<!-- than the current revision. -->
<!-- The revision numbering system for GNOME manuals is as follows: -->
<!-- * the revision number consists of two components -->
<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
<!-- to V3.0, and so on. -->  
    <revhistory>
      <revision lang="en"> 
		  <revnumber>Glom 1.6</revnumber> 
		  <date>20 June 2004</date> 
		  <revdescription> 
			 <para role="author" lang="en">Murray Cumming</para> 
			 <para role="publisher" lang="en">Murray Cumming</para> 
		  </revdescription> 
		</revision>
    </revhistory> 

    <releaseinfo>Ce manuel documente la version 1.6 de Glom</releaseinfo> 
    <legalnotice> 
      <title>Votre avis</title> 
      <para>Pour signaler une anomalie ou émettre une suggestion concernant Glom ou ce manuel, faites une soumission d'anomalie à <ulink url="http://bugzilla.gnome.org" type="http">GNOME Bugzilla</ulink> pour le produit Glom. Merci de faire une recherche sur bugzilla avant de soumettre votre anomalie pour s'assurer qu'elle n'a pas été déjà signalée.</para>
<!-- Translators may also add here feedback address for translations -->
    </legalnotice> 

    <abstract role="description">
      <para>Manuel d'utilisation de Glom.</para>
    </abstract>
  </articleinfo> 

  <indexterm zone="index" lang="en"> 
    <primary>MY-GNOME-APP</primary> 
  </indexterm> 
  <indexterm zone="index" lang="en"> 
    <primary>mygnomeapp</primary> 
  </indexterm>

<!-- ============= Document Body ============================= -->
<!-- ============= Introduction ============================== -->
<!-- Use the Introduction section to give a brief overview of what
     the application is and what it does. -->
  <sect1 id="mrp-introduction"> 
    <title>Introduction</title> 
    <para>Glom vous permet de concevoir et d'utiliser des systèmes de bases de données.</para>
    <!-- TODO: Take text from the website. -->
  </sect1>

<!-- =========== Getting Started ============================== -->
<!-- Use the Getting Started section to describe the steps required
     to start the application and to describe the user interface components
     of the application. If there is other information that it is important
     for readers to know before they start using the application, you should
     also include this information here. 
     If the information about how to get started is very short, you can 
     include it in the Introduction and omit this section. -->

  <sect1 id="glom-getting-started"> 
    <title>Premiers pas</title> 

    <sect2 id="glom-start">
    <title>Lancement de Glom</title>
    <para>Vous pouvez démarrer <application>Glom</application> comme ceci :</para> 
    <variablelist>
    	<varlistentry>
    		<term>Menu <guimenu>Applications</guimenu></term>
    		<listitem>
    		<para lang="en">Choose 
    		<menuchoice>
    		<guisubmenu>Office</guisubmenu>
    		<guimenuitem>Glom</guimenuitem>
    		</menuchoice>. </para>
    		</listitem>
    	</varlistentry>
    </variablelist>
    </sect2>

    <sect2 id="glom-when-start">
    <title>Démarrage de Glom</title>
    <para>Lorsque vous démarrez <application>Glom</application>, la fenêtre suivante s'affiche. Vous pouvez ouvrir un fichier Glom existant ou en créer un nouveau en se basant éventuellement sur l'un des modèles.</para>

    <!-- ==== Figure ==== -->
      <figure id="openproject"> 
	<title>Fenêtre de démarrage de Glom, ouverture d'un fichier existant</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/start_open.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Shows Glom main window used to open an existing Glom file.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
      </figure>
      
        <figure id="newproject"> 
	<title>Fenêtre de démarrage de Glom, création d'un nouveau fichier</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/start_create.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Shows Glom main window used to create a new Glom file.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
      </figure>
    <!-- ==== End of Figure ==== -->
  </sect2>
  </sect1>
<!-- ================ Usage ================================ -->
<!-- Use this section to describe how to use the application to perform the tasks for 
  which the application is designed. -->


    <sect1 id="glom-operator-usage">
    <title>Utilisation de Glom en tant qu'opérateur</title>
    <para>Pour ouvrir un document Glom existant, ouvrez-le à partir du gestionnaire de fichiers ou choisissez Glom à partir du menu Applications, puis sélectionnez le document lorsqu'on vous le demande. Glom demande un nom d'utilisateur et un mot de passe pour accéder à la base de données. Votre administrateur vous fournira votre nom d'utilisateur et votre mot de passe.</para>

    <para lang="en">When you open an existing document, Glom will be in <literal>Operator</literal> <literal>user level</literal>. This user level allows you to find and edit records, but does not allow you to change the fundamental structure of the database.</para>

    <sect2 id="navigation">
    <title>Navigation</title>
    <para>Chaque base de données possède plusieurs tables. Pour examiner une autre table, choisissez <literal>Tables</literal> dans le menu <literal>Navigation</literal>. Puis cliquez deux fois sur la table ou sélectionnez-la et cliquez sur le bouton <literal>Ouvrir</literal>.</para>

    <figure id="operator-navigation-tables"> 
	<title>Navigation vers une table</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_tables.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Navigating to a Table.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure>

    </sect2>

    <sect2 id="viewing-and-entering-data">
    <title>Affichage et saisie de données</title>
    <para>Lorsque vous êtes en <literal>mode données</literal>, vous pouvez afficher ou saisir des informations soit dans la vue <literal>Liste</literal> ou dans la vue <literal>Détails</literal>.</para>

      <sect3 id="the-list-view">
      <title>La vue Liste</title>
      <para>La vue liste affiche plusieurs enregistrement à la fois et habituellement n'affiche que les champs les plus importants.</para>
      <para>Quand vous saisissez des données dans un champ, celles-ci sont enregistrées immédiatement dans la base de données dès que vous avez fini de le saisir. S'il s'agit d'un champ date ou heure, le format des données est automatiquement contrôlé.</para> 
      <para>Pour créer un nouvel enregistrement, il suffit de cliquer sur le bouton <literal>Ajouter</literal> ou de commencer à taper dans un champ de la dernière ligne vide. Un nouvel enregistrement est alors créé avec des champs vides prêts à être remplis.</para>

      <figure id="operator-data-list"> 
	<title>La vue Liste</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_data_list.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>The List View.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
      </figure>

      <para>Pour trier les enregistrements, il suffit de cliquer sur l'en-tête d'une colonne. Par exemple, pour afficher des factures dans l'ordre chronologique vous pouvez cliquer sur la colonne « date », puis cliquer à nouveau pour les afficher dans l'ordre inverse.</para>
      </sect3>

      <sect3 id="the-details-view">
      <title>La vue Détails</title>
      <para>La vue Détails n'affiche qu'un seul enregistrement et affiche en général tous les champs dans un ordre approprié.</para>
      <para>Quand vous saisissez des données dans un champ, celles-ci sont enregistrées immédiatement dans la base de données dès que vous avez fini de le saisir. S'il s'agit d'un champ date ou heure, le format des données est automatiquement contrôlé.</para>
      <para>Pour créer un nouvel enregistrement, il suffit de cliquer sur le bouton <literal>Ajouter</literal>. Un nouvel enregistrement est alors créé avec des champs vides prêts à être remplis.</para>

  <figure id="operator-data-details"> 
	<title>La vue Détails</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_data_details.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>The Details View.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
      </figure>

      </sect3>

    </sect2>

    <sect2 id="finding-data">
    <title>Recherche de données</title>
    <para>Sélectionnez le <literal>mode Rechercher</literal> dans le menu Mode. Les champs dans les vues liste et détails sont maintenant vides et un bouton « Rechercher » apparaît en bas de la fenêtre.</para>
    <para>Saisissez une information ou une partie d'information dans un champ pour trouver les enregistrements qui contiennent cette information. Par exemple, saisissez Jim dans le champ nom pour trouver les enregistrements qui contiennent « Jim » ou « Jimmy » dans leur nom.</para> 
    <para>Quand vous appuyez sur le bouton <literal>Rechercher</literal>, Glom recherche les enregistrements puis les affiche. Si un seul enregistrement est trouvé, celui-ci est alors affiché dans la vue détails. Si plusieurs enregistrements sont trouvés, ils sont affichés dans la vue liste.</para>
    <!-- TODO: screenshot -->
    </sect2>

    <sect2 id="glom-operator-printing-reports">
    <title>Impression de rapports</title>
    <para>Si le développeur de la base de données a défini des rapports pour une table, ils apparaissent dans le menu <literal>Rapports</literal>. Il suffit de choisir le rapport dans le menu pour générer le rapport. Si vous avez effectué une recherche précédemment, le rapport ne contient que les données actuellement trouvées, sinon toutes les données sont présentes. Souvenez-vous que chaque table possède son propre rapport, il peut donc être nécessaire de basculer vers la bonne table pour obtenir un rapport particulier.</para>

     <figure id="operator-report-result"> 
	<title>Un rapport</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_report_result.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>A report.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
      </figure>

    </sect2>


    </sect1>

    <sect1 id="glom-developer-usage">
    <title>Utilisation de Glom en tant que développeur</title>
    <para lang="en">When you create a new document, Glom will be in the <literal>Developer</literal> <literal>user level</literal>. You can also change to the Developer user level after opening an existing document, with the <literal>User Level</literal> menu. Glom will only allow this if the administrator has allowed it.</para>

    <sect2 id="adding-tables">
    <title>Ajout de tables</title>
    <para>Vous pouvez voir la liste des tables existantes en choisissant <literal>Tables</literal> dans le menu <literal>Navigation</literal>. Cette fenêtre apparaît également après une connexion à un serveur de base de données et après avoir créé un nouveau document. Pour créer une nouvelle table, cliquez sur le bouton <literal>Ajouter</literal> et saisissez le nom de la nouvelle table. Glom suggère un titre convivial pour cette table. Les <literal>opérateurs</literal> voient ce titre plutôt que le nom réel de la table. Vous pouvez également marquer une table comme <literal>masquée</literal> pour les opérateurs. Par exemple, les opérateurs peuvent voir les « lignes de facture » comme des enregistrements reliés à la table « factures » mais ils ne doivent jamais être capables d'aller directement vers la table « lignes de facture ».</para>
    <!-- TODO: screenshot -->
    <para>Vous pouvez également spécifier une table comme <literal>table par défaut</literal>. Cette table sera affichée à chaque fois qu'un opérateur ouvre un document existant, sans lui demander de sélectionner une table dans la liste.</para>
    <para>Vous pouvez également utiliser cette fenêtre pour renommer une table existante.</para>
    <para>Cliquez sur le bouton <literal>Ouvrir</literal> pour afficher la table sélectionnée.</para>
    </sect2>

    <sect2 id="editing-fields">
    <title>Modification des champs</title>
    <para>Choisissez <literal>Champs</literal> dans le menu <literal>Développeur</literal>. Cela permet d'afficher la liste des champs de la table. Les nouvelles tables possèdent automatiquement un champ clé primaire mais vous pouvez modifier ce champ si nécessaire.</para>
    <para>Cliquez sur le bouton <literal>Ajouter</literal> pour ajouter un nouveau champ, puis saisissez le nom du nouveau champ. Glom propose un titre approprié et convivial pour ce champ, mais vous pouvez le modifier. Les <literal>opérateurs</literal> voient ce titre plutôt que le nom réel du champ.</para> 
    <para>Pour fournir plus de détails sur un champ, sélectionnez-le et cliquez sur le bouton <literal>Détails</literal>.</para>

    <figure id="developer-editing-fields"> 
	<title>Modification des champs</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_fields.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing the table's fields.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure>


    <sect3 id="primary-keys">
    <title>Clés primaires</title>
    <para>Chaque table doit posséder une et une seule <literal>clé primaire</literal>. La valeur de ce champ est unique ce qui signifie que chaque valeur dans ce champ n'apparaît que dans un seul enregistrement de la table. Par exemple, chaque enregistrement dans une table « clients » possède un « numéro de client ». Cette valeur est utilisée pour faire référence à ce client dans les autres tables telles que les enregistrements « Projets » et « Factures ». Voir la section <link linkend="sec-developer-relationships">Création de relations</link> pour apprendre comment relier des tables entre elles.</para>
    </sect3> 

    <sect3 id="field-types">
    <title>Types de champs</title>
    <para lang="en">Glom offers a few simple field types:
    <orderedlist>
<listitem><simpara lang="en">Number</simpara></listitem>
<listitem><simpara lang="en">Text</simpara></listitem>
<listitem><simpara lang="en">Date</simpara></listitem>
<listitem><simpara lang="en">Time</simpara></listitem>
<listitem><simpara lang="en">Boolean - either true or false</simpara></listitem>
<listitem><simpara lang="en">Image</simpara></listitem>
</orderedlist>
    </para>
    </sect3>
  
    <sect3 id="calculated-fields">
    <title>Champs calculés</title>
    <para>Les valeurs de champs peuvent être calculées en fonction d'autres champs en utilisant le langage de programmation Python. Ce calcul doit être une implémentation d'une fonction Python qui doit renvoyer une valeur. La valeur renvoyée est utilisée comme valeur de champ. Cette valeur est recalculée à chaque fois qu'une des sources de champ change. À FAIRE : cela ne fonctionne pour l'instant que pour les valeurs par défaut et vous ne pouvez pas encore utiliser des valeurs de champ dans le calcul.</para>
    <para>Vous pouvez également utiliser des calculs pour spécifier une valeur par défaut pour les champs en sélectionnant l'onglet <literal>Valeur par défaut</literal> dans la fenêtre <literal>Détails des champs</literal>, en cliquant sur la case à cocher <literal>Valeur calculée</literal> puis en saisissant une formule Python. Vous pouvez tester ce calcul dans la fenêtre <literal>Édition</literal>.</para>  
    </sect3>

    </sect2>

    <sect2 id="arranging-layouts">
    <title>Arrangement de dispositions</title>
    <para>Chaque table possède sa vue <literal>Liste</literal> et <literal>Détails</literal> et, par défaut, tous les champs de la table sont affichés par ordre de création. Vous pouvez modifier la disposition en choisissant <literal>Disposition</literal> dans le menu <literal>Développeur</literal>.</para>

    <sect3 id="arranging-the-list-view">
    <title>Mise en page de la vue liste</title>
    <para>Dans la vue <literal>Liste</literal>, vous pouvez définir l'ordre des colonnes de champs et le masquage éventuel de certains champs.</para>

    <figure id="developer-layout-list"> 
	<title>Modification de l'agencement d'une liste</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_layout_list.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing the list layout.</phrase> 
	    </textobject>
	  </mediaobject> 
	</screenshot> 
     </figure>
    </sect3>

    <sect3 id="arranging-the-details-view">
    <title>Mise en page de la vue détails</title>
    <para>Dans la vue <literal>détails</literal>, il est possible de créer des groupes de champs et de leur donner des titres. Vous pouvez alors mettre des champs dans ces groupes et définir l'ordre d'apparition des champs dans ces groupes. Vous pouvez également définir l'ordre des groupes. Par exemple, dans la table « Contacts », vous pouvez créer un groupe « Nom » et mettre les champs « titre », « prénom » et « nom » dans ce groupe. Vous pouvez avoir d'autres groupes pour les champs « Adresse ».</para>

    <figure id="developer-layout-details"> 
	<title>Modification de l'agencement des détails</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_layout_details.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing the Details Layout.</phrase> 
	    </textobject>
	  </mediaobject> 
	</screenshot> 
     </figure>
    </sect3>

    </sect2>

    <sect2 id="sec-developer-relationships">
    <title>Création de relations</title>
    <para>Les tables dans les bases de données sont souvent reliées entre elles. Par exemple, une table « Factures » peut avoir un champ « Numéro de client ». Une valeur dans ce champ se réfère à un enregistrement de la table « Clients » avec la même valeur. Glom peut afficher des informations supplémentaires telles que le nom du client à partir de cet enregistrement relié. Il peut également afficher une liste de plusieurs enregistrement liés. Par exemple, plusieurs « Lignes de factures » reliées à un enregistrement dans « Facture ».</para>
    <para>Pour créer des relations, choisissez <literal>Relations</literal> dans le menu <literal>Développeur</literal>. La liste des relations existantes s'affiche. Cliquez sur le bouton <literal>Ajouter</literal> pour créer une nouvelle relation et saisissez un nom pour celle-ci. Choisissez ensuite un champ dans la table actuelle et un champ d'une autre table auquel il sera relié. Cette relation effectue la recherche de tous les enregistrements de l'autre table pour lesquels les valeurs des deux champs sont égales.</para>
    <!-- TODO: screenshot -->
   <para lang="en">You can use the relationship in the following places.

<orderedlist>
<listitem><simpara lang="en">To show a related field on the List or Details view.</simpara></listitem>
<listitem><simpara lang="en">To show a list of related records on the Details view.</simpara></listitem>
<listitem><simpara lang="en">To lookup a value from a field in a related record. For instance, to copy the current price of a "Product" into the "Price" field of an "Invoice Line" record.</simpara></listitem>
<listitem><simpara lang="en">To calculate a field value.</simpara></listitem>
</orderedlist>
   </para>
   </sect2> 

   <sect2 id="users-administration">
   <title>Gestion des utilisateurs</title>
   <para>Pour définir les <literal>opérateurs</literal> qui peuvent utiliser votre base de données et pour indiquer leurs droits d'accès aux différentes tables, choisissez <literal>Utilisateurs</literal> dans le menu <literal>Développeur</literal>.</para>
    <!-- TODO: screenshot -->
   </sect2>

   <sect2 id="translations">
   <title>Traductions</title>
   <para>L'interface utilisateur Glom (et ce document) est traduit dans plusieurs langues comme vous avez dû le voir si vous utilisez un ordinateur avec une interface utilisateur non anglaise. De plus, Glom affiche et comprend automatiquement les nombres et les dates en fonction des conventions actuelles de l'utilisateur local. Par exemple, un utilisateur aux U.S.A. peut saisir un prix comme 1.99 et une date comme 1/13/2008, mais un utilisateur allemand de la même base de données les verra comme 1,99 et 13.1.2008.</para>
   <para>Cependant, le système Glom que vous avez créé contient aussi du texte qui doit être traduit s'il est utilisé par des personnes qui parlent une autre langue. Par exemple, vous devez fournir des traductions pour les titres de vos tables, champs et rapports. Tous ces éléments textuels peuvent être listés si vous choisissez <literal>Traductions</literal> dans le menu <literal>Développeur</literal>. Dans cette fenêtre, vous pouvez indiquer la langue utilisée pour le texte original et saisir des traductions pour chaque élément de texte pour des langues supplémentaires. Quand le système Glom est ouvert par un utilisateur de cette langue, les éléments de texte sont affichés dans l'interface utilisateur.</para>

   <!-- TODO: Update this screenshot -->
   <figure id="developer-translations"> 
	<title>Traductions</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_translations.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Translations.</phrase> 
	    </textobject>
	  </mediaobject> 
	</screenshot> 
     </figure>

    <para>Les traducteurs expérimentés sont probablement plus habitués au format de fichier .po, ou vous souhaitez peut-être utiliser les nombreux outils qui s'appliquent au format de fichier .po. En utilisant le bouton <literal>Exporter</literal>, vous pouvez créer un fichier .po pour l'exploiter dans un outil séparé ou pour l'expédier à un traducteur. Vous pouvez ensuite importer la traduction effectuée en utilisant le bouton <literal>Importer</literal>.</para>  

   </sect2>

   <sect2 id="defining-reports">
   <title>Définition de rapports</title>

   <sect3 id="adding-or-editing-reports">
   <title>Ajout et édition de rapports</title>

   <para>Glom peut produire des rapports pour afficher des champs spécifiques d'un ensemble d'enregistrements, triés et regroupés. Par exemple, un magasin peut avoir besoin d'un rapport listant tous les produits vendus en un mois, groupés par type de produits et triés par prix dans chaque groupe. Chaque table possède ses propres rapports accessibles par l'opérateur dans le menu <literal>Rapports</literal>.</para>
   <para>Pour définir un rapport ou modifier la définition d'un rapport existant, choisissez <literal>Rapports</literal> dans le menu <literal>Développeur</literal>.</para>
   <figure id="developer-editing-reports"> 
	<title>Création et édition de rapports</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_reports.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Creating or editing reports.</phrase> 
	    </textobject>
	  </mediaobject> 
	</screenshot> 
     </figure>

    <para>Notez que chaque rapport possède un numéro d'identification (ID) ainsi qu'un nom convivial. Ceci permet à votre rapport d'avoir un titre traduit s'il est utilisé sur un ordinateur configuré dans une autre langue.</para>

    </sect3>

    <sect3 id="editing-a-report">
    <title>Édition d'un rapport</title>

    <para lang="en">A Glom report has three areas:
    <orderedlist>
      <listitem><simpara lang="en">The Header, which appears at the start of the report</simpara></listitem>
      <listitem><simpara lang="en">The Main area, in which the records and summary lines are shown, with the actual data from the database.</simpara></listitem>
      <listitem><simpara lang="en">The Footer, which appears at the end of the report.</simpara></listitem>
    </orderedlist>
    </para>

    <para>À l'intérieur d'une zone, telle que la partie principale, vous pouvez ajouter des <literal>Éléments</literal> de rapport tels que des champs, textes ou images. Ceux-ci apparaissent habituellement par ligne à l'impression du rapport avec une ligne pour chaque enregistrement. Dans le cas le plus simple, cela ressemble beaucoup à la vue liste de Glom. Vous pouvez ajouter des éléments à votre rapport en les sélectionnant dans la liste <literal>Éléments disponibles</literal> puis en cliquant sur le bouton <literal>Ajouter</literal>. L'élément est alors ajouté à la liste <literal>Éléments</literal> dans la zone sélectionnée.</para>
    <para>Pour fournir des détails aux éléments, tels que le texte ou l'image à afficher ou pour choisir le champ à afficher, sélectionnez l'élément dans la liste <literal>Éléments</literal> puis cliquez sur le bouton <literal>Modifier</literal>. Vous pouvez également indiquer le format du champ en cliquant sur le bouton <literal>Format</literal>, tout comme vous le faites pour définir l'apparence dans la vue détails ou liste.</para>

    <figure id="developer-editing-reports-details"> 
	<title>Édition d'un rapport</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_reports_details.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing a report.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure>

    <para>Certains éléments peuvent contenir d'autres éléments et posséder des propriétés supplémentaires pour contrôler la manière dont leurs sous-éléments sont présentés. Par exemple, l'élément <literal>Groupé par</literal> regroupe les enregistrements selon un champ. Par exemple, un rapport sur des produits peut regrouper la liste des produits par type de produit. Vous pouvez même ajouter un second sous-groupe à l'intérieur de l'élément principal <literal>Groupé par</literal> en sélectionnant votre élément <literal>Groupé par</literal> de premier niveau dans la liste <literal>Éléments</literal> pendant que vous ajoutez un nouvel élément <literal>Groupé par</literal> de la liste <literal>Éléments disponibles</literal>. Par exemple, vous pouvez regrouper vos produits par fabriquant à l'intérieur de chaque groupe de type de produit.</para>
    <para>Pour définir le champ par lequel les enregistrements doivent être regroupés, sélectionnez votre élément <literal>Groupé par</literal> dans la liste <literal>Éléments</literal> puis cliquez sur le bouton <literal>Modifier</literal>. Vous pouvez alors choisir le champ par lequel les enregistrements doivent être regroupés et sélectionner les champs par lesquels ces enregistrements doivent être triés dans le groupe. Vous pouvez également indiquer des champs supplémentaires à afficher sur la ligne de titre du groupe. Par exemple, vous pouvez regrouper les produits par numéro de fabricant mais également afficher le nom du fabricant.</para>

    <figure id="developer-editing-reports-group_by"> 
	<title>Modification d'un élément Groupé par</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_reports_group_by.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing a report.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure>

   <para>L'élément <literal>Groupe vertical</literal> peut contenir d'autres choses. Par exemple, il vous permet d'arranger les champs les uns en dessous des autres au lieu de l'un après les autres sur une même ligne. Ceci est utile pour regrouper des champs reliés tels que des lignes d'adresses ou juste pour condenser plus d'informations dans les lignes d'enregistrements sur le rapport.</para>
   
   <figure id="developer-editing-reports-vertical_group"> 
	<title>Un rapport avec des Groupes verticaux</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_reports_vertical_group.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>A Report with Vertical Groups.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure> 

   <para>Quand vous avez terminé, cliquez sur le bouton <literal>Fermer</literal> pour enregistrer la définition du rapport. Votre rapport peut maintenant être choisi dans le menu <literal>Rapports</literal>. Voir la section <link linkend="glom-operator-printing-reports">Impression de rapports</link> pour plus de détails.</para>



   </sect3>

   </sect2>
  
  </sect1>

<!-- =============Dialogs ================================= -->
<!-- This section contains the help to all dialogs that contain help button -->

<sect1 id="dialogs">
<title>Boîtes de dialogue</title>

<sect2 id="dialog_existing_or_new">
<title>Boîte de dialogue : boîte de dialogue initiale</title>
<para>Cette boîte de dialogue permet à l'utilisateur de choisir un document existant ou de créer un nouveau document. Les documents existants peuvent être choisis dans la liste de documents récemment ouverts ou dans la boîte de dialogue de sélection de fichier. Les documents peuvent également être ouverts à travers le réseau si d'autres utilisateurs exécutent Glom sur le réseau local. Enfin un nouveau document peut être créé soit en ouvrant un fichier modèle qui contient déjà quelques tables initiales et des enregistrements ou en générant un document vide.</para>
</sect2>

<sect2 id="dialog_new_database">
<title>Boîte de dialogue : nouvelle base de données</title>
<para/>
</sect2>

<sect2 id="dialog_error_create_database">
<title>Boîte de dialogue : création de base de données</title>
<para/>
</sect2>

<sect2 id="dialog_connection">
<title>Boîte de dialogue : connexion</title>
<para>Cette boîte de dialogue requiert un nom d'utilisateur et un mot de passe pour la connexion au serveur de base de données. Il ne s'agit normalement pas du même nom d'utilisateur et mot de passe avec lequel vous vous connectez à votre système. Tous les systèmes Glom nécessitent un serveur de base de données sur lequel les données réelles sont enregistrées. Si le serveur de base de données ne tourne pas sur l'ordinateur local (« localhost ») alors vous devez fournir un nom d'hôte réseau du type « glomserver.openismus.com » (votre nom d'hôte sera certainement différent).</para>
<para>C'est l'administrateur système qui fournit les détails de la connexion à la base de données.</para>
<para>Si vous êtes l'administrateur système, consultez la page Web <ulink url="http://www.glom.org/wiki/index.php?title=Initial_Postgres_Configuration" type="http">Configuration Postgres </ulink> [en anglais] de Glom pour obtenir de l'aide sur l'installation et la configuration d'un serveur de base de données.</para>
</sect2>

<sect2 id="dialog_error_connection">
<title>Boîte de dialogue : erreur de connexion</title>
<para>Cette boîte de dialogue est affichée si Glom n'a pas pu se connecter au serveur de base de données spécifié. Soit le serveur de base de données ne tourne pas sur l'hôte spécifié soit le nom d'utilisateur et le mot de passe n'ont pas été acceptés par le serveur de base de données. Voir la section <link linkend="dialog_connection">Boîte de dialogue de connexion</link> pour plus de détails.</para>

<para/>
</sect2>

<sect2 id="dialog_database_preferences">
<title>Boîte de dialogue : préférences de base de données</title>
<para/>
</sect2>

<sect2 id="dialog_change_language">
<title>Boîte de dialogue : changement de langue</title>
<para/>
</sect2>

<sect2 id="window_textobject">
<title>Fenêtre : objet texte</title>
<para/>
</sect2>

<sect2 id="window_imageobject">
<title>Fenêtre : objet image</title>
<para/>
</sect2>

<sect2 id="dialog_notebook">
<title>Boîte de dialogue : pagination</title>
<para/>
</sect2>

<sect2 id="dialog_data_invalid_format">
<title>Boîte de dialogue : format de données non valide</title>
<para/>
</sect2>

<sect2 id="dialog_relationship_overview">
<title>Boîte de dialogue : aperçu des relations</title>
<para/>
</sect2>

<sect2 id="window_groups">
<title>Fenêtre : groupes</title>
<para/>
</sect2>

<sect2 id="dialog_groupby_sort_fields">
<title>Boîte de dialogue : grouper par champs triés</title>
<para/>
</sect2>

<sect2 id="dialog_groupby_secondary_fields">
<title>Boîte de dialogue : grouper par champs secondaires</title>
<para/>
</sect2>

<sect2 id="window_button_script">
<title>Fenêtre : script de bouton</title>
<para/>
</sect2>

<sect2 id="window_field_calculation">
<title>Fenêtre : calcul de champ</title>
<para/>
</sect2>

<sect2 id="dialog_new_group">
<title>Boîte de dialogue : nouveau groupe</title>
<para/>
</sect2>

<sect2 id="dialog_choose_user">
<title>Boîte de dialogue : choix d'un utilisateur</title>
<para/>
</sect2>

<sect2 id="dialog_user">
<title>Boîte de dialogue : utilisateur</title>
<para/>
</sect2>

<sect2 id="dialog_translation_identify_original">
<title>Boîte de dialogue : identification de l'original de traduction</title>
<para/>
</sect2>

<sect2 id="dialog_translation_copy">
<title>Boîte de dialogue : copie de traduction</title>
<para/>
</sect2>

<sect2 id="dialog_choose_date">
<title>Boîte de dialogue : choix d'une date</title>
<para/>
</sect2>

<sect2 id="dialog_import_csv">
<title>Boîte de dialogue : importation dans une table</title>
<para>Cette boîte de dialogue permet à l'utilisateur d'importer un fichier CSV (valeurs séparées par des virgules) dans la table de base de données actuelle. Elle montre les premières lignes du fichier à importer et permet à l'utilisateur de sélectionner le champ de base de données correspondant à chaque colonne du fichier CSV. Pour les clés primaires incrémentées automatiquement, le champ clé primaire ne peut pas être utilisé comme champ de destination, mais dans les autres cas, un champ clé primaire doit absolument correspondre à une colonne du fichier.</para>
</sect2>

</sect1>

<!-- ============= Bugs ================================== -->
<!-- This section is optional and is commented out by default. 
     You can use it to describe known bugs and limitations of the 
	  program if there are any - please be frank and list all
     problems you know of. 
  
  <sect1 id="mayapp-bugs">
  <title>Known Bugs and Limitations</title>
  <para> </para>
 </sect1>
-->
<!-- ============= About ================================== -->
<!-- This section contains info about the program (not docs), such as
      author's name(s), web page, license, feedback address. This
      section is optional: primary place for this info is "About.." box of
      the program. However, if you do wish to include this info in the
      manual, this is the place to put it. Alternatively, you can put this information in the title page.-->
 <sect1 id="Glom-about"> 
    <title>À propos de Glom</title> 
    <para>Glom est maintenu par des volontaires de la communauté Glom et GNOME. Pour obtenir plus d'informations à propos de Glom, visitez le <ulink url="http://www.glom.org/" type="http">site Web de Glom</ulink>.</para>
    <para>Pour signaler une anomalie ou émettre une suggestion concernant cette application ou ce manuel, vous pouvez les soumettre en utilisant <ulink url="http://bugzilla.gnome.org" type="help">bugzilla</ulink>.</para>

    <para>Une autre excellente source d'informations est la <ulink url="http://www.glom.org" type="http">liste de diffusion</ulink> de Glom.</para>

    <para>Ce programme est distribué selon les termes de la Licence Publique Générale GNU, tels que publiés par la Free Software Foundation ; soit la version 2 de cette licence ou (à votre choix) toute version ultérieure. Vous trouverez une copie de cette licence en suivant ce <ulink type="help" url="ghelp:gpl">lien</ulink> ou dans le fichier COPYING fourni avec la source du code de ce programme.</para>
  </sect1>

  <appendix id="sec-concepts">
  <title>Concepts</title>
  <para lang="en">Glom is easy to use, but you must understand the following basic concepts.
<orderedlist>
<listitem><simpara lang="en"><literal>Database</literal>: Each Glom document allows access to one database.</simpara></listitem>
<listitem><simpara lang="en"><literal>Table</literal>: Each database contains several tables, such as "Customers" and "Invoices" tables.</simpara></listitem>
<listitem><simpara lang="en"><literal>Field</literal>: Each table has several fields, such as "Customer ID", "First Name", and "Date of Birth" fields. In other documents and applications, fields are sometimes called "Columns"</simpara></listitem>
<listitem><simpara lang="en"><literal>Records</literal>: Each table contains several records, each of which has values for each of the fields. For instance, the "Customers" table will have a record for each customer. In other documents and applications, records are sometimes called <literal>Rows</literal>.</simpara></listitem>
<listitem><simpara lang="en"><literal>Relationships</literal>: Each table might be related to other tables, via fields in both tables. For instance, a "Customers" table could have a relationship to the "Invoices" table, so that people could see all the invoices for that customer. Only developers need to understand this concept. In other documents and applications, relationships are sometimes called "Joins".</simpara></listitem> 
</orderedlist>
  </para>
  </appendix>

  <appendix id="sec-calculated-fields">
  <title>Champs calculés et scripts de boutons</title>
  <para>Les champs calculés et les scripts de boutons utilisent le langage de programmation Python. Le calcul ou le script est la réalisation d'une fonction dont la signature vous est fournie.</para>

     <figure id="developer-editing-fields-calculated"> 
	<title>Édition de la définition d'un champ calculé</title> 
	<screenshot> 
	  <mediaobject lang="en"> 
	    <imageobject><imagedata fileref="figures/glom_design_fields_dialog_calculated.png" format="PNG"/> 
	    </imageobject>
	    <textobject> 
	      <phrase>Editing the definition of a calculated field.</phrase> 
	    </textobject> 
	  </mediaobject> 
	</screenshot> 
     </figure>

  <sect1 id="field-values">
  <title>Valeurs de champ</title>
  <para lang="en">For instance, <programlisting lang="en">record["name_first"]</programlisting> is the value of the name_first field in the current record.</para>
  </sect1>

  <sect1 id="related-records">
  <title>Enregistrements reliés</title>
  <para lang="en">For instance, <programlisting lang="en">record.related["location"]</programlisting> provides the related records for the current record.</para>

  <sect2 id="single-related-records">
  <title>Enregistrements reliés unique</title>
  <para lang="en">For relationships that specify a single record, you can get the value of a field in that record. For instance, <programlisting lang="en">record.related["location"]["name"]</programlisting> is the value of the name field in the table indicated by the location relationship (often called location::name).</para>
  </sect2>

  <sect2 id="multiple-related-records">
  <title>Enregistrements reliés multiples</title>
  <para lang="en">For relationships that specify multiple records, you can use the aggregate functions (sum, count, average) to get overall values. For instance, <programlisting lang="en">record.related["invoice_lines"].sum("total_price")</programlisting>.</para>
  </sect2>

  </sect1>

  <sect1 id="testing-for-empty-values">
  <title>Test de valeurs vides</title>
  <para>La manière de tester les valeurs vides dépend du type de champ :</para>

  <sect2 id="non-text-fields">
  <title>Champs non-texte</title>
  <para>Les champs non-texte peuvent être vides, signifiant que l'utilisateur n'a saisi aucune valeur dans le champ. Par exemple, Glom ne suppose pas qu'une valeur vide dans un champ numérique signifie 0.</para>
  <para>Vous pouvez tester si un champ est vide en utilisant le « None » de Python. Par exemple :</para>
  <para>
  <programlisting>
  if(record["numero_identification"] == None):
    return "Aucun contact"
  else:
    return record.related["contacts"]["nom_complet"]
  </programlisting>
  </para>
  <para>Vous pourriez également tester s'il existe des enregistrements reliés. Par exemple :</para>
  <para>
  <programlisting>
  if(record.related["contacts"] == None):
    return "Aucun Contact"
  else:
    return record.related["contacts"]["nom_complet"]
  </programlisting>
  </para>
  </sect2>

  <sect2 id="text-fields">
  <title>Champs texte</title>
  <para>Pour les champs texte, vous devez vérifier que les chaînes ne sont pas vides. Il n'est pas possible dans Glom de faire la distinction entre des chaînes vides et l'absence d'une chaîne parce que ce n'est pas avantageux de le faire. Par exemple :</para>
  <para>
  <programlisting>
  if(record["nom_complet"] == ""):
    return "Aucun nom"
  else:
    return record["nom_complet"]
  </programlisting>
  </para>
  </sect2>
</sect1>


<sect1 id="using-the-full-pygda-api">
  <title>Utilisation de l'API pygda complète</title>
  <para>Le module pygda est une API Python de l'API libgda. L'attribut <literal>connection</literal> d'un enregistrement fournit une gda.connection qui peut être utilisée pour accéder à la base de données actuelle de manière directe. Ceci vous permet d'exécuter n'importe quelle requête SQL, par exemple lire des données de la base de données avec SELECT ou modifier des valeurs dans la base de données avec un UPDATE. Notez que la connexion est déjà ouverte ce qui vous évite le travail difficile de spécification des détails de connexion.</para>
  <para>L'attribut <literal>table_name</literal> de l'enregistrement fournit également le nom de la table actuelle.</para>
  <para>Cet exemple permet de lire toutes les données de la table actuelle et d'afficher les valeurs sur le terminal :</para>
  <para>
  <programlisting>
# Utilise la connexion à la base de données actuelle 
# pour récupérer toutes les données de la table actuelle.
#
# record.connection est un objet gda.connection déjà ouvert,
# nous évitant de nous occuper de l'ouverture de la connexion,
# ou même de connaître le nom de la base de données.

query = "SELECT * FROM %s" % record.table_name
data_model = gda.gda_execute_select_command(record.connection, query)

rows = data_model.get_n_rows()
columns = data_model.get_n_columns()
print "    Nombre de colonnes: ", columns

for i in range(columns):
    print "      colonne ", i;
    print "        nom =", data_model.get_column_title(i)

    # Recherche s'il s'agit de la clé primaire :
    field = data_model.describe_column(i)
    if field.get_primary_key():
        print "        (clé primaire)"

    print "\n";
     
print "    Nombre de lignes : ", rows

for row_index in range(rows):
    print "      ligne ", row_index;

    for col_index in range(columns):
        print "        valeur =", data_model.get_value_at(col_index, row_index).get()

    print "\n";
  </programlisting>
  </para>
  </sect1>

  </appendix>

 
</article>
