> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exemple 4. Étape 8 : élément Table, élément InvoiceTable

> Combinez les éléments préparés dans un élément Table InvoiceTable qui localise le tableau de facture multipage, avec des colonnes principales et des types de contenu de colonne.

Maintenant que tous les préparatifs sont terminés, recherchez le champ **tableau de facture** en créant un élément [Table](/fr/flexi-capture/fls/tables/general-tables). Le tableau comporte trois parties à décrire :

* **En-tête** du tableau – Indiquez les noms des colonnes à l’aide des éléments auxiliaires déjà détectés.
* **Pied** du tableau – Utilisez l’élément **Paragraph** obligatoire déjà détecté du groupe **InvoiceFooter**, qui identifie le début de la partie finale. Cet élément a été décrit comme étant le plus proche du bas du tableau.
* **Zone de recherche** du tableau – Limitez la zone de recherche à droite à l’aide du nom de la dernière colonne, **Sales**, qui n’est nécessaire à aucune autre fin.

<div id="create-the-invoicetable-element">
  ## Créer l’élément InvoiceTable
</div>

<Steps>
  <Step title="Créer l’élément Tableau">
    Dans l’arborescence **SearchElements**, créez un élément [Table](/fr/flexi-capture/fls/tables/general-tables) nommé **InvoiceTable**.
  </Step>

  <Step title="Sélectionnez le bloc de tableau">
    Cliquez sur l’onglet **Columns**, puis sur **Select** afin de sélectionner le bloc **InvoiceTable** créé à l’[étape 3](/fr/flexi-capture/fls/tutorial4/4step3) comme bloc à rechercher.
  </Step>

  <Step title="Attribuer les noms de colonnes">
    Spécifiez les paramètres de recherche des colonnes du tableau. Pour chaque colonne, sélectionnez-la dans la liste, cliquez sur **Propriétés...**, sélectionnez **Utiliser l'élément trouvé comme nom de colonne**, cliquez sur <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="bouton Parcourir" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" />, puis sélectionnez l'élément précédemment détecté :

    | Colonne           | Élément utilisé comme nom de colonne |
    | :---------------- | :----------------------------------- |
    | **Référence**     | `TableHeader.kwReference`            |
    | **Désignation**   | `TableHeader.kwDesignation`          |
    | **Unité**         | `TableHeader.kwUnit`                 |
    | **Quantité**      | `TableHeader.kwQuantity`             |
    | **Prix unitaire** | `TableHeader.kwUnitPrice`            |
    | **Total**         | `TableHeader.kwTotal`                |
  </Step>

  <Step title="Définir l’ordre des colonnes">
    Cliquez sur l’onglet **Order**. Les colonnes recherchées peuvent être séparées par d’autres colonnes (par exemple, **ExtraQtyTag**), mais leur ordre est toujours fixe (d’abord **Designation**, puis **Unit Price**, puis **Total**). Sélectionnez donc **Rules for column order**, cliquez sur **Add...**, puis ajoutez les colonnes dans cet ordre : `Designation << Unit Price << Total`.

    <Frame>
      <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_8_1_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=966aae17c9b42b5787008df2964196c7" alt="Capture d’écran de l’onglet Order des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant l’option Rules for column order sélectionnée avec les colonnes Designation, Unit Price et Total ajoutées dans l’ordre requis." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_8_1_.PNG" />
    </Frame>
  </Step>

  <Step title="Conservez les valeurs par défaut de l’en-tête">
    Cliquez sur l’onglet **En-tête**. Un en-tête de tableau est requis, mais aucune contrainte supplémentaire ne s’applique ; conservez donc les valeurs par défaut.
  </Step>

  <Step title="Définir le pied de tableau">
    Cliquez sur l’onglet **Pied de tableau**. Utilisez l’élément `InvoiceFooter.Paragraph` précédemment détecté pour la dernière partie du tableau. Sélectionnez l’option **Utiliser l’élément trouvé comme pied de tableau**, cliquez sur <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Bouton Parcourir" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" />, puis sélectionnez l’élément `InvoiceFooter.Paragraph`.

    <Frame>
      <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_8_2_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=e7a855370a3d7b6766311f63e86cd3b8" alt="Capture d’écran de l’onglet Pied de tableau des propriétés de l’élément de tableau InvoiceTable dans ABBYY FlexiLayout Studio, montrant l’option Utiliser l’élément trouvé comme pied de tableau sélectionnée avec l’élément InvoiceFooter.Paragraph choisi comme pied de tableau." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_8_2_.PNG" />
    </Frame>
  </Step>

  <Step title="Définir les colonnes principales des lignes">
    Cliquez sur l’onglet **Lignes**. Comme les cellules de certaines colonnes peuvent contenir plusieurs lignes, définissez des colonnes principales pour séparer les lignes, puis sélectionnez **Utiliser des colonnes principales pour détecter les lignes**.

    Commencez par spécifier la colonne **Total**, car elle contient toujours des données et comporte une ligne de données par enregistrement du tableau. Si cette colonne n’est pas détectée dans l’image, spécifiez les colonnes **Prix unitaire** et **Quantité** comme solution de secours pour la séparation des lignes. Utilisez le bouton <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Bouton Parcourir" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" /> pour sélectionner ces colonnes.

    <Frame>
      <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_8_3_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=d99574eef5ef1d5016f41d5be1001b5a" alt="Capture d’écran de l’onglet Lignes des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant l’option Utiliser des colonnes principales pour détecter les lignes sélectionnée, avec les colonnes Total, Prix unitaire et Quantité définies comme colonnes principales pour séparer les lignes." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_8_3_.PNG" />
    </Frame>
  </Step>

  <Step title="Limiter le tableau de droite">
    Cliquez sur l’onglet **Relations**. Les colonnes du tableau recherchées se trouvant à gauche du nom de colonne **Sales**, ajoutez la contrainte de recherche suivante :

    * À gauche de l’élément `TableHeader.kwSales`, **Offset** = 0.

    <Tip>
      Pour les images de mauvaise qualité (par exemple, en cas de bruit entre le corps et le pied de tableau, ou d’en-tête ou de pied de tableau manquant), vous pouvez définir les limites supérieure et inférieure du tableau. Utilisez l’élément **kwDesignation** comme limite supérieure et l’élément **Paragraph** comme limite inférieure. Dans l’onglet **Relations**, ajoutez les contraintes de recherche suivantes :

      * Sous la limite supérieure de l’élément **kwDesignation**, **Offset** = -50, **Reference boundary** = **Top**.
      * Au-dessus de l’élément **Paragraph**, **Offset** = -50, **Reference boundary** = **Bottom**.
    </Tip>
  </Step>

  <Step title="Associer et vérifier la colonne Quantité">
    Associez le FlexiLayout aux images de test. FlexiLayout Studio détecte correctement l’élément de tableau dans toutes les images, mais dans certaines, la colonne **Quantity** contient du texte superflu provenant de la colonne précédente. Pour distinguer les données pertinentes des données non pertinentes dans la colonne **Quantity**, spécifiez le type de contenu de cette colonne.
  </Step>

  <Step title="Définir le type de contenu de Quantity">
    Ouvrez la boîte de dialogue **Propriétés** de l’élément de tableau **InvoiceTable**. Cliquez sur l’onglet **Colonnes**, ouvrez la boîte de dialogue **Propriétés** de la colonne **Quantité**, puis sélectionnez l’option **Vérifier le type de contenu**. Dans **Type du contenu de la colonne**, sélectionnez **Nombre**.

    <Frame>
      <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial4_8_4_.PNG?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=c646cd956bf3591f3505ebe3395c886e" alt="Capture d’écran des propriétés de la colonne Quantité dans ABBYY FlexiLayout Studio, montrant l’option Vérifier le type de contenu sélectionnée avec Nombre comme type de contenu de la colonne." width="462" height="377" data-path="images/flexi-capture/fls/tutorial4_8_4_.PNG" />
    </Frame>
  </Step>

  <Step title="Définir les types de contenu pour la devise">
    Exécutez à nouveau le FlexiLayout et vérifiez que la colonne **Quantité** ne contient que des chiffres, comme requis. De même, spécifiez le contenu **Devise** pour les colonnes **prix unitaire** et **Total**.
  </Step>

  <Step title="Définir l’élément source du bloc">
    Pour définir l’emplacement du bloc **InvoiceTable**, sélectionnez l’option **Élément source**, cliquez sur <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Bouton Parcourir" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" />, puis indiquez **InvoiceTable** comme élément source.
  </Step>
</Steps>
