- Dans l’élément SumGroup, créez un élément de type Character String et nommez-le TotalAmount.
- Cliquez sur l’onglet Character String.
- Spécifiez l’alphabet : ’,-.0123456789OSZosz
- Définissez Percentage of non-alphabet characters sur 30 %.
- Dans le champ Character count, spécifiez l’intervalle flou suivant {-1, 1, 20, INF}, qui évalue la longueur de la chaîne. Nous supposons que toutes les valeurs possibles se situeront dans l’intervalle de 1 à 20 caractères. Toute hypothèse en dehors de cet intervalle sera pénalisée
- N’imposez aucune contrainte supplémentaire et conservez les paramètres par défaut.
- Cliquez sur l’onglet Search Constraints et excluez de la zone de recherche la région de l’hypothèse de l’élément kwTotal.
- Cliquez sur l’onglet Advanced.
- Dans les relations avancées de pré-recherche, spécifiez des conditions de recherche supplémentaires :Si le nom kwTotal *a été détecté, définissez la zone de recherche sous forme de tableau de rectangles : un rectangle à droite du nom du champ et un rectangle sous le nom du champ avec un certain décalage. Sinon, ne recherchez pas l’objet image.*Dans le langage FlexiLayout, cette condition peut être écrite comme suit : If not kwTotal.IsNull Then // Si le nom du champ kwTotal a été détecté { WholeWordMOde: true; MaxGapInLine: 30dt; RectArray DataRegion; Let r1= Rect (kwTotal.Rect.Right, kwTotal.Rect.Top -20dt, kwTotal.Rect.Right + 1800dt, kwTotal.Rect.Bottom + 50dt); // Limite la zone de recherche à un rectangle situé à droite du nom du champ. Let r2 = Rect (kwTotal.Rect.Left - 100dt, kwTotal.Rect.Bottom, kwTotal.Rect.Right + 100dt, kwTotal.Rect.Bottom + 200dt); // Limite la zone de recherche à un rectangle situé sous le nom du champ. DataRegion = RectArray (r1); DataRegion.Add (r2); RestrictSearchArea (DataRegion); } else Dontfind(); // Sinon, ne recherchez pas l’objet.
- La zone de recherche de la valeur du champ est limitée à deux rectangles, l’un à droite du nom du champ et l’autre en dessous. Si la valeur du champ se trouve à droite du nom du champ, il y a, sur la plupart des images, du texte sous le nom du champ. Comme ce texte redondant est inclus, sur la plupart des images, dans la zone de recherche du champ TotalAmount, le programme créera une hypothèse pour ce texte. Pour influer sur la qualité de cette hypothèse (c’est-à-dire la réduire), dans Advanced post-search relations, spécifiez une vérification supplémentaire :*Plus la valeur du champ est basse sous le nom du champ, plus la pénalité est importante.*Dans le langage FlexiLayout, cette vérification peut être écrite comme suit : If not IsNull then {FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt; // Les hypothèses pour les éléments dont la région a une largeur de 400 points auront la qualité maximale if width < 50dt then Quality: 0; // Les éléments de moins de 50 points ne sont pas pris en compte if Top > kwTotal.Rect.Top then { FuzzyQuality: Top - kwTotal.Rect.Top, {0,0,0, 20000}*dt; } } // Cette vérification signifie que plus l’écart est grand, plus la pénalité est importante. Remarque. Un système de coordonnées 2D est utilisé pour décrire l’emplacement des objets sur la page et les distances entre eux. Le point (0, 0) se trouve dans le coin supérieur gauche de l’image. L’axe horizontal est orienté de gauche à droite, l’axe vertical de haut en bas.
- Exécutez la commande Associer du FlexiLayout sur les images pour vous assurer que le programme peut détecter l’élément de manière fiable sur toutes les images où il apparaît.
- Spécifiez l’emplacement du bloc TotalAmount comme la région rectangulaire de l’élément TotalAmount dilatée de 5 points verticalement et horizontalement. Pour ce faire, sélectionnez Expression et spécifiez l’expression suivante : Rect outputRect; outputRect = SumGroup.TotalAmount.Rect; IsNull = SumGroup.TotalAmount.IsNull; OutputRegion = outputRect; OutputRegion.Inflate (5dt, 5dt);
Step 9: TotalAmount field, SumGroup group element
Exemple 4. Étape 9.2 : champ montant total, élément TotalAmount
Configurez l’élément Character String TotalAmount dans l’exemple 4 de FlexiLayout Studio en limitant sa zone de recherche à l’aide de relations avancées de pré-recherche et de post-search relations.
Nous rechercherons le champ TotalAmount à droite et en dessous de son nom.
Pour créer un champ TotalAmount :”
Exemple 4. Étape 9.1 : nom du montant total, élément kwTotal
Précédent
Exemple 4. Étape 10 : champ Company, élément Group CompanyGroup, élément Company
Suivant
