Skip to main content
Une propriété définie par l’utilisateur est une variable typée qui appartient à un élément. Ces propriétés sont définies dans la section Champs externes de l’onglet Avancé. Utilisez le format suivant :
Name est le nom de la variable et Type son type. Lorsque des champs sont créés, ils sont automatiquement initialisés. Par exemple, les champs numériques sont initialisés à zéro et les rectangles et les régions avec des valeurs vides.

Portée et accès des champs

Les champs peuvent être utilisés dans l’élément auquel ils appartiennent ainsi que dans tout élément situé plus bas dans l’arbre de recherche. 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. Pour accéder au champ d’un élément, utilisez le nom complet du champ au format ElementName.FieldName (par exemple, SearchElements.StaticText1.x). Dans un élément, il est possible d’accéder à son champ par son nom : x. Pour un élément composé, ses sous-éléments (à n’importe quel niveau d’imbrication) peuvent également accéder à ses champs par leur nom court. La valeur d’une expression complexe qui caractérise l’hypothèse d’un élément peut être calculée et écrite dans une propriété. Cette valeur peut ensuite être utilisée depuis n’importe quel élément situé plus bas dans l’arbre de recherche, sans devoir être recalculée chaque fois qu’elle est nécessaire. Cela réduit le temps nécessaire à l’exécution du FlexiLayout, évite d’avoir à copier une expression volumineuse dans chaque élément et rend le code plus lisible.

Restrictions de dénomination des champs

  • Au sein d’un élément, les noms de champ doivent être uniques.
  • Dans un élément composé, le nom d’un élément ne doit correspondre à aucun nom de champ de ses sous-éléments, quel que soit le niveau d’imbrication.
  • Les noms de champ d’un élément composé ne doivent pas correspondre aux noms de ses sous-éléments.

Exemple : accélérer la mise en correspondance avec une propriété définie par l’utilisateur

Cet exemple recherche deux composants d’adresse : une ville (Character String City) et une station de métro (Character String Station). La station de métro n’est spécifiée que si la ville est Moscou. Pour accélérer la mise en correspondance, l’exemple définit une propriété fromMoscow pour l’élément City. Cette propriété vaut true si l’élément City est détecté et a pour valeur "Moscow", et false dans tous les autres cas. Code de l’élément City, dans la section Champs externes :
Dans la section Advanced post-search relations :
L’élément Station utilise ensuite cette propriété pour rechercher la station uniquement si Moscou est détectée comme élément City. Code de l’élément Station, dans la section relations avancées de pré-recherche :
Du fait de ces champs, les éléments du même type ne sont pas considérés comme identiques.Par conséquent, l’écriture suivante est interdite :