- Encabezado de la tabla. Como decidimos antes, especificaremos los nombres de las columnas mediante elementos auxiliares ya detectados.
- Pie de tabla de la tabla. Para especificar el Pie de tabla, decidimos usar un elemento requerido ya detectado, Paragraph, del grupo InvoiceFooter, que identifica el comienzo de la parte final. Describimos este elemento como el más cercano a la parte inferior de la tabla.
- Área de búsqueda de la tabla. Podemos limitar el área de búsqueda por la derecha usando el nombre de la última columna Sales, que no necesitamos para ningún otro fin.
- En el árbol SearchElements, cree un elemento de tipo Table y asígnele el nombre InvoiceTable.
- Haga clic en la pestaña Columns
- Haga clic en Select para seleccionar el bloque InvoiceTable creado previamente (consulte Paso 3) como el bloque que se va a buscar
- Especifique los parámetros de búsqueda de las columnas de la tabla:
- En la lista de columnas, seleccione Reference y haga clic en el botón Propiedades…
Para el nombre de esta columna, usaremos el elemento TableHeader.kwReference detectado previamente. Para usarlo, seleccione Use found element as column name, luego haga clic en
y seleccione TableHeader.kwReference. - En la lista de columnas, seleccione Designation y haga clic en el botón Propiedades… Para el nombre de esta columna, usaremos el elemento TableHeader.kwDesignation detectado previamente.
- En la lista de columnas, seleccione Unit y haga clic en el botón Propiedades… Para el nombre de esta columna, usaremos el elemento TableHeader.kwUnit detectado previamente.
- En la lista de columnas, seleccione Quantity y haga clic en el botón Propiedades… Para el nombre de esta columna, usaremos el elemento TableHeader.kwQuantity detectado previamente.
- En la lista de columnas, seleccione UnitPrice y haga clic en el botón Propiedades… Para el nombre de esta columna, usaremos el elemento TableHeader.kwUnitPrice detectado previamente.
- En la lista de columnas, seleccione Total y haga clic en el botón Propiedades… Para el nombre de esta columna, usaremos el elemento TableHeader.kwTotal detectado previamente.
- En la lista de columnas, seleccione Reference y haga clic en el botón Propiedades…
Para el nombre de esta columna, usaremos el elemento TableHeader.kwReference detectado previamente. Para usarlo, seleccione Use found element as column name, luego haga clic en
- Haga clic en la pestaña Order.
- Como las columnas que buscamos pueden estar separadas entre sí por otras columnas (p. ej., ExtraQtyTag), pero su orden siempre es fijo (primero Designation, luego Unit Price y después Total), seleccione Rules for column order, haga clic en Add…, y agregue las columnas en el siguiente orden: Designation << Unit Price << Total.
- Haga clic en la pestaña encabezado. Necesitamos el encabezado de la tabla, pero no hace falta imponer restricciones adicionales, así que mantenga los valores predeterminados.
- Haga clic en la pestaña Pie de tabla. Usaremos el elemento InvoiceFooter.Paragraph detectado previamente para la parte final de la tabla. Seleccione la opción Use found element as footer, haga clic en
y luego seleccione el elemento InvoiceFooter.Paragraph.
- Haga clic en la pestaña Rows.
- Dado que las celdas de algunas columnas pueden contener varias líneas, debemos especificar columnas maestras para la separación de líneas. Seleccione Use master columns to detect rows.
Primero especifique la columna Total, ya que esta columna siempre contiene datos y, para cada registro de la tabla, tiene una línea de datos. En caso de que esta columna no se detecte en la imagen, especifique las columnas Unit Price y Quantity como la siguiente opción de separación de líneas. Use el botón
para seleccionar estas columnas.
- Seleccione la pestaña Relations. Dado que las columnas de la tabla que nos interesan se encuentran a la izquierda del nombre de la columna Sales, agregue las siguientes restricciones de búsqueda:
- A la izquierda del elemento TableHeader.kwSales, Offset = 0;
Nota. Para imágenes de baja calidad (p. ej., si hay ruido entre el cuerpo y el pie de tabla, o si no hay encabezado ni pie), puede especificar límites superior e inferior para la tabla. En este caso, podemos usar el elemento kwDesignation como límite superior y el elemento Paragraph como límite inferior. En la pestaña Relations, agregue las siguientes restricciones de búsqueda:
- Debajo del límite superior del elemento kwDesignation, Offset = -50, Reference boundary = Top;
- Encima del elemento Paragraph, Offset = -50; Reference boundary = Bottom.
- Haga Match del FlexiLayout con las imágenes de prueba. Verá que el programa detecta correctamente el elemento de tabla en todas las imágenes, pero en algunas de ellas la columna Quantity incluye texto redundante de la columna anterior. Para separar los datos válidos de la columna Quantity de los datos irrelevantes, especificaremos el tipo de contenido de esta columna.
- Abra el cuadro de diálogo Propiedades del elemento de tabla InvoiceTable. Haga clic en la pestaña Columns, abra el cuadro de diálogo Propiedades… de la columna Quantity y seleccione la opción Check content type. En Type of column content, seleccione Number.
- Ahora, si hace Match del FlexiLayout con las imágenes, verá que Quantity contiene solo dígitos, que es lo que necesitamos.
- Del mismo modo, especifique Divisa como contenido para las columnas UnitPrice y Total.
- Para especificar la ubicación del bloque InvoiceTable, seleccione la opción Source element. Haga clic en
y especifique InvoiceTable como elemento de origen.
