> ## 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 9 : décrire le champ Date de la facture à l’aide des éléments grDate, InvoiceDate et InvoiceDateAsString

> Décrire le champ Date de la facture à l’aide des éléments grDate, InvoiceDate et InvoiceDateAsString, en ajoutant un élément Character String de secours pour les numérisations de mauvaise qualité.

L’analyse des images de test montre que le champ Date de la facture se situe à droite de son intitulé et sur le même niveau horizontal. Utilisez un élément [Date](/fr/flexi-capture/fls/template/date) pour rechercher la date. Pour les images de mauvaise qualité où les dates risquent de ne pas être correctement reconnues et où la recherche de l’élément Date ne donne aucun résultat, créez un élément supplémentaire de type [Character String](/fr/flexi-capture/fls/template/character-chain). Pour définir les propriétés communes à tous ces éléments, créez un élément composé grDate.

Pour créer l’élément grDate :

1. Dans l’élément **InvoiceHeader**, créez un élément de type [Group](/fr/flexi-capture/fls/template/elements-compound) et nommez-le **grDate**.
2. Cliquez sur l’onglet **Relations**.
3. Comme tous les éléments utilisés pour détecter le champ Date de la facture ne peuvent apparaître qu’à droite des mots-clés du nom kwInvoiceDate et sur le même niveau que ce nom, définissez les contraintes de recherche suivantes :
   * À droite de l’élément **kwInvoiceDate**, Offset = 0.
   * Au-dessus de l’élément **kwInvoiceDate**, Offset = -10, limite de l’élément = Bottom.
   * En dessous de l’élément **kwInvoiceDate**, Offset = -10, limite de l’élément = Top.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_9_1.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=b8a549b777e1dab310616794a9f1a470" alt="Capture d’écran de l’onglet Relations de la boîte de dialogue Properties of SearchElements.InvoiceHeader.grDate dans ABBYY FlexiLayout Studio, montrant les relations RightOf, Below et Above avec l’élément kwInvoiceDate." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_1.png" />
</Frame>

Pour créer l’élément InvoiceDate :

1. Dans l’élément `InvoiceHeader.grDate`, créez un élément de type [Date](/fr/flexi-capture/fls/template/date) et nommez-le **InvoiceDate**.
2. Cliquez sur l’onglet **Date**.
3. Dans l’onglet **Date**, indiquez tous les formats de date possibles susceptibles d’apparaître dans les images. Supposons que le format de date soit jour, mois, année, que la langue soit l’anglais et qu’il n’y ait pas d’autres contraintes sur la date.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_9_2.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=2517c3f94b9000ce291c52ff20731544" alt="Capture d’écran de l’onglet Date de la boîte de dialogue Properties of SearchElements.InvoiceHeader.grDate.InvoiceDate dans ABBYY FlexiLayout Studio, montrant le format jour, mois, année sélectionné avec l’anglais comme langue de date." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_2.png" />
</Frame>

1. Cliquez sur l’onglet **Advanced**.

2. Comme le champ **Date de la facture** est facultatif dans ce document, mais que lorsqu’il apparaît, il figure avec son intitulé et se trouve toujours à côté de celui-ci, définissez la [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) suivante dans le champ Relations avancées avant recherche : recherchez l’objet sur l’image uniquement si l’élément **kwInvoiceDate** a été détecté ; recherchez l’objet d’image le plus proche de l’élément **kwInvoiceDate**. Dans le [langage FlexiLayout](/fr/flexi-capture/fls/code/general-code) :
   `If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;`
   `Nearest: InvoiceHeader.kwInvoiceDate;`

   <Tip>
     La contrainte **Nearest** peut également être spécifiée via l’interface utilisateur graphique du programme. Cliquez sur l’onglet **Relations**, sélectionnez **Nearest**, puis, dans la liste déroulante **To:**, sélectionnez **Element** et indiquez **kwInvoiceDate** comme **élément de référence**.
   </Tip>

3. Essayez de mettre le FlexiLayout en correspondance avec les images de test et vérifiez que le programme détecte correctement l’élément dans toutes les images comportant un champ **Date de la facture**.

Lorsque vous testerez, vous verrez que, sur certaines images, l’élément n’a pas été détecté. L’analyse des résultats de préreconnaissance montre que cela est dû au bruit dans la zone du champ. Aucune des propriétés standard de l’élément [Date](/fr/flexi-capture/fls/template/date) ne permet de remédier à la situation ; vous devez donc créer un élément alternatif avec des contraintes de recherche moins strictes.

<Note>
  Pour plus d’informations sur la recherche de dates dans des images de mauvaise qualité, consultez [Recherche de dates après une reconnaissance de qualité élevée ou faible](/fr/flexi-capture/fls/tips-tricks/date2).
</Note>

Pour créer l’élément InvoiceDateAsString :

1. Dans l’élément `InvoiceHeader.grDate`, créez un élément de type [Character String](/fr/flexi-capture/fls/template/character-chain) et nommez-le **InvoiceDateAsString**.

2. Cliquez sur l’onglet Character String.

3. Dans le champ Nombre de caractères, indiquez cet intervalle flou : `{-1, 8, 14, INF}`, qui correspond à une estimation de la longueur de la chaîne. Considérez que la chaîne peut comporter de 8 à 14 caractères. Toute hypothèse en dehors de cette plage sera pénalisée.

4. Définissez la longueur maximale de l’espace sur 20, ce qui signifie que l’espace peut avoir une longueur de 20 dots.

5. Pour les autres propriétés, laissez les valeurs par défaut.

6. Cliquez sur l’onglet Advanced.

7. Comme le programme ne doit rechercher cet élément que si l’élément **InvoiceDate** n’a pas été détecté, définissez la [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) suivante dans le champ Relations avancées avant recherche : recherchez l’objet uniquement si l’élément **InvoiceDate** n’a pas été détecté. En [langage FlexiLayout](/fr/flexi-capture/fls/code/general-code) :
   `If Not InvoiceDate.IsNull Then DontFind;`

8. Comme le champ **Date de la facture** est facultatif dans ce document, mais que, lorsqu’il est présent, il apparaît toujours avec son nom et à côté de celui-ci, définissez la [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) suivante dans le champ Relations avancées avant recherche : recherchez l’objet sur l’image uniquement si l’élément **kwInvoiceDate** a été détecté ; recherchez l’objet d’image le plus proche de l’élément **kwInvoiceDate**. En [langage FlexiLayout](/fr/flexi-capture/fls/code/general-code) :
   `If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;`
   `Nearest: InvoiceHeader.kwInvoiceDate;`

   <Tip>
     La contrainte **Nearest** peut également être définie dans l’interface utilisateur graphique du programme. Cliquez sur l’onglet **Relations**, sélectionnez **Nearest**, puis, dans la liste déroulante **To:**, sélectionnez **Element** et indiquez **kwInvoiceDate** comme **élément de référence**.
   </Tip>

9. Testez la mise en correspondance du FlexiLayout avec les images de test et assurez-vous que le programme détecte correctement l’élément sur toutes les images contenant un champ **Date de la facture** et génère une hypothèse nulle pour l’élément **InvoiceDate**.

10. Pour décrire l’emplacement du bloc **InvoiceDate**, sélectionnez l’option **élément source**, 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 l’élément `InvoiceHeader.grDate` comme élément source.

<Note>
  La région d’un [élément Group](/fr/flexi-capture/fls/template/elements-compound) est calculée en réunissant les régions de tous les sous-éléments détectés.
</Note>
