La fonction SearchText (élément Static Text) constitue une exception. Cette fonction va ajouter des mots de recherche à ceux déjà spécifiés dans l’onglet Static Text.
Les contraintes supplémentaires saisies dans le volet des relations avancées de pré-recherche ne peuvent faire référence qu’à des éléments situés au-dessus de l’élément actif dans l’arborescence FlexiLayout. La seule exception concerne les sous-éléments d’un même élément de groupe répétitif, qui peuvent faire référence à des instances précédentes de sous-éléments situés dans le même groupe, en dessous de l’élément donné.
Exemples
Spécifier différentes valeurs pour un même paramètre
Spécifier différentes valeurs pour un même paramètre
Il peut parfois être nécessaire d’attribuer différentes valeurs à un seul et même paramètre. Pour ce faire, utilisez l’opérateur “if… then” :if Element1.IsNull then {
MaxErrors: 3, 0.25;
} else {
MaxErrors: 5, 0.5;
}
Limiter la zone de recherche
Limiter la zone de recherche
La zone de recherche peut être définie à l’aide de n’importe lequel des types qui décrivent une zone de l’image : Rect, RectArray, Region. Elle peut également être définie à l’aide d’une expression qui renvoie l’un de ces types. Le résultat du calcul de l’expression est transmis comme argument à la fonction 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 );
Annuler la recherche d’un objet
Annuler la recherche d’un objet
Pour certains documents, la présence d’un objet sur l’image exclut automatiquement la présence d’un autre objet. Dans d’autres cas, vous souhaiterez peut-être rechercher un objet particulier uniquement si certaines conditions sont remplies. Vous pouvez indiquer au programme de ne pas rechercher un objet spécifique à l’aide de la commande DontFind(). Une fois cette commande exécutée, le programme formulera une hypothèse nulle pour l’objet correspondant :if Element1.IsNull() then DontFind()
Sélectionner une hypothèse
Sélectionner une hypothèse
Il arrive que plusieurs objets d’image remplissent les conditions spécifiées dans un élément. Cela signifie que le programme formulera plusieurs hypothèses. Si vous devez sélectionner dans cet ensemble uniquement l’hypothèse la plus proche d’un autre objet ou d’un point de l’image, vous pouvez utiliser les fonctions Nearest, NearestX et NearestY :
- Nearest( [nom de l’élément] ) - définit le nom de l’élément le plus proche.
- Nearest( x1, y1 ) - définit les coordonnées du point le plus proche.
- NearestX( x1 ) - définit la coordonnée X de la ligne verticale la plus proche.
- NearestY( y1 ) - définit la coordonnée Y de la ligne horizontale la plus proche.
pour les documents multipages
pour les documents multipages
Le programme traite un document multipage comme une entité unique et peut rechercher un élément dans un document multipage sans se référer à une page précise.Par exemple :a. Pour indiquer qu’un élément peut être trouvé dans la moitié inférieure de n’importe quelle page :Below: PageRect.Top + PageRect.Height / 2;(voir la description de la fonction PageRect pour plus de détails)b. Pour indiquer qu’un élément se trouve sur la dernière page d’un document (vous ne pouvez écrire ce code que dans la partie principale du FlexiLayout, après les éléments Header et Footer, s’il y en a) :RestrictSearchArea( Page( PagesCount ).RectGlobal );c. Pour indiquer qu’un élément se trouve sur la page où commence un élément nommé SearchElements.OtherElement :if SearchElements.OtherElement.IsFound then RestrictSearchArea( WholePage, SearchElements.OtherElement.Pages.Start );d. Pour indiquer qu’un élément peut se trouver sur chaque page sous les instances des hypothèses d’un groupe répétitif nommé SearchElements.RepeatableGroup :Below: SearchElements.RepeatableGroup.AllInstances.PageAreaGlobal( PageNumber ).Region.Bottom;e. Pour indiquer qu’un élément peut se trouver sur chaque page sous le corps de chaque sous-tableau d’un tableau nommé SearchElements.Table :Below: SearchElements.Table.AllSubTables.Body.PageAreaGlobal( PageNumber ).Bottom;
