> ## 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 3. Étape 26 : Détection de l’élément tableau à l’aide d’un élément InvoiceTable

> Assembler l’élément tableau InvoiceTable : configurez les colonnes, les règles d’ordre, l’en-tête, le pied de tableau et les colonnes principales pour détecter de manière fiable le tableau de facture.

Maintenant que toutes les préparations sont terminées, vous pouvez rechercher le champ de tableau Invoice Table. Commencez par décrire un élément de type [tableau](/fr/flexi-capture/fls/tables/general-tables) :

1. **Décrivez l’en-tête du tableau.** Comme décidé à l’[Étape 13](/fr/flexi-capture/fls/tutorial3/3step13), les noms des colonnes **Reference** et **désignation** sont décrits à l’aide de mots-clés (**tableau** element → boîte de dialogue Propriétés → onglet Columns → dialog box of column Propriétés), tandis que les noms des colonnes **Quantité**, **Prix unitaire** et **Total** sont détectés à l’aide des éléments auxiliaires décrits précédemment.
2. **Décrivez le pied de tableau.** Comme décidé à l’[Étape 13](/fr/flexi-capture/fls/tutorial3/3step13), le pied de tableau est détecté à l’aide de l’élément décrit précédemment, qui utilise des mots-clés et des expressions pour détecter le début du pied de tableau.
3. **Décrivez la zone de recherche du tableau.** Utilisez le nom de colonne **Sales** pour restreindre la zone de recherche sur la droite.

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

Pour créer l’élément **InvoiceTable** :

1. Créez un élément de type [tableau](/fr/flexi-capture/fls/tables/general-tables) et nommez-le **InvoiceTable**.
2. Cliquez sur l’onglet **Colonnes**.
3. Cliquez sur **Select** et indiquez le bloc **InvoiceTable** décrit précédemment comme bloc à détecter par l’élément **InvoiceTable**. Pour des instructions détaillées, consultez [Étape 3](/fr/flexi-capture/fls/tutorial3/3step3).
4. Sélectionnez la colonne **Reference** et cliquez sur **Propriétés...**. Le mot-clé **Reference** sera utilisé pour rechercher ce nom de colonne ; laissez donc les valeurs par défaut.
5. Sélectionnez la colonne **Désignation** et cliquez sur **Propriétés...**. Le mot-clé **Désignation** sera utilisé pour rechercher ce nom de colonne ; laissez donc les valeurs par défaut.
6. Sélectionnez la colonne **Quantity** et cliquez sur **Propriétés...**. Utilisez l’élément détecté précédemment `TableHeader.kwQuantity` pour trouver ce nom de colonne. Sélectionnez l’option **Use found element as column name** et 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" /> pour sélectionner l’élément `TableHeader.kwQuantity`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_1.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=bbf25b0bc0343d5c5c77393f46a0f892" alt="Capture d’écran de la boîte de dialogue Propriétés de la colonne Quantity dans ABBYY FlexiLayout Studio, avec l’option Use found element as column name sélectionnée et définie sur SearchElements.TableHeader.kwQuantity." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_1.png" />
</Frame>

1. Sélectionnez la colonne **UnitPrice** et cliquez sur **Propriétés...**. Utilisez l’élément détecté précédemment `TableHeader.kwUnitPrice` pour trouver ce nom de colonne. Sélectionnez l’option **Use found element as column name** et 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" /> pour sélectionner l’élément `TableHeader.kwUnitPrice`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_2.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=b659e5d615579177f79b061be15ed775" alt="Capture d’écran de la boîte de dialogue Propriétés de la colonne UnitPrice dans ABBYY FlexiLayout Studio, avec l’option Use found element as column name sélectionnée et définie sur SearchElements.TableHeader.kwUnitPrice." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_2.png" />
</Frame>

1. Sélectionnez la colonne **Total** et cliquez sur **Propriétés...**. Utilisez l’élément détecté précédemment `TableHeader.kwTotal` pour trouver ce nom de colonne. Sélectionnez l’option **Use found element as column name** et 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" /> pour sélectionner l’élément `TableHeader.kwTotal`.
2. Cliquez sur l’onglet **Ordre**.
3. D’autres colonnes peuvent se trouver entre les colonnes recherchées (par exemple **Unit**), mais celles-ci sont toujours disposées dans l’ordre suivant : **Reference**, **Désignation**, **Quantity**, **prix unitaire**, **Total**. Sélectionnez l’option **Rules for column order**, puis cliquez sur **Add...** et indiquez l’ordre de colonnes suivant : `Reference << Designation << Quantity << Unit Price << Total`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_3.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=b471ef36cc0fb3b34730fd749baf7c1b" alt="Capture d’écran de l’onglet Ordre de la boîte de dialogue Propriétés de SearchElements.InvoiceTable dans ABBYY FlexiLayout Studio, avec l’option Rules for column order sélectionnée et une règle répertoriant Reference, désignation, Quantity, prix unitaire et Total dans cet ordre." width="601" height="507" data-path="images/flexi-capture/fls/tutorial3_26_3.png" />
</Frame>

