La función SearchText (elemento de texto estático) es una excepción. Esta función agregará palabras de búsqueda a las ya especificadas en la pestaña texto estático.
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. La única excepción 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.
Ejemplos
Especificar valores distintos para el mismo parámetro
Especificar valores distintos para el mismo parámetro
A veces necesitará asignar valores distintos a un mismo parámetro. Esto puede hacerse mediante el operador “if… then”:if Element1.IsNull then {
MaxErrors: 3, 0.25;
} else {
MaxErrors: 5, 0.5;
}
Limitar el área de búsqueda
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():a.RestrictSearchArea( Rect(Rect( Page( 1 ).RectGlobal.Left, Page( 1 ).RectGlobal.Top+20*mm, Element1.Left.Start, Element2.Ycenter.Start ) );b.let rect1 = Element1.Rect;
let rect2 = Element2.Rect;
RestrictSearchArea( rect1 or rect2 );
Cancelar la búsqueda de un objeto
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 formulará una hipótesis nula para el objeto correspondiente:if Element1.IsNull() then DontFind()
Seleccionar una hipótesis
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 las funciones Nearest, NearestX y NearestY:
- Nearest( [nombre del elemento] ) - establece el nombre del elemento más cercano.
- Nearest( x1, y1 ) - establece las coordenadas del punto más cercano.
- NearestX( x1 ) - establece la coordenada X de la línea vertical más cercana.
- NearestY( y1 ) - establece la coordenada Y de la línea horizontal más cercana.
para documentos de varias páginas
para 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 hacer referencia a una página concreta.Por ejemplo:a. Para especificar que un elemento puede encontrarse en la mitad inferior de cualquier página:Below: PageRect.Top + PageRect.Height / 2;(consulte la descripción de la función PageRect para obtener más detalles)b. Para especificar que un elemento está ubicado 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):RestrictSearchArea( Page( PagesCount ).RectGlobal );c. Para especificar que un elemento está ubicado en la página donde comienza un elemento llamado SearchElements.OtherElement:if SearchElements.OtherElement.IsFound then RestrictSearchArea( WholePage, SearchElements.OtherElement.Pages.Start );d. Para especificar que un elemento puede estar ubicado en cada página debajo de las instancias de las hipótesis de un grupo repetido llamado SearchElements.RepeatableGroup:Below: SearchElements.RepeatableGroup.AllInstances.PageAreaGlobal( PageNumber ).Region.Bottom;e. Para especificar que un elemento puede estar ubicado en cada página debajo del body de cada subtabla de una tabla llamada SearchElements.Table:Below: SearchElements.Table.AllSubTables.Body.PageAreaGlobal( PageNumber ).Bottom;
