Wie die Funktion Exclude Regionen aus einem Suchbereich ausschließt
Die Funktion Exclude schließt eine Region aus dem Suchbereich eines Elements aus. Die auszuschließende Region wird beim Aufruf der Funktion angegeben.
Die ausgeschlossene Region kann eine der folgenden sein:
- Die Region einer Hypothese (unabhängig davon, ob sie erkannt wurde oder nicht)
- Ein Rectangle oder ein Array von Rectangles der gefundenen Elemente
- Eine Region, die aus den Regionen von Objekten aufgebaut ist, die Teil einer gefundenen Hypothese sind (siehe Methode
ExcludeSet)

Das Beispielprojekt Exclude.fsp
Das ProjektExclude.fsp (Ordner %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Exclude) zeigt, wie die Funktion Exclude funktioniert.
Das Projekt hat vier Seiten:
- Seite 1 – Das Adressfeld erstreckt sich über mehrere Zeilen. Der Name Address: steht in der ersten Zeile, daher können wir nicht sagen, dass sich das gesuchte Datenfeld rechts vom oder unter dem Feldnamen befindet. Der Name muss jedoch trotzdem von der Erkennung ausgeschlossen werden.
- Seite 2 – Das Adressfeld hat keinen Namen.
- Seiten 3 und 4 – Die Zeile (Address) liegt innerhalb des Datenfelds. Sie muss jedoch von der Erkennung ausgeschlossen werden.
Elemente für die Feldnamen und das Adressfeld erstellen
Erstellen Sie zunächst ein Static Text-Element, benennen Sie es CompanyHeader und geben Sie seinen Wert an. Dieses Element dient dazu, den Feldnamen zu erkennen. Erstellen Sie anschließend ein Static Text-Element und benennen Sie es AddressHeader. Dieses Element dient dazu, den Feldnamen zu erkennen. Geben Sie die folgenden statischen Textwerte an: Address:|(Address). Listen Sie also alle Varianten dieser Zeile auf, die erkannt und anschließend im Adressfeld von der Erkennung ausgeschlossen werden sollen. Beschreiben Sie die Suchbedingungen für diese Zeilen im Feld Relations und geben Sie an, dass diese Zeilen unterhalb (Below) des Elements CompanyHeader gesucht werden sollen.Das Element für den Namen muss vor dem Element für das Adressfeld erstellt werden, da die Funktion
Exclude nur Verweise auf Elemente zulässt, die im FlexiLayout-Baum über dem aktuellen Element stehen.
Schließen Sie den Feldnamen aus dem Suchbereich von Address aus
Gehen Sie nun zurück zum Dialogfeld „Eigenschaften“ des Elements Address und klicken Sie auf die Registerkarte Suchbedingungen. Klicken Sie neben dem Abschnitt Exclude regions of elements auf Add… und wählen Sie das Element AddressHeader aus der Liste aus.
Nachdem Sie die Eigenschaften des Elements gespeichert haben, führen Sie den Abgleich des FlexiLayouts erneut aus. Sie werden sehen, dass die Region des Blocks, die dem Adressfeld entspricht, eine nicht rechteckige Form annimmt, weil die Region des Namens daraus ausgeschnitten wurde.

Im Abschnitt Exclude regions of elements können Sie die Region einer gefundenen Hypothese für ein anderes Element aus dem Suchbereich des aktuellen Elements ausschließen. Um einen geometrisch komplexeren Bereich auszuschließen oder zuerst eine Region zu erkennen und sie dann aus dem Erkennungsprozess auszuschließen, verwenden Sie die Funktionen
Exclude, ExcludeRect und ExcludeSet im Feld Advanced pre-search relations.Die Region eines Blocks besteht definitionsgemäß aus Rechtecken, die übereinander angeordnet sind, sodass jede horizontale Linie die Region nur einmal schneiden kann; es kann also keine vertikalen „Zacken“ geben, die herausragen.Wenn sich daher die auszuschließende Zeile und die erforderlichen Informationen auf derselben oder annähernd derselben Höhe befinden, kann der Name bei der Erstellung des FlexiLayouts nicht ausgeschlossen werden. In diesem Fall kann der Name nach der Erkennung in FlexiCapture mithilfe der Regel „Substitute from the list“ ausgeschlossen werden.