Dans la boîte de dialogue **Modifier la règle d’ordre des colonnes**, déplacez les colonnes dans la liste **Colonnes sélectionnées** dans l’ordre **Reference**, **Désignation**, **Quantity**, **UnitPrice**, **Total**.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_4.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=dc2e164e6c1d5179ae56fb3614cf780b" alt="Capture d’écran de deux boîtes de dialogue Modifier la règle d’ordre des colonnes dans ABBYY FlexiLayout Studio, montrant les colonnes disponibles déplacées dans la liste Colonnes sélectionnées dans l’ordre Reference, désignation, Quantity, UnitPrice, Total." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_4.png" />
</Frame>

1. Cliquez sur l’onglet **En-tête**. L’en-tête est nécessaire, mais aucune contrainte de recherche n’est ajoutée ; laissez donc les valeurs par défaut.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_5.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=bb84010302437fe5fe0423ab877b9fcb" alt="Capture d’écran de l’onglet En-tête de la boîte de dialogue Propriétés de SearchElements.InvoiceTable dans ABBYY FlexiLayout Studio, montrant les options Look for header et Header is optional sélectionnées avec les options de recherche par défaut." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_5.png" />
</Frame>

1. Cliquez sur l’onglet **pied de tableau**. Utilisez l’élément précédemment détecté `Footer.kwFooter` pour détecter le pied de tableau. Sélectionnez l’option **Use found element as footer**, 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" /> pour sélectionner l’élément `Footer.kwFooter`.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_6.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=70b7018b068999171888a3ff75203a36" alt="Capture d’écran de l’onglet pied de tableau de la boîte de dialogue Propriétés of SearchElements.InvoiceTable dans ABBYY FlexiLayout Studio, avec l’option Use found element as footer sélectionnée et définie sur SearchElements.Footer.kwFooter." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_6.png" />
</Frame>

1. Cliquez sur l’onglet **Rows**.
2. Comme certaines colonnes du tableau peuvent contenir des entrées sur plusieurs lignes, vous devez spécifier une colonne principale pour détecter les lignes. Sélectionnez l’option **Use master columns to detect rows**.

   Spécifiez la colonne **Total** comme colonne principale, car cette colonne contient toujours des données et chaque entrée correspond à une seule ligne du tableau. Si cette colonne n’est pas détectée dans un document, spécifiez respectivement les colonnes **Quantity** et **prix unitaire** comme colonnes principales secondaire et tertiaire. 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 définissez cet ordre pour les colonnes principales.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_7.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=444df4f217866eba9a7be6842251d490" alt="Capture d’écran de l’onglet Rows de la boîte de dialogue Propriétés of SearchElements.InvoiceTable dans ABBYY FlexiLayout Studio, avec l’option Use master columns to detect rows sélectionnée et Total, Quantity et UnitPrice répertoriés comme colonnes principales." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_7.png" />
</Frame>

1. Cliquez sur l’onglet **Relations**. Comme les colonnes recherchées se trouvent à gauche du début du nom de la colonne **Sales** (avec un faible écart), définissez la contrainte de recherche suivante :

   * **À gauche de** l’élément `TableHeader.kwSales`,
   * **Décalage** = -40, **Limite de référence** = **Left**.

   <Tip>
     Lors du choix des valeurs de décalage, vous pouvez analyser les propriétés géométriques (c’est-à-dire la taille et les limites) des objets de référence et des objets recherchés détectés lors de la pré-reconnaissance. Sinon, ces valeurs sont déterminées par tâtonnements.
   </Tip>

2. Effectuez la mise en correspondance du FlexiLayout avec les images de test. Vous constaterez que le programme a correctement détecté l’élément tableau sur toutes les images où il apparaît.

   Mais sur certaines images, la colonne **Quantity** inclut aussi des artefacts indésirables provenant de la colonne précédente. Pour séparer les données utiles du bruit, spécifiez le type de contenu pouvant apparaître dans la colonne.

3. Ouvrez la boîte de dialogue **Propriétés** de l’élément **InvoiceTable**. Cliquez sur l’onglet **Columns**, ouvrez la boîte de dialogue **Propriétés** de la colonne **Quantity** et sélectionnez l’option **Check content type**. Sélectionnez **Number** dans la liste déroulante **Type of column content**.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_8.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=f9b88f0e33915159a4be7cddf32467c2" alt="Capture d’écran de la boîte de dialogue Propriétés of column Quantity dans ABBYY FlexiLayout Studio, avec l’option Check content type sélectionnée et Number choisi dans la liste déroulante Type of column content." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_8.png" />
</Frame>

1. Essayez d’effectuer la mise en correspondance du FlexiLayout avec les images de test et assurez-vous que la colonne **Quantity** ne contient aucune donnée indésirable.
2. Pour décrire l’emplacement du bloc **InvoiceTable**, sélectionnez l’option **Source element**, 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 spécifiez l’élément **InvoiceTable** comme élément source.
