> ## 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 4 : analyser les images pour déterminer l’ordre de détection des éléments

> Planifiez l’ordre de recherche des éléments pour le FlexiLayout de facture de l’exemple 3 : analysez la disposition des champs et définissez le groupe InvoiceHeader et ses éléments.

À cette étape, déterminez les points suivants :

* Existe-t-il une logique dans la disposition des champs sur les images ?
* Quels éléments peuvent être utilisés comme éléments de référence pour la détection des champs ?
* Quel ordre de recherche des éléments est le plus approprié ? (À chaque nouvelle étape, vous ne pouvez vous référer qu’aux éléments déjà décrits.)

Analysez les images disponibles.

1. Vous remarquerez que la partie centrale du document contient un tableau présent sur toutes les images.

   <Info>
     Dans FlexiLayout Studio, un tableau est un objet image constitué de fragments composés de lignes et de colonnes séparées visuellement par des lignes de séparation ou des White Gap. Pour plus d’informations, voir [Utiliser les tableaux](/fr/flexi-capture/fls/tables/general-tables).
   </Info>

2. Au-dessus du tableau se trouve un groupe de champs (qui peut être nommé InvoiceHeader) : **Numéro de facture**, **Date de la facture** et **Adresse de livraison**. Notez que le champ **Numéro de facture** est présent sur toutes les images et peut être utilisé comme champ identifiant, tandis que les champs **Date de la facture** et **Adresse de livraison** sont facultatifs.

3. Sous le tableau se trouve un groupe de champs (qui peut être nommé Footer) : **TotalQuantity**, **TotalAmount** et **Pays**. Ces champs ne sont pas non plus présents sur toutes les images.

Commencez par décrire la recherche des éléments dans la partie supérieure du document. Pour détecter les champs supérieurs, créez un groupe logique qui réunit tous les éléments utilisés pour rechercher les champs Numéro de facture, Date de la facture et Adresse de livraison.

1. Créez un élément de type [Group](/fr/flexi-capture/fls/template/elements-compound) et nommez-le **InvoiceHeader**.
   Les champs **Numéro de facture**, **Date de la facture** et **Adresse de livraison** sont toujours situés dans le coin supérieur gauche. De plus, leur ordre est toujours le même : **Adresse de livraison**, puis **Numéro de facture**, puis **Date de la facture** (à condition qu’ils soient présents sur l’image). Recherchez-les dans le même ordre.
2. Pour décrire la recherche des mots-clés correspondant aux noms de champ **Numéro de facture**, **Date de la facture** et **Adresse de livraison**, utilisez des éléments de type [Static Text](/fr/flexi-capture/fls/template/static-text). L’élément **InvoiceHeader** doit contenir les éléments suivants :
   * élément **kwDeliveryAddress** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom du champ **Adresse de livraison**. Pour des instructions détaillées, voir [Étape 5](/fr/flexi-capture/fls/tutorial3/3step5).
   * élément **kwInvoiceNumber** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom du champ **Numéro de facture**. Pour des instructions détaillées, voir [Étape 6](/fr/flexi-capture/fls/tutorial3/3step6).
   * élément **kwDate** de type [Static Text](/fr/flexi-capture/fls/template/static-text), qui correspondra au nom du champ **Date de la facture**. Pour des instructions détaillées, voir [Étape 7](/fr/flexi-capture/fls/tutorial3/3step7).
3. Recherchez les champs **Numéro de facture** et **Date de la facture** sur la même ligne que leurs noms respectifs, à droite de ceux-ci.
   Dans l’élément **InvoiceHeader**, créez les éléments suivants :
   * élément **InvoiceNumber** de type [Character String](/fr/flexi-capture/fls/template/character-chain), qui correspondra au champ **Numéro de facture**. Pour des instructions détaillées, voir [Étape 8](/fr/flexi-capture/fls/tutorial3/3step8).
   * Un élément [Group](/fr/flexi-capture/fls/template/elements-compound) **grDate** pour rechercher le champ **Date de la facture**. Pour des instructions détaillées, voir [Étape 9](/fr/flexi-capture/fls/tutorial3/3step9).

Dans l’élément `InvoiceHeader.grDate`, créez :

* Élément **InvoiceDate** du type [Date](/fr/flexi-capture/fls/template/date), qui correspondra au champ **Date de la facture** pour les images de bonne qualité. Pour des instructions détaillées, voir [Étape 9](/fr/flexi-capture/fls/tutorial3/3step9).
* Élément **InvoiceDateAsString** du type [Character String](/fr/flexi-capture/fls/template/character-chain), qui correspondra au champ **Date de la facture** si le programme ne parvient pas à trouver l’élément **InvoiceDate**. Pour des instructions détaillées, voir [Étape 9](/fr/flexi-capture/fls/tutorial3/3step9).

  <Note>
    Pour plus d’informations sur la recherche de dates dans des images de mauvaise qualité, voir la section [Conseils et astuces](/fr/flexi-capture/fls/tips-tricks/date2).
  </Note>

1. Le champ **Adresse de livraison** comporte plusieurs lignes. Un élément du type [Paragraph](/fr/flexi-capture/fls/template/text-chain) est donc nécessaire pour le détecter. Toutefois, avant de créer cet élément, limitez autant que possible la zone de recherche. Pour définir la limite droite de la zone de recherche, utilisez un élément du type [White Gap](/fr/flexi-capture/fls/template/white-gap). Regroupez ensuite tous les éléments qui décrivent l’emplacement du champ **Adresse de livraison** dans un élément [Group](/fr/flexi-capture/fls/template/elements-compound) :
   * Dans l’élément **InvoiceHeader**, créez un élément Group et nommez-le **grAddress**. Pour des instructions détaillées, voir [Étape 10](/fr/flexi-capture/fls/tutorial3/3step10).

Dans l’élément **grAddress**, créez les éléments suivants :

* Un élément auxiliaire **wgAddressRight** du type [White Gap](/fr/flexi-capture/fls/template/white-gap), qui délimite le champ **Adresse de livraison** sur la droite. Pour des instructions détaillées, voir [Étape 11](/fr/flexi-capture/fls/tutorial3/3step11).
* Un élément **DeliveryAddress** du type [Paragraph](/fr/flexi-capture/fls/template/text-chain), qui correspondra au champ **Adresse de livraison**. Pour des instructions détaillées, voir [Étape 12](/fr/flexi-capture/fls/tutorial3/3step12).
