Erweiterte Beziehungen für die Vorsuche legen Suchbedingungen und Elementeigenschaften in der FlexiLayout-Sprache fest. Der Bereich, in dem Sie Ihren Code eingeben, befindet sich auf der Registerkarte Advanced im Dialogfeld Properties.
Der Code, den Sie im Bereich Erweiterte Beziehungen für die Vorsuche eingeben, wird unmittelbar vor der Suche nach dem Bildobjekt ausgeführt, das dem FlexiLayout-Element entspricht. Zunächst verwendet das Programm die Eigenschaften, die Sie auf den Registerkarten links von der Registerkarte Advanced angegeben haben, und führt dann den Code aus.
Wenn ein bestimmter Parameter sowohl auf einer Registerkarte links von der Registerkarte Advanced als auch im Code auf der Registerkarte Advanced angegeben ist, hat der Code Vorrang. Wenn ein Parameter auf einer Registerkarte links von der Registerkarte Advanced angegeben ist, aber nicht im Code, wird der Parameterwert der entsprechenden Registerkarte verwendet.
Die Funktion SearchText (Element vom Typ Static Text) ist eine Ausnahme. Diese Funktion wirdzusätzlicheSuchwörter zu den Wörtern hinzufügen, die bereits auf der Registerkarte Static Text angegeben sind.
Wenn Sie auf einer der Registerkarten links von der Registerkarte Advanced Eigenschaften angegeben haben, können Sie diese in Code umwandeln, indem Sie auf der Registerkarte Advanced auf die Schaltfläche Code klicken. Der generierte Code kann anschließend kopiert oder bearbeitet werden.
Die zusätzlichen Bedingungen, die im Bereich Erweiterte Beziehungen für die Vorsuche eingegeben werden, dürfen sich nur auf Elemente beziehen, die sich im FlexiLayout-Baum oberhalb des aktuellen Elements befinden. Die einzigen Ausnahmen sind die Subelemente desselben wiederholbare Gruppe-Elements; sie dürfen sich auf vorherige Instanzen von Subelementen beziehen, die sich in derselben Gruppe unterhalb des angegebenen Elements befinden.
Verschiedene Werte für denselben Parameter angeben
Manchmal müssen Sie demselben Parameter unterschiedliche Werte zuweisen. Verwenden Sie dazu den if... then-Operator:
Den Suchbereich einschränken
Der Suchbereich kann mit jedem Typ angegeben werden, der einen Bildbereich definiert: Rect, RectArray, Region. Er kann auch mit einem Ausdruck angegeben werden, der einen dieser Typen zurückgibt. Das Ergebnis der Auswertung des Ausdrucks wird als Argument an die Funktion RestrictSearchArea() übergeben:
Sie können auch einen Ausdruck übergeben, der die Regionen mehrerer Elemente zusammenführt:
Die Suche nach einem Objekt abbrechen
Bei manchen Dokumenten schließt das Vorhandensein eines Objekts im Bild automatisch ein anderes Objekt aus. In anderen Fällen möchten Sie vielleicht nur dann nach einem bestimmten Objekt suchen, wenn bestimmte Bedingungen erfüllt sind. Sie können das Programm anweisen, nicht nach einem bestimmten Objekt zu suchen, indem Sie den Befehl DontFind() verwenden. Sobald der Befehl ausgeführt wird, formuliert das Programm eine Nullhypothese für das entsprechende Objekt:
Manchmal erfüllen mehrere Bildobjekte die in einem Element angegebenen Bedingungen. Das bedeutet, dass das Programm mehrere Hypothesen formuliert. Wenn Sie aus dieser Menge nur die Hypothese auswählen möchten, die einem anderen Objekt oder Punkt im Bild am nächsten liegt, können Sie eine der folgenden Funktionen verwenden:
Sie können nicht mehrere Nearest-Funktionen auf einmal verwenden.
Suche in mehrseitigen Dokumenten
Das Programm behandelt ein mehrseitiges Dokument als eine einzige Einheit und kann nach einem Element in einem mehrseitigen Dokument suchen, ohne es einer exakten Seite zuzuordnen.
So geben Sie an, dass ein Element in der unteren Hälfte einer beliebigen Seite gefunden werden kann:
Weitere Informationen finden Sie in der Beschreibung der Funktion PageRect.
Um anzugeben, dass sich ein Element auf der letzten Seite eines Dokuments befindet (diesen Code können Sie nur im Hauptteil von FlexiLayout nach den Elementen Kopfzeile und Fußzeile schreiben, falls vorhanden):
Um anzugeben, dass sich ein Element auf der Seite befindet, auf der ein Element namens SearchElements.OtherElement beginnt:
Um anzugeben, dass ein Element auf jeder Seite unterhalb der Instanzen der Hypothesen einer wiederholbaren Gruppe namens SearchElements.RepeatableGroup positioniert sein kann:
Um festzulegen, dass ein Element auf jeder Seite unterhalb des Tabellenkörpers jeder Untertabelle einer Tabelle namens SearchElements.Table liegen kann: