Skip to main content
El análisis de las imágenes de prueba revela que los campos Total Quantity y Total Amount solo aparecen junto con el nombre Footer.kwTotal y están situados en el mismo nivel. Use elementos de tipo cadena de caracteres para detectar los campos Total Quantity y Total Amount. Para especificar las restricciones de búsqueda comunes a estos elementos, cree un elemento Grupo — grTotal.

Crear el elemento Grupo grTotal

Para crear el elemento Grupo grTotal:
  1. En el elemento Footer, cree un elemento Grupo y asígnele el nombre grTotal.
  2. Seleccione Optional element para que la búsqueda de los subelementos se detenga si el nombre no está presente.
    Para obtener más información, consulte The Optional property of a Group element.
  3. Haga clic en la pestaña Advanced.
  4. Dado que los campos Total Quantity y Total Amount solo aparecen en la imagen junto con el nombre Footer.kwTotal, establezca la siguiente restricción de búsqueda adicional en el campo de relación avanzada de prebúsqueda: Si no se ha detectado el elemento Footer.kwTotal, no busque el objeto en la imagen. En FlexiLayout language: If Footer.kwTotal.IsNull Then DontFind;

Crear el elemento TotalQuantity

El campo Total Quantity se encuentra en la intersección de la fila Total y la columna Quantity. La primera restricción ya se especificó en el nivel del elemento grupo. Para especificar la segunda restricción, use el nombre de la columna detectado previamente como elemento de referencia. Para crear el elemento TotalQuantity:
  1. En el elemento grTotal, cree un elemento de tipo cadena de caracteres y asígnele el nombre TotalQuantity.
  2. Haga clic en la pestaña Character String.
  3. En el campo de recuento de caracteres, especifique este intervalo difuso: {-1, 1, 10, INF}. Se trata de una estimación de la longitud de la cadena de caracteres. Suponga que los valores posibles pueden ir de 1 a 10. Cualquier hipótesis fuera de este intervalo será penalizada.
  4. Deje los valores predeterminados de los demás parámetros del elemento.
  5. Haga clic en la pestaña Relations.
  6. Como el campo Total Quantity siempre se encuentra a la misma altura que las palabras clave con el nombre Footer.kwTotal o ligeramente más abajo, establezca las siguientes restricciones de búsqueda:
    • Encima del elemento Footer.kwTotal, Offset = -200, Reference boundary = Bottom
    • Debajo del elemento Footer.kwTotal, Offset = -20, Reference boundary = Top
    Antes de establecer los valores de Offset, quizá le convenga analizar las propiedades geométricas (es decir, el tamaño y los límites) de los objetos vecinos detectados durante el prerreconocimiento. Los valores de Offset se seleccionan por prueba y error.
  7. Haga clic en la pestaña Advanced.
  8. Como el campo Total Quantity es opcional en las imágenes, pero cuando aparece lo hace junto con la columna Quantity y debajo de su nombre, establezca la siguiente restricción de búsqueda adicional en el campo de relación avanzada de prebúsqueda: Busque el objeto en la imagen solo si se ha detectado el elemento TableHeader.kwQuantity; no busque a más de 50 dots a la izquierda o a la derecha de los límites correspondientes del nombre de la columna. En el FlexiLayout language: If Not (TableHeader.kwQuantity.IsNull) Then { LeftOf: TableHeader.kwQuantity.Right, -50 * dot; RightOf: TableHeader.kwQuantity.Left, -50 * dot; } Else DontFind;
  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 en las que corresponda.
  10. Para describir la ubicación del bloque TotalQuantity, seleccione la opción Source element y, a continuación, haga clic en ”” y seleccione el elemento TotalQuantity como elemento de origen.

Cree el elemento TotalAmount

El campo Total Amount se encuentra en la intersección de la fila Total (el pie de la tabla) y la columna Total. La primera restricción ya se especificó en el nivel del elemento grupo. Para especificar la segunda restricción, use los nombres de columna detectados previamente como elementos de referencia. Para crear el elemento TotalAmount:
  1. En el elemento grTotal, cree un elemento de tipo cadena de caracteres y asígnele el nombre TotalAmount.
  2. Haga clic en la pestaña Character String.
  3. En el campo recuento de caracteres, especifique este intervalo difuso: [-1, 1, 20, 2147483647]. Esta es una estimación de la longitud de la cadena de caracteres. Suponga que los valores posibles pueden ir de 1 a 20. Cualquier hipótesis fuera de este rango será penalizada.
  4. Deje los valores predeterminados de los demás parámetros del elemento.
  5. Haga clic en la pestaña Relations.
  6. Dado que el campo Total Amount siempre se encuentra al mismo nivel que las palabras clave con el nombre Footer.kwTotal, establezca las siguientes restricciones de búsqueda:
    • Encima del elemento Footer.kwTotal, Offset = -20, Reference boundary = Bottom.
    • Debajo del elemento Footer.kwTotal, Offset = -20, Reference boundary = Top.
  7. Haga clic en la pestaña Advanced.
  8. Dado que el campo Total Amount solo puede estar ubicado inmediatamente debajo (posiblemente con un pequeño desplazamiento) del nombre de la columna Total y solo entre las columnas Unit Price y Sales, establezca la siguiente restricción de búsqueda adicional en el campo relación avanzada de prebúsqueda: Si se ha detectado el elemento TableHeader.kwTotal, busque el objeto a no más de 70 puntos a la derecha del borde derecho del elemento TableHeader.kwTotal y a no más de 50 puntos a la izquierda del borde izquierdo del elemento TableHeader.kwTotal. O bien, si se detectan los elementos TableHeader.kwUnitPrice y TableHeader.kwSales, busque el objeto a no más de 40 puntos a la derecha del borde izquierdo del elemento TableHeader.kwSales y a la derecha del borde derecho del elemento TableHeader.kwUnitPrice; de lo contrario, no busque el objeto. En FlexiLayout language: If Not (TableHeader.kwTotal.IsNull) Then { LeftOf: TableHeader.kwTotal.Right, -70 * dot; RightOf: TableHeader.kwTotal.Left, -50 * dot; } Else If Not (TableHeader.kwUnitPrice.IsNull) and Not (TableHeader.kwSales.IsNull) Then { LeftOf: TableHeader.kwSales.Left, -40 * dot; RightOf: TableHeader.kwUnitPrice, 0 * dot; } Else DontFind;
    Antes de establecer los valores de los desplazamientos, quizá le convenga analizar las propiedades geométricas (es decir, el tamaño y los bordes) de los objetos vecinos detectados durante el prerreconocimiento. Los valores de desplazamiento se seleccionan por prueba y error.
  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 en las que corresponda.
  10. Para describir la ubicación del bloque TotalAmount, seleccione la opción Source element y, a continuación, haga clic en botón Examinar y seleccione el elemento TotalAmount como elemento de origen.