- En el elemento SumGroup, cree un elemento de tipo cadena de caracteres y asígnele el nombre TotalAmount.
- Haga clic en la pestaña Character String.
- Especifique el alfabeto: ’,-.0123456789OSZosz
- Establezca Percentage of non-alphabet characters en 30 %.
- En el campo recuento de caracteres, especifique el siguiente intervalo difuso {-1, 1, 20, INF}, que evalúa la longitud de la cadena. Suponemos que todos los valores posibles estarán dentro del intervalo de 1 a 20 caracteres. Cualquier hipótesis fuera de este intervalo será penalizada
- No imponga restricciones adicionales y mantenga la configuración predeterminada.
- Haga clic en la pestaña Search Constraints y excluya del área de búsqueda la región de la hipótesis del elemento kwTotal.
- Haga clic en la pestaña Advanced.
- En relación avanzada de prebúsqueda, especifique condiciones de búsqueda adicionales:Si se ha detectado el nombre kwTotal, *especifique el área de búsqueda como un array de rectángulos: un rectángulo a la derecha del nombre del campo y otro rectángulo debajo del nombre del campo con cierto desplazamiento. De lo contrario, no busque el objeto de imagen.*En el FlexiLayout language, esta condición puede escribirse de la siguiente manera: If not kwTotal.IsNull Then // Si se ha detectado el nombre del campo kwTotal { WholeWordMOde: true; MaxGapInLine: 30dt; RectArray DataRegion; Let r1= Rect (kwTotal.Rect.Right, kwTotal.Rect.Top -20dt, kwTotal.Rect.Right + 1800dt, kwTotal.Rect.Bottom + 50dt); // Limita el área de búsqueda a un rectángulo a la derecha del nombre del campo. Let r2 = Rect (kwTotal.Rect.Left - 100dt, kwTotal.Rect.Bottom, kwTotal.Rect.Right + 100dt, kwTotal.Rect.Bottom + 200dt); // Limita el área de búsqueda a un rectángulo debajo del nombre del campo. DataRegion = RectArray (r1); DataRegion.Add (r2); RestrictSearchArea (DataRegion); } else Dontfind(); // De lo contrario, no busque el objeto.
- El área de búsqueda del valor del campo está limitada a dos rectángulos: uno a la derecha del nombre del campo y el otro debajo. Si el valor del campo está ubicado a la derecha del nombre del campo, en la mayoría de las imágenes hay texto debajo de dicho nombre. Dado que, en la mayoría de las imágenes, este texto redundante se incluye en el área de búsqueda del campo TotalAmount, el programa creará una hipótesis para ese texto. Para influir en la calidad de esta hipótesis (es decir, reducirla), en Relaciones avanzadas de posbúsqueda especifique una comprobación adicional:*Cuanto más abajo esté el valor del campo respecto al nombre del campo, mayor será la penalización.*En el FlexiLayout language, esta comprobación puede escribirse de la siguiente manera: If not IsNull then {FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt; // Las hipótesis de elementos con una región de 400 puntos de ancho tendrán la calidad máxima if width < 50dt then Quality: 0; // Los elementos de menos de 50 puntos no se tienen en cuenta if Top > kwTotal.Rect.Top then { FuzzyQuality: Top - kwTotal.Rect.Top, {0,0,0, 20000}*dt; } } // Esta comprobación significa que cuanto mayor sea la diferencia, mayor será la penalización. Nota. Se utiliza un sistema de coordenadas 2D para describir la ubicación de los objetos en la página y las distancias entre ellos. El punto (0, 0) se encuentra en la esquina superior izquierda de la imagen. El eje horizontal va de izquierda a derecha y el eje vertical va de arriba abajo.
- Ejecute Match del FlexiLayout en las imágenes para asegurarse de que el programa pueda detectar de forma fiable el elemento en todas las imágenes en las que aparece.
- Especifique la ubicación del bloque TotalAmount como la región rectangular del elemento TotalAmount, expandida 5 puntos en vertical y en horizontal. Para ello, seleccione Expression y especifique la siguiente expresión: Rect outputRect; outputRect = SumGroup.TotalAmount.Rect; IsNull = SumGroup.TotalAmount.IsNull; OutputRegion = outputRect; OutputRegion.Inflate (5dt, 5dt);
Step 9: TotalAmount field, SumGroup group element
Ejemplo 4. Paso 9.2: campo Total Amount, elemento TotalAmount
Configure el elemento de cadena de caracteres TotalAmount en el Ejemplo 4 de FlexiLayout Studio, restringiendo su área de búsqueda con relaciones avanzadas de prebúsqueda y posbúsqueda.
Buscaremos el campo TotalAmount tanto a la derecha de su nombre como debajo de él.
Para crear un campo TotalAmount:
Ejemplo 4. Paso 9.1: Nombre del Monto total, elemento kwTotal
Anterior
Ejemplo 4. Paso 10: campo Company, elemento de grupo CompanyGroup, elemento Company
Siguiente
