> ## 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 26: Detección del elemento Table con un elemento InvoiceTable

> Ensamble el elemento Table InvoiceTable: configure las columnas, las reglas de orden, el encabezado, el pie de tabla y las columnas maestras para detectar de forma fiable la tabla de la factura.

Ahora que se han completado todos los preparativos, puede buscar el campo Invoice Table. Primero, describa un elemento de tipo [Table](/es/flexi-capture/fls/tables/general-tables):

1. **Describa el Header de la tabla.** Como se decidió en [Step 13](/es/flexi-capture/fls/tutorial3/3step13), los nombres de las columnas **Reference** y **Designation** se describen mediante palabras clave (elemento **Table** → cuadro de diálogo de propiedades → pestaña Columns → cuadro de diálogo de propiedades de la columna), mientras que los nombres de las columnas **Quantity**, **Unit Price** y **Total** se detectan mediante los elementos auxiliares descritos anteriormente.
2. **Describa el Footer de la tabla.** Como se decidió en [Step 13](/es/flexi-capture/fls/tutorial3/3step13), el pie de la tabla se detecta mediante el elemento descrito anteriormente que usa palabras clave y frases para detectar el comienzo del pie de la tabla.
3. **Describa el área de búsqueda de la tabla.** Use el nombre de la columna **Sales** para restringir el área de búsqueda por la derecha.

<div id="create-the-invoicetable-element">
  ## Crear el elemento InvoiceTable
</div>

Para crear el elemento **InvoiceTable**:

1. Cree un elemento de tipo [Table](/es/flexi-capture/fls/tables/general-tables) y asígnele el nombre **InvoiceTable**.
2. Haga clic en la pestaña **Columns**.
3. Haga clic en **Select** y especifique el bloque **InvoiceTable** descrito anteriormente como el bloque que debe detectar el elemento **InvoiceTable**. Para obtener instrucciones detalladas, consulte [Step 3](/es/flexi-capture/fls/tutorial3/3step3).
4. Seleccione la columna **Reference** y haga clic en **Propiedades...**. La palabra clave **Reference** se usará para buscar este nombre de columna, así que deje los valores predeterminados.
5. Seleccione la columna **Designation** y haga clic en **Propiedades...**. La palabra clave **Designation** se usará para buscar este nombre de columna, así que deje los valores predeterminados.
6. Seleccione la columna **Quantity** y haga clic en **Propiedades...**. Use el elemento detectado previamente `TableHeader.kwQuantity` para localizar este nombre de columna. Seleccione la opción **Use found element as column name** y haga clic en <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Botón Browse" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" /> para seleccionar el elemento `TableHeader.kwQuantity`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_1.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=bbf25b0bc0343d5c5c77393f46a0f892" alt="Captura de pantalla del cuadro de diálogo Propiedades de la columna Quantity en ABBYY FlexiLayout Studio, con Use found element as column name seleccionado y configurado como SearchElements.TableHeader.kwQuantity." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_1.png" />
</Frame>

1. Seleccione la columna **UnitPrice** y haga clic en **Propiedades...**. Use el elemento detectado previamente `TableHeader.kwUnitPrice` para localizar este nombre de columna. Seleccione la opción **Use found element as column name** y haga clic en <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Botón Browse" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" /> para seleccionar el elemento `TableHeader.kwUnitPrice`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_2.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=b659e5d615579177f79b061be15ed775" alt="Captura de pantalla del cuadro de diálogo Propiedades de la columna UnitPrice en ABBYY FlexiLayout Studio, con Use found element as column name seleccionado y configurado como SearchElements.TableHeader.kwUnitPrice." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_2.png" />
</Frame>

1. Seleccione la columna **Total** y haga clic en **Propiedades...**. Use el elemento detectado previamente `TableHeader.kwTotal` para localizar este nombre de columna. Seleccione la opción **Use found element as column name** y haga clic en <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Browse_Button.gif?s=3673db30dda4a3293aec716853588b55" alt="Botón Browse" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="21" height="20" data-path="images/flexi-capture/fls/Browse_Button.gif" /> para seleccionar el elemento `TableHeader.kwTotal`.
2. Haga clic en la pestaña **Order**.
3. Puede haber otras columnas entre las que se buscan (por ejemplo, **Unit**), pero siempre están en el siguiente orden: **Reference**, **Designation**, **Quantity**, **Unit Price**, **Total**. Seleccione la opción **Rules for column order** y, a continuación, haga clic en **Add...** y especifique el siguiente orden de columnas: `Reference << Designation << Quantity << Unit Price << Total`.

<Frame>
  <img src="https://mintcdn.com/abbyy/r-nfa7jujx5b9gKX/images/flexi-capture/fls/tutorial3_26_3.png?fit=max&auto=format&n=r-nfa7jujx5b9gKX&q=85&s=b471ef36cc0fb3b34730fd749baf7c1b" alt="Captura de pantalla de la pestaña Order del cuadro de diálogo Propiedades de SearchElements.InvoiceTable en ABBYY FlexiLayout Studio, con Rules for column order seleccionado y una regla que enumera Reference, Designation, Quantity, Unit Price y Total en ese orden." width="601" height="507" data-path="images/flexi-capture/fls/tutorial3_26_3.png" />
