> ## 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: Descripción del 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 análisis de las imágenes de prueba revela que el campo Fecha de la factura se encuentra a la derecha de su nombre y 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 las fechas pueden no reconocerse correctamente y la búsqueda del elemento Date no arroje resultados, cree un elemento adicional de tipo [cadena de caracteres](/es/flexi-capture/fls/template/character-chain). Para especificar las propiedades comunes a todos estos elementos, cree un elemento compuesto grDate.

Para crear el elemento grDate:

1. En el elemento **InvoiceHeader**, cree un elemento de tipo [grupo](/es/flexi-capture/fls/template/elements-compound) y asígnele el nombre **grDate**.
2. Haga clic en la pestaña Relations.
3. Como todos los elementos utilizados para detectar el campo Fecha de la factura solo pueden aparecer a la derecha de la palabra clave **kwInvoiceDate** y en el mismo nivel que esta, establezca las siguientes restricciones de búsqueda:
   * A la derecha del elemento **kwInvoiceDate**, Desplazamiento = 0.
   * Encima del elemento **kwInvoiceDate**, Desplazamiento = -10, Límite del elemento = Bottom.
   * Debajo del 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>

Para crear el elemento InvoiceDate:

1. En el elemento `InvoiceHeader.grDate`, cree un elemento de tipo [fecha](/es/flexi-capture/fls/template/date) y asígnele el nombre **InvoiceDate**.
2. Haga clic en la pestaña Date.
3. En la pestaña Date, especifique todos los formatos de fecha posibles que puedan aparecer en las imágenes. Suponga que el formato de fecha es día, mes, año, que el idioma es inglés y que 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 Date del cuadro de diálogo Properties of SearchElements.InvoiceHeader.grDate.InvoiceDate en ABBYY FlexiLayout Studio, que muestra el formato día, mes, año seleccionado con inglés como idioma de la fecha." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_9_2.png" />
</Frame>

1. Haga clic en la pestaña Advanced.

2. Como el campo **Fecha de la factura** es opcional en este documento, pero cuando aparece lo hace junto con su nombre y siempre se encuentra al lado de este, establezca la siguiente [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints) en el campo relación avanzada de prebúsqueda: busque el objeto en la imagen solo si se ha detectado el elemento **kwInvoiceDate**; busque el objeto de imagen más cercano al elemento **kwInvoiceDate**. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):
   `If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;`
   `Nearest: InvoiceHeader.kwInvoiceDate;`

   <Tip>
     La restricción **Nearest** también puede especificarse mediante la interfaz gráfica de usuario del programa. Haga clic en la pestaña **Relations**, seleccione **Nearest** y, en la lista desplegable **To:**, seleccione **Element** y especifique **kwInvoiceDate** como **Reference element**.
   </Tip>

3. Pruebe el emparejamiento del FlexiLayout con las imágenes de prueba y asegúrese de que el programa detecte correctamente el elemento en todas las imágenes que contienen un campo **Fecha de la factura**.

Cuando haga la prueba, verá que, en algunas imágenes, el elemento no se ha detectado. El análisis de los resultados del prerreconocimiento revela que esto ha ocurrido debido al ruido en el área del campo. Ninguna de las propiedades estándar del elemento [fecha](/es/flexi-capture/fls/template/date) puede utilizarse para solucionar esta situación, por lo que debe crear un elemento alternativo con restricciones de búsqueda menos estrictas.

<Note>
  Para obtener más información sobre cómo encontrar fechas en imágenes de mala calidad, consulte [Date search after high or low-quality recognition](/es/flexi-capture/fls/tips-tricks/date2).
</Note>

Para crear el elemento InvoiceDateAsString:

1. En el elemento `InvoiceHeader.grDate`, cree un elemento de tipo [cadena de caracteres](/es/flexi-capture/fls/template/character-chain) y asígnele el nombre **InvoiceDateAsString**.

2. Haga clic en la pestaña Character String.

3. En el campo recuento de caracteres, especifique este intervalo difuso: `{-1, 8, 14, INF}`, que es una estimación de la longitud de la cadena. Suponga que la cadena puede tener entre 8 y 14 caracteres. Cualquier hipótesis fuera de este rango será penalizada.

4. Establezca Max space length en 20, lo que significa que el espacio puede tener una longitud de 20 puntos.

5. Para las demás propiedades, deje los valores predeterminados.

6. Haga clic en la pestaña Advanced.

7. Como el programa debe buscar este elemento solo si no se ha detectado el elemento **InvoiceDate**, establezca la siguiente [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints) en el campo relación avanzada de prebúsqueda: Busque el objeto solo si no se ha detectado el elemento **InvoiceDate**. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):
   `If Not InvoiceDate.IsNull Then DontFind;`

8. Como el campo **Fecha de la factura** es opcional en este documento, pero, cuando aparece, siempre está presente con su nombre y se encuentra junto a él, establezca la siguiente [restricción de búsqueda adicional](/es/flexi-capture/fls/template/advanced-constraints) en el campo relación avanzada de prebúsqueda: Busque el objeto en la imagen solo si se ha detectado el elemento **kwInvoiceDate**; busque el objeto de imagen más cercano al elemento **kwInvoiceDate**. En [FlexiLayout language](/es/flexi-capture/fls/code/general-code):
   `If InvoiceHeader.kwInvoiceDate.IsNull Then DontFind;`
   `Nearest: InvoiceHeader.kwInvoiceDate;`

   <Tip>
     La restricción **Nearest** también puede especificarse mediante la interfaz gráfica de usuario del programa. Haga clic en la pestaña **Relations**, seleccione **Nearest** y, en la lista desplegable **To:**, seleccione **Element** y especifique **kwInvoiceDate** como **Reference element**.
   </Tip>

9. Pruebe el emparejamiento del FlexiLayout con las imágenes de prueba y asegúrese de que el programa detecte correctamente el elemento en todas las imágenes donde haya un campo **Fecha de la factura** y genere una hipótesis nula para el elemento **InvoiceDate**.

10. Para describir la ubicación del bloque **InvoiceDate**, seleccione la opción Source element y, a continuación, 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.

<Note>
  La región de un [elemento de grupo](/es/flexi-capture/fls/template/elements-compound) se calcula uniendo las regiones de todos los subelementos detectados.
</Note>
