Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
Une propriété définie par l’utilisateur est une variable typée associée à un élément. Ces propriétés sont définies dans la section champ externe. Le format suivant doit être respecté :
Type1 Name1;
...
TypeN NameN;
où Name est le nom de la variable et Type est son type.
Lors de la création des champs, ils sont initialisés comme suit : les champs numériques sont initialisés à zéro, les rectangles et les régions sont initialisés avec des valeurs vides, etc.
Les champs peuvent être utilisés dans l’élément auquel ils appartiennent ainsi que dans n’importe lequel des éléments situés en dessous. La valeur d’un champ ne peut être modifiée que dans l’élément auquel il appartient ; dans les autres éléments, elle est disponible en lecture seule.
La valeur d’une expression complexe qui caractérise l’hypothèse d’un élément peut être calculée et inscrite dans cette propriété. Cette valeur peut être consultée à partir de n’importe lequel des éléments situés en dessous, sans devoir la recalculer à chaque fois. Cela réduit le temps nécessaire pour faire correspondre le FlexiLayout, évite d’avoir à copier une expression volumineuse dans chacun des éléments et rend le code plus lisible.
Pour accéder à un champ d’un élément, on utilise le nom complet du champ au format suivant : ElementName.FieldName (par ex. SearchElements.StaticText1.x). À l’intérieur d’un élément, son champ est accessible par son nom : x. Dans le cas d’un élément composé, ses sous-éléments (à n’importe quel niveau d’imbrication) peuvent également accéder à ses champs par leurs noms courts.
À l’intérieur d’un élément, les noms des champs doivent être uniques. Les noms des éléments d’un élément composé ne doivent pas coïncider avec l’un des noms de champ de ses sous-éléments (à n’importe quel niveau d’imbrication). De plus, les noms des champs d’un élément composé ne doivent pas coïncider avec l’un des noms de ses sous-éléments.
Cet exemple recherche deux éléments d’adresse : la ville (Character String City) et la station de métro (Character String Station). La station de métro n’est spécifiée que si la ville est Sydney. Pour accélérer la mise en correspondance FlexiLayout, nous définissons une propriété fromSydney pour l’élément City. Cette propriété vaut true si l’élément City est détecté et a pour valeur Sydney, et false dans tous les autres cas.
Code pour l’élément City :
Champs externes
Évaluation des hypothèses
if( not IsNull and Value.Find( "Sydney" ) >= 0 ) then fromSydney = true;
else fromSydney = false;
Ensuite, nous utilisons cette propriété pour rechercher la station de métro. Pour accélérer le processus de mise en correspondance, nous recherchons la station uniquement si Sydney est détectée dans l’élément City.
Code pour l’élément Station :
Conditions de recherche
if not City.fromSydney then dontfind;
Du fait des champs, les éléments de même type ne sont pas considérés comme identiques. Par conséquent, les constructions du type suivant sont interdites :Let e = SearchElements.StaticText1;
e = SearchElements.StaticText2; // élément du même type