</Frame>

En el cuadro de diálogo **Editar regla de orden de las columnas**, mueva las columnas a la lista **Selected columns** en el orden **Reference**, **Designation**, **Quantity**, **UnitPrice**, **Total**.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_4.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=dc2e164e6c1d5179ae56fb3614cf780b" alt="Captura de pantalla de dos cuadros de diálogo Edit Column Order Rule en ABBYY FlexiLayout Studio, que muestran cómo las columnas disponibles se mueven a la lista Selected columns en el orden Reference, Designation, Quantity, UnitPrice, Total." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_4.png" />
</Frame>

1. Haga clic en la pestaña **Header**. El encabezado es necesario, pero no se agregan restricciones de búsqueda, así que deje los valores predeterminados.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_5.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=bb84010302437fe5fe0423ab877b9fcb" alt="Captura de pantalla de la pestaña Header del cuadro de diálogo Propiedades de SearchElements.InvoiceTable en ABBYY FlexiLayout Studio, que muestra Look for header y Header is optional seleccionados con las opciones de búsqueda predeterminadas." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_5.png" />
</Frame>

1. Haga clic en la pestaña **Footer**. Use el elemento detectado previamente `Footer.kwFooter` para detectar el pie de tabla. Seleccione la opción **Use found element as footer** y 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" /> para seleccionar el elemento `Footer.kwFooter`.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_6.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=70b7018b068999171888a3ff75203a36" alt="Captura de pantalla de la pestaña Footer del cuadro de diálogo Propiedades of SearchElements.InvoiceTable en ABBYY FlexiLayout Studio, con Use found element as footer seleccionado y configurado en SearchElements.Footer.kwFooter." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_6.png" />
</Frame>

1. Haga clic en la pestaña **Rows**.
2. Dado que algunas columnas de la tabla pueden contener entradas de varias líneas, debe especificar una columna maestra para detectar las filas. Seleccione la opción **Use master columns to detect rows**.

   Especifique la columna **Total** como columna maestra principal, ya que esta columna siempre contiene datos y a cada entrada le corresponde una sola fila de la tabla. Si esta columna no se detecta en un documento, especifique las columnas **Quantity** y **Unit Price** como columnas maestras secundaria y terciaria, respectivamente. 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 especifique este orden de columnas maestras.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_7.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=444df4f217866eba9a7be6842251d490" alt="Captura de pantalla de la pestaña Rows del cuadro de diálogo Propiedades of SearchElements.InvoiceTable en ABBYY FlexiLayout Studio, con Use master columns to detect rows seleccionado y Total, Quantity y UnitPrice enumerados como columnas maestras." width="431" height="455" data-path="images/flexi-capture/fls/tutorial3_26_7.png" />
</Frame>

1. Haga clic en la pestaña **Relations**. Como las columnas buscadas están situadas a la izquierda del inicio del nombre de la columna **Sales** (con una pequeña separación), establezca la siguiente restricción de búsqueda:

   * **A la izquierda de** el elemento `TableHeader.kwSales`,
   * **Offset** = -40, **Reference boundary** = **Left**.

   <Tip>
     Al seleccionar valores para los desplazamientos, puede ser útil analizar las propiedades geométricas (es decir, el tamaño y los límites) de los objetos de referencia y de los objetos buscados detectados durante el prerreconocimiento. De lo contrario, estos valores se seleccionan mediante prueba y error.
   </Tip>

2. Haga coincidir el FlexiLayout con las imágenes de prueba. Verá que el programa ha detectado correctamente el elemento Table en todas las imágenes en las que aparece.

   Sin embargo, en algunas imágenes, la columna **Quantity** también incluye artefactos no deseados de la columna anterior. Para separar los datos útiles del ruido, especifique el tipo de contenido que puede aparecer en la columna.

3. Abra el cuadro de diálogo de Propiedades del elemento **InvoiceTable**. Haga clic en la pestaña **Columns**, abra el cuadro de diálogo de Propiedades de la columna **Quantity** y seleccione la opción **Check content type**. Seleccione **Number** en la lista desplegable **Type of column content**.

<Frame>
  <img src="https://mintcdn.com/abbyy/8aWHPAJyzWmTqglX/images/flexi-capture/fls/tutorial3_26_8.png?fit=max&auto=format&n=8aWHPAJyzWmTqglX&q=85&s=f9b88f0e33915159a4be7cddf32467c2" alt="Captura de pantalla del cuadro de diálogo Propiedades of column Quantity en ABBYY FlexiLayout Studio, con la opción Check content type seleccionada y Number elegido en la lista desplegable Type of column content." width="462" height="377" data-path="images/flexi-capture/fls/tutorial3_26_8.png" />
</Frame>

1. Intente hacer coincidir el FlexiLayout con las imágenes de prueba y asegúrese de que la columna **Quantity** no contenga datos no deseados.
2. Para describir la ubicación del bloque **InvoiceTable**, 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 especifique el elemento **InvoiceTable** como elemento de origen.
