> ## 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, vous pouvez rechercher le champ tableau de facture en créant un élément Table :

1. **En-tête** du tableau. Comme décidé précédemment, indiquez les noms des colonnes à l’aide d’éléments auxiliaires déjà détectés.
2. **Pied** du tableau. Comme décidé précédemment, le **pied** est défini à l’aide de 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.
3. Zone de recherche du tableau. Vous pouvez limiter 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>

Pour créer un élément InvoiceTable :

1. Dans l’arborescence **SearchElements**, créez un élément de type Table et nommez-le **InvoiceTable**.
2. Cliquez sur l’onglet Columns.
3. Cliquez sur **Select** pour sélectionner le bloc **InvoiceTable** créé précédemment à l’[étape 3](/fr/flexi-capture/fls/tutorial4/4step3) comme bloc à rechercher.
4. Spécifiez les paramètres de recherche des colonnes du tableau :
   * Dans la liste des colonnes, sélectionnez **Reference** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwReference` détecté précédemment. Pour cela, sélectionnez Use found element as column name, puis 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" /> et sélectionnez `TableHeader.kwReference`.
   * Dans la liste des colonnes, sélectionnez **Désignation** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwDesignation` détecté précédemment.
   * Dans la liste des colonnes, sélectionnez **Unit** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwUnit` détecté précédemment.
   * Dans la liste des colonnes, sélectionnez **Quantity** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwQuantity` détecté précédemment.
   * Dans la liste des colonnes, sélectionnez **Prix unitaire** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwUnitPrice` détecté précédemment.
   * Dans la liste des colonnes, sélectionnez **Total** et cliquez sur le bouton Propriétés.
     Pour le nom de cette colonne, utilisez l’élément `TableHeader.kwTotal` détecté précédemment.
5. Cliquez sur l’onglet Order.
6. Comme les colonnes recherchées peuvent être séparées les unes des autres par d’autres colonnes (par exemple, **ExtraQtyTag**), mais que leur ordre est toujours fixe (**Désignation** d’abord, puis **Prix unitaire**, puis **Total**), sélectionnez la règle d’ordre des colonnes, cliquez sur Add..., puis ajoutez les colonnes dans l’ordre suivant : **Désignation** \<\< **Prix unitaire** \<\< **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 la règle d’ordre des colonnes 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>

7. Cliquez sur l’onglet en-tête. L’en-tête du tableau est nécessaire, mais aucune contrainte supplémentaire n’est imposée ; conservez donc les valeurs par défaut.
8. Cliquez sur l’onglet pied. Utilisez l’élément `InvoiceFooter.Paragraph` détecté précédemment pour la partie finale du tableau. Sélectionnez l’option Use found element as pied, 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 des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant l’option Use found element as pied 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>

9. Cliquez sur l’onglet Rows.
10. Comme les cellules de certaines colonnes peuvent contenir plusieurs lignes, vous devez spécifier des colonnes principales pour séparer les lignes. Sélectionnez Use master columns to detect rows.

    Spécifiez d’abord la colonne **Total**, car cette colonne contient toujours des données et, pour chaque enregistrement du tableau, elle comporte une ligne de données.

    Si cette colonne n’est pas détectée sur l’image, spécifiez les colonnes **Prix unitaire** et **Quantity** comme option suivante 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 Rows des propriétés de l’élément Table InvoiceTable dans ABBYY FlexiLayout Studio, montrant Use master columns to detect rows sélectionné avec les colonnes Total, Unit Price et Quantity spécifiées comme colonnes principales pour la séparation des lignes." width="431" height="455" data-path="images/flexi-capture/fls/tutorial4_8_3_.PNG" />
</Frame>

11. Sélectionnez l’onglet Relations. Comme les colonnes du tableau qui nous intéressent se trouvent à gauche du nom de la colonne **Sales**, ajoutez les contraintes de recherche suivantes :

    * Left of l’élément `TableHeader.kwSales`, Offset = 0

    <Tip>
      Pour les images de mauvaise qualité (par exemple, s’il y a du bruit entre le corps et le pied de tableau du tableau, ou s’il n’y a ni en-tête ni pied de tableau), vous pouvez spécifier les limites supérieure et inférieure du tableau. Dans ce cas, vous pouvez utiliser 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 :

      * En dessous de 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>

12. Associez le FlexiLayout aux images de test.
    Vous remarquerez que le programme détecte correctement l’élément Table sur toutes les images, mais que, sur certaines d’entre elles, la colonne **Quantity** inclut du texte superflu provenant de la colonne précédente.
    Pour distinguer les données correctes de la colonne **Quantity** des données non pertinentes, spécifiez le type de contenu de cette colonne.

13. Ouvrez la boîte de dialogue **Properties** de l’élément Table **InvoiceTable**.
    Cliquez sur l’onglet Columns, ouvrez la boîte de dialogue Propriétés de la colonne **Quantity**, puis sélectionnez l’option Check content type. Dans Type of column content, sélectionnez Number.

<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 Quantity dans ABBYY FlexiLayout Studio, montrant l’option Check content type sélectionnée avec Number choisi comme type de contenu de colonne." width="462" height="377" data-path="images/flexi-capture/fls/tutorial4_8_4_.PNG" />
</Frame>

14. Maintenant, si vous associez le FlexiLayout aux images, vous verrez que la colonne **Quantity** ne contient que des chiffres, comme requis.
15. De même, spécifiez un contenu de type Devise pour les colonnes **prix unitaire** et **Total**.
16. Pour spécifier 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" /> et spécifiez **InvoiceTable** comme élément source.
