Las relaciones avanzadas de prebúsqueda establecen restricciones de búsqueda y propiedades de los elementos en el FlexiLayout language. El panel en el que introduce el código se encuentra en la pestaña Advanced del cuadro de diálogo Properties.
El código que introduzca en el panel de relaciones avanzadas de prebúsqueda se ejecuta inmediatamente antes de buscar el objeto de imagen correspondiente al elemento de FlexiLayout. Primero, el programa usará las propiedades que haya especificado en las pestañas situadas a la izquierda de la pestaña Advanced y, a continuación, ejecutará el código.
Si un parámetro concreto se especifica tanto en una pestaña situada a la izquierda de la pestaña Advanced como en el código de la pestaña Advanced, el código tendrá prioridad. Si un parámetro se especifica en una pestaña situada a la izquierda de la pestaña Advanced, pero no se especifica en el código, se usará el valor del parámetro de la pestaña correspondiente.
La función SearchText (elemento de texto estático) es una excepción. Esta función agrega palabras de búsqueda a las ya especificadas en la pestaña texto estático.
Si ha especificado algunas propiedades en cualquiera de las pestañas situadas a la izquierda de la pestaña Advanced, puede convertirlas en código haciendo clic en el botón Code de la pestaña Advanced. Después, puede copiar o editar el código generado.
Las restricciones adicionales introducidas en el panel de relaciones avanzadas de prebúsqueda solo pueden hacer referencia a elementos situados encima del elemento actual en el árbol de FlexiLayout. Las únicas excepciones son los subelementos del mismo elemento de grupo repetido, que pueden hacer referencia a instancias anteriores de subelementos situados en el mismo grupo debajo del elemento dado.
Especificar distintos valores para un mismo parámetro
A veces es necesario asignar distintos valores a un mismo parámetro. Para ello, utilice el operador if... then:
Limitar el área de búsqueda
El área de búsqueda puede especificarse mediante cualquiera de los tipos que definen un área de imagen: Rect, RectArray, Region. También puede especificarse mediante una expresión que devuelva cualquiera de estos tipos. El resultado del cálculo de la expresión se pasa como argumento a la función RestrictSearchArea():
También puede pasar una expresión que combine las regiones de varios elementos:
Cancelar la búsqueda de un objeto
En algunos documentos, la presencia de un objeto en la imagen excluye automáticamente otro objeto. En otros casos, puede que desee buscar un objeto determinado solo si se cumplen ciertas condiciones. Puede indicarle al programa que no busque un objeto específico mediante el comando DontFind(). Una vez ejecutado el comando, el programa formula una hipótesis nula para el objeto correspondiente:
Seleccionar una hipótesis
A veces, varios objetos de imagen cumplen las condiciones especificadas en un elemento. Esto significa que el programa formulará varias hipótesis. Si necesita seleccionar de este conjunto únicamente la hipótesis situada más cerca de otro objeto o punto de la imagen, puede usar una de las siguientes funciones:
No puede usar varias funciones Nearest a la vez.
Búsqueda en documentos de varias páginas
El programa trata un documento de varias páginas como una sola entidad y puede buscar un elemento en un documento de varias páginas sin referirse a una página exacta.
Para especificar que un elemento puede encontrarse en la mitad inferior de cualquier página:
Para obtener más información, consulte la descripción de la función PageRect.
Para especificar que un elemento se encuentra en la última página de un documento (puede escribir este código solo en la parte principal del FlexiLayout, después de los elementos Header y Footer, si los hay):
Para especificar que un elemento se encuentra en la página en la que comienza un elemento llamado SearchElements.OtherElement:
Para especificar que un elemento puede ubicarse en cada página debajo de las instancias de las hipótesis de un grupo repetido llamado SearchElements.RepeatableGroup:
Para especificar que un elemento puede situarse en cada página debajo del cuerpo de cada subtabla de una tabla llamada SearchElements.Table: