Skip to main content
Advanced pre-search relations では、FlexiLayout language を使用して、検索制約と要素のプロパティを設定します。コードを入力するペインは、Properties ダイアログの Advanced タブにあります。 Advanced pre-search relations ペインに入力したコードは、FlexiLayout 要素に対応する画像オブジェクトの検索を実行する直前に実行されます。プログラムはまず、Advanced タブの左側にあるタブで指定されたプロパティを使用し、その後でコードを実行します。 特定のパラメーターが、Advanced タブの左側にあるタブと Advanced タブ上のコードの両方で指定されている場合は、コードで指定された内容が優先されます。パラメーターが Advanced タブの左側にあるタブで指定されていても、コード内で指定されていない場合は、該当するタブで設定されたパラメーター値が使用されます。
The SearchText function (Static Text 要素) は例外です。この function では、Static Text タブですでに指定されている検索単語に検索単語が追加されます。
Advanced タブの左側にあるいずれかのタブでプロパティを指定している場合は、Advanced タブの Code ボタンをクリックして、それらをコードに変換できます。その後、生成されたコードをコピーまたは編集できます。
Advanced pre-search relations ペインに入力する追加の制約では、FlexiLayout ツリー内で現在の要素より上にある要素のみを参照できます。唯一の例外は、同じ 繰り返しグループ 要素内の subelement で、指定された要素より下にある同じグループ内の subelement の前のインスタンスを参照できます。

同じパラメーターに異なる値を設定する

同じパラメーターに異なる値を設定する必要がある場合があります。その場合は、if... then 演算子を使用します。

検索領域を制限する

検索領域は、画像領域を定義する任意の型 (RectRectArrayRegion) を使って指定できます。また、これらの型のいずれかを返す式を使って指定することもできます。式の計算結果は、RestrictSearchArea() function の引数として渡されます。
複数の要素の領域を組み合わせた式を渡すこともできます。

オブジェクトの検索をキャンセルする

文書によっては、画像上にある1つのオブジェクトが存在すると、別のオブジェクトは自動的に除外されることがあります。また、特定の条件が満たされた場合にのみ、特定のオブジェクトを検索したいケースもあります。DontFind() command を使うと、特定のオブジェクトを検索しないようプログラムに指示できます。この command が実行されると、プログラムは対応するオブジェクトに対して ヌル仮説 を生成します。

仮説を選択する

要素で指定された条件を満たす画像オブジェクトが複数見つかることがあります。この場合、プログラムは複数の仮説を生成します。この中から、画像上の別のオブジェクトまたは点に最も近い仮説だけを選択する必要がある場合は、次のいずれかの関数を使用できます。
複数の Nearest 関数を同時に使用することはできません。

複数ページ文書での検索

プログラムは複数ページ文書を1つのまとまりとして扱い、特定のページを指定しなくても、その中の要素を検索できます。 要素を任意のページの下半分で見つけられるように指定するには:
詳細については、PageRect 関数の説明を参照してください。 要素が文書の最後のページにあることを指定するには (このコードは、FlexiLayout のメイン部分で、Header 要素と Footer 要素 (存在する場合) の後にのみ記述できます) :
要素が、SearchElements.OtherElement という名前の要素が開始するページ上にあることを指定するには:
各ページで、SearchElements.RepeatableGroup という名前の繰り返しグループの仮説の各インスタンスより下に要素を配置できるよう指定するには:
SearchElements.Table という名前のテーブルの各サブテーブルのボディの下に、各ページで要素を配置できるように指定するには: