Passer au contenu principal
La boîte de dialogue Propriétés d’un élément de groupe répétitif comporte deux onglets dans lesquels vous pouvez spécifier des contraintes de recherche supplémentaires : Advanced et Advanced for All Instances. Dans l’onglet Advanced, vous pouvez spécifier des contraintes de recherche supplémentaires pour des instances individuelles du groupe. Dans l’onglet Advanced for All Instances, vous pouvez spécifier des contraintes de recherche supplémentaires pour toutes les instances du groupe.
Dans la section Champs externes pour toutes les instances, vous pouvez utiliser toutes les méthodes disponibles pour un élément Group. Par exemple, vous pouvez spécifier des relations avec des instances déjà détectées : // Chaque instance suivante se trouve sous l’instance précédente if SearchElements.RepeatingGroup.HasInstances then { Below: SearchElements.RepeatingGroup.LastFound, 0 * dot; } Dans la section relations avancées de pré-recherche pour toutes les instances, vous pouvez utiliser les méthodes suivantes :
  • MinRepetitions
  • MaxRepetitions
  • PaginalMode
  • MinRepetitionsOnPage
  • MaxRepetitionsOnPage
Dans la section Relations post-recherche, vous pouvez fournir une estimation pour une instance particulière. Dans la section Relations post-recherche pour toutes les instances, vous pouvez fournir une estimation pour toutes les instances détectées. Dans la section Relations de pré-recherche, vous pouvez utiliser toutes les méthodes disponibles pour un élément Group. Exemple de code pour les relations post-recherche : // Vérification des hypothèses pour les sous-éléments StaticText1 et StaticText2 dans un groupe répétitif. La dernière instance détectée est utilisée. if StaticText1.Width() < 200dt and StaticText2.Width() < 200dt then Quality: 0.98; Exemple de code pour les relations post-recherche pour toutes les instances : if InstancesCount() < 5 and LastFound.Pages.End <= 2 then Quality: 0.98;

Accès aux instances d’élément

Utilisez les noms prédéfinis suivants pour accéder aux instances d’élément :
  • LastFound - la dernière instance détectée
  • CurrentInstance - l’instance en cours lors d’une recherche dans un élément répétitif
  • Instance ( n ) – l’instance n° n
  • AllInstances - toutes les instances
Vous pouvez accéder aux sous-éléments d’un élément de groupe répétitif, même s’ils se trouvent plus bas dans l’arborescence des éléments. Les méthodes suivantes du langage FlexiLayout peuvent également être utilisées pour manipuler des instances d’élément :
  • HasInstances - vérifie si des instances ont déjà été trouvées
  • InstancesCount - renvoie le nombre d’instances détectées

Condition d’arrêt de la recherche des instances d’éléments

La recherche des instances s’arrête (dans la branche donnée) si le programme rencontre une hypothèse vide pour un groupe (c.-à-d. un groupe dont la région est vide) ou si le programme ne peut plus générer d’autres hypothèses (il n’y a plus d’hypothèses dans la zone de recherche). En mode Paginal, cette règle s’applique uniquement à la recherche sur une seule page. Lorsque le programme a terminé la recherche sur une page, il passe à la suivante. MinRepetitionsOnPage, MaxRepetitionsOnPage, MinRepetitions et MaxRepetitions influent également sur le processus de génération des hypothèses. Vous pouvez utiliser les méthodes suivantes pour modifier le processus standard de génération des hypothèses :
  1. La dernière instance détectée doit être effectivement la dernière : if SearchElements.RepeatingGroup.HasInstances and then DontFind; Cette condition doit être définie dans relations avancées de pré-recherche.
  2. La dernière instance détectée (et c’est pour cette instance que nous créons la contrainte) est « mauvaise », et les instances précédentes doivent être les dernières (s’il n’y a pas d’autres « bonnes » instances détectées) : If then Quality: 0; Cette condition doit être définie dans Advanced post-search relations.

Voir aussi :

langage FlexiLayout