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

# Ejemplo 3. Paso 9: Describa el campo Fecha de la factura con los elementos grDate, InvoiceDate e InvoiceDateAsString

> Describa el campo Fecha de la factura con los elementos grDate, InvoiceDate e InvoiceDateAsString, agregando una alternativa de cadena de caracteres para escaneos de mala calidad.

El campo Fecha de la factura se encuentra a la derecha de su nombre, en el mismo nivel horizontal. Use un elemento [fecha](/es/flexi-capture/fls/template/date) para buscar la fecha. Para imágenes de mala calidad en las que la fecha no se reconoce correctamente y la búsqueda del elemento de fecha no arroja resultados, agregue un elemento [cadena de caracteres](/es/flexi-capture/fls/template/character-chain) como alternativa. Para especificar las propiedades comunes a todos estos elementos, cree un elemento compuesto grDate.

<div id="create-the-grdate-group-element">
  ## Cree el elemento de grupo grDate
</div>

<Steps>
  <Step title="Cree el elemento de grupo">
    En el elemento **InvoiceHeader**, cree un elemento [grupo](/es/flexi-capture/fls/template/elements-compound) y asígnele el nombre **grDate**.
  </Step>

  <Step title="Establezca las restricciones de búsqueda">
    Haga clic en la pestaña **Relations**. Todos los elementos que detectan el campo Fecha de la factura aparecen únicamente a la derecha del nombre **kwInvoiceDate** y en el mismo nivel, por lo que debe establecer las siguientes relaciones:

    * **A la derecha de** el elemento **kwInvoiceDate**, **Desplazamiento** = 0
    * **Encima de** el elemento **kwInvoiceDate**, **Desplazamiento** = -10, **Límite del elemento** = **Bottom**
    * **Debajo de** el elemento **kwInvoiceDate**, **Desplazamiento** = -10, **Límite del elemento** = **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="Captura de pantalla de la pestaña Relations del cuadro de diálogo Properties of SearchElements.InvoiceHeader.grDate en ABBYY FlexiLayout Studio, que muestra las relaciones RightOf, Below y Above con el elemento kwInvoiceDate." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_1.png" />
    </Frame>
  </Step>
</Steps>

<div id="create-the-invoicedate-element">
  ## Cree el elemento InvoiceDate
</div>

<Steps>
  <Step title="Cree el elemento de fecha">
    En el elemento `InvoiceHeader.grDate`, cree un elemento de fecha [fecha](/es/flexi-capture/fls/template/date) y asígnele el nombre **InvoiceDate**.
  </Step>

  <Step title="Especifique los formatos de fecha">
    Haga clic en la pestaña **fecha** y especifique todos los formatos de fecha que puedan aparecer en las imágenes. Suponga que el formato es día, mes, año; el idioma es inglés y no hay otras restricciones para la fecha.

    <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="Captura de pantalla de la pestaña fecha del cuadro de diálogo Properties de SearchElements.InvoiceHeader.grDate.InvoiceDate en ABBYY FlexiLayout Studio, que muestra seleccionado el formato Day, month, year y English como idioma de la fecha." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_2.png" />
    </Frame>
  </Step>

  <Step title="Agregue la restricción de búsqueda">
    Haga clic en la pestaña **Advanced**. El campo **Fecha de la factura** es opcional, pero, cuando aparece, siempre se muestra junto a su nombre. En el campo **relación avanzada de prebúsqueda**, configure la siguiente [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints): busque el objeto solo si se detectó **kwInvoiceDate** y busque el objeto más cercano a este. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):

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

    <Tip>
      También puede configurar la restricción **Nearest** mediante la interfaz gráfica de usuario de FlexiLayout Studio. Haga clic en la pestaña **Relations**, seleccione **Nearest** y, en la lista desplegable **To**, seleccione **Element**. A continuación, especifique **kwInvoiceDate** como **Reference element**.
    </Tip>
  </Step>

  <Step title="Verifique la coincidencia">
    Haga coincidir el FlexiLayout con las imágenes de prueba y confirme que FlexiLayout Studio detecta el elemento en todas las imágenes que contienen un campo **Fecha de la factura**.
  </Step>
</Steps>

Al realizar la prueba, algunas imágenes no detectan el elemento. Los resultados de prerreconocimiento muestran que el ruido en el área del campo es la causa. Ninguna de las propiedades estándar del elemento de fecha [fecha](/es/flexi-capture/fls/template/date) lo soluciona, por lo que debe crear un elemento alternativo con restricciones de búsqueda menos estrictas.

Para obtener más información sobre cómo buscar fechas en imágenes de mala calidad, consulte [Búsqueda de fechas tras el reconocimiento de alta o baja calidad](/es/flexi-capture/fls/tips-tricks/date2).

<div id="create-the-invoicedateasstring-element">
  ## Cree el elemento InvoiceDateAsString
</div>

<Steps>
  <Step title="Cree el elemento de cadena de caracteres">
    En el elemento `InvoiceHeader.grDate`, cree un elemento de cadena de caracteres [Character String](/es/flexi-capture/fls/template/character-chain) y asígnele el nombre **InvoiceDateAsString**.
  </Step>

  <Step title="Establezca el recuento de caracteres">
    Haga clic en la pestaña **Character String**. En el campo **recuento de caracteres**, especifique este intervalo difuso: `{-1, 8, 14, INF}`. Esto permite estimar la longitud de la cadena en un rango de 8 a 14 caracteres. Se penalizará cualquier hipótesis fuera de este intervalo.
  </Step>

  <Step title="Establezca la longitud máxima del espacio">
    Establezca **Max space length** en 20, de modo que un espacio pueda tener una longitud de 20 puntos. Deje los valores predeterminados de las demás propiedades.
  </Step>

  <Step title="Agregue la restricción alternativa">
    Haga clic en la pestaña **Advanced**. FlexiLayout Studio debe buscar este elemento solo si no se detectó el elemento **InvoiceDate**. En el campo **relación avanzada de prebúsqueda**, establezca esta [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints):

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

  <Step title="Agregue la restricción de ubicación">
    El campo **Fecha de la factura** es opcional, pero, cuando aparece, siempre se muestra junto a su nombre. En el campo **relación avanzada de prebúsqueda**, agregue esta [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints): busque el objeto solo si se detectó **kwInvoiceDate** y seleccione el objeto más cercano a él. En el [FlexiLayout language](/es/flexi-capture/fls/code/general-code):

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

  <Step title="Verifique la coincidencia">
    Haga coincidir FlexiLayout con las imágenes de prueba y confirme que FlexiLayout Studio detecta el elemento en todas las imágenes que contienen un campo **Fecha de la factura** y genera una hipótesis nula para el elemento **InvoiceDate**.
  </Step>

  <Step title="Establezca el elemento de origen del bloque">
    Para describir la ubicación del bloque **InvoiceDate**, seleccione **Source element**, haga clic en <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Botón Examinar" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" />, y seleccione el elemento `InvoiceHeader.grDate` como elemento de origen.
  </Step>
</Steps>

<Info>
  La región de un [elemento de grupo](/es/flexi-capture/fls/template/elements-compound) es la unión de las regiones de todos sus subelementos detectados.
</Info>
