> ## 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é.

Le champ Date de la facture se situe à droite de son intitulé, au 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ù la date n’est pas correctement reconnue et où la recherche de l’élément Date ne renvoie aucun résultat, ajoutez un élément [Character String](/fr/flexi-capture/fls/template/character-chain) comme solution de secours. Pour définir les propriétés communes à tous ces éléments, créez un élément composé grDate.

<div id="create-the-grdate-group-element">
  ## Créer l’élément de groupe grDate
</div>

<Steps>
  <Step title="Créer l’élément Group">
    Dans l’élément **InvoiceHeader**, créez un élément [Group](/fr/flexi-capture/fls/template/elements-compound) et nommez-le **grDate**.
  </Step>

  <Step title="Définir les contraintes de recherche">
    Cliquez sur l’onglet **Relations**. Tous les éléments qui détectent le champ Date de la facture apparaissent uniquement à droite du nom **kwInvoiceDate** et au même niveau. Définissez donc les relations 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>
  </Step>
</Steps>

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

<Steps>
  <Step title="Créer l’élément Date">
    Dans l’élément `InvoiceHeader.grDate`, créez un élément [Date](/fr/flexi-capture/fls/template/date) et nommez-le **InvoiceDate**.
  </Step>

  <Step title="Spécifier les formats de date">
    Cliquez sur l’onglet **Date** et indiquez tous les formats de date susceptibles d’apparaître dans les images. Considérez que le format est jour, mois, année, que la langue est l’anglais et qu’aucune autre contrainte ne s’applique à 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 Propriétés de SearchElements.InvoiceHeader.grDate.InvoiceDate dans ABBYY FlexiLayout Studio, montrant le format Jour, mois, année sélectionné avec l’anglais comme langue de la date." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_2.png" />
    </Frame>
  </Step>

  <Step title="Ajouter la contrainte de recherche">
    Cliquez sur l’onglet **Advanced**. Le champ **Date de la facture** est facultatif, mais lorsqu’il est présent, il apparaît toujours avec son libellé, à côté de celui-ci. Dans le champ **relations avancées de pré-recherche**, définissez la [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) suivante : recherchez l’objet uniquement si **kwInvoiceDate** a été détecté et recherchez l’objet le plus proche de celui-ci. Dans le [langage FlexiLayout](/fr/flexi-capture/fls/code/general-code) :

    ```text theme={null}
    If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;
    Nearest: InvoiceHeader.kwInvoiceDate;
    ```

    <Tip>
      Vous pouvez également définir la contrainte **Nearest** via l’interface utilisateur graphique de FlexiLayout Studio. Cliquez sur l’onglet **Relations**, sélectionnez **Nearest** et, dans la liste déroulante **To**, sélectionnez **Element**, puis indiquez **kwInvoiceDate** comme **élément de référence**.
    </Tip>
  </Step>

  <Step title="Vérifier la correspondance">
    Associez le FlexiLayout aux images de test et vérifiez que FlexiLayout Studio détecte l’élément sur chaque image comportant un champ **Date de la facture**.
  </Step>
</Steps>

Lors des tests, l’élément n’est pas détecté dans certaines images. Les résultats de pré-reconnaissance montrent 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 résout ce problème. Créez donc un élément alternatif avec des contraintes de recherche moins strictes.

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

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

<Steps>
  <Step title="Créer l’élément Character String">
    Dans l’élément `InvoiceHeader.grDate`, créez un élément [Character String](/fr/flexi-capture/fls/template/character-chain) et nommez-le **InvoiceDateAsString**.
  </Step>

  <Step title="Définir le nombre de caractères">
    Cliquez sur l’onglet **Character String**. Dans le champ **Nombre de caractères**, spécifiez l’intervalle flou suivant : `{-1, 8, 14, INF}`. Il permet d’estimer la longueur de la chaîne : celle-ci est supposée comporter entre 8 et 14 caractères. Toute hypothèse en dehors de cette plage est pénalisée.
  </Step>

  <Step title="Définir la longueur maximale des espaces">
    Définissez **Max space length** sur 20 afin qu’un espace puisse mesurer jusqu’à 20 points. Conservez les valeurs par défaut des autres propriétés.
  </Step>

  <Step title="Ajouter la contrainte de repli">
    Cliquez sur l’onglet **Advanced**. FlexiLayout Studio doit rechercher cet élément uniquement si l’élément **InvoiceDate** n’a pas été détecté. Dans le champ **relations avancées de pré-recherche**, définissez cette [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) :

    ```text theme={null}
    If Not InvoiceDate.IsNull Then DontFind;
    ```
  </Step>

  <Step title="Ajouter la contrainte d’emplacement">
    Le champ **Date de la facture** est facultatif, mais lorsqu’il est présent, il apparaît toujours avec son libellé, à côté de celui-ci. Dans le champ **relations avancées de pré-recherche**, ajoutez cette [contrainte de recherche supplémentaire](/fr/flexi-capture/fls/template/advanced-constraints) : recherchez l’objet uniquement si **kwInvoiceDate** a été détecté et recherchez l’objet le plus proche de celui-ci. Dans le [langage FlexiLayout](/fr/flexi-capture/fls/code/general-code) :

    ```text theme={null}
    If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;
    Nearest: InvoiceHeader.kwInvoiceDate;
    ```
  </Step>

  <Step title="Vérifier la correspondance">
    Associez le FlexiLayout aux images de test et vérifiez que FlexiLayout Studio détecte l’élément sur chaque image contenant un champ **Date de la facture** et génère une hypothèse nulle pour l’élément **InvoiceDate**.
  </Step>

  <Step title="Définir l’élément source du bloc">
    Pour décrire l’emplacement du bloc **InvoiceDate**, sélectionnez **é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 sélectionnez l’élément `InvoiceHeader.grDate` comme élément source.
  </Step>
</Steps>

<Info>
  La région d’un [élément Group](/fr/flexi-capture/fls/template/elements-compound) est l’union des régions de tous ses sous-éléments détectés.
</Info>
