- InvoiceHeader 要素内で、Character String 型の要素を作成し、InvoiceNumber という名前を付けます。
- Character String タブをクリックします。
- アルファベットを指定します。 -./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
- アルファベットに含まれない文字の Percentage を 30% に設定します。
-
Character count field で、文字列の長さに対してファジー区間
{-1, 3, 20, INF}を指定します。これは、想定される値が 3 ~ 20 文字の範囲に収まることを前提としています。この区間外の仮説にはペナルティが課されます。 -
一部の画像では、Invoice Number field の検索範囲に、すでに検出された kwInvoiceDate 要素が含まれています。この要素を検索範囲から除外して、プログラムが Invoice Number field の仮説にこのテキストを含めないようにします。
- Search Constraints タブで、Exclude regions of elements field の横にある Add… ボタンをクリックします。
- 要素の一覧から kwInvoiceDate を選択します。
- OK をクリックします。文字列
SearchElements.InvoiceHeader.kwInvoiceDateが Exclude regions of elements field に表示されます。

- Advanced タブをクリックします。
-
Advanced pre-search relations で、追加条件を指定します。kwInvoiceNumber という名前が見つからない場合は InvoiceNumber フィールドを検索せず、見つかった場合は、検索領域を矩形の配列として指定します。1 つは名前の右側、もう 1 つは少しオフセットした名前の下側です。FlexiLayout language では、この条件を次のように記述できます。
-
field の検索領域は、2 つの矩形に制限されます。1 つは field 名の右側、もう 1 つはその下側です。field データが field 名の右側にある場合、field の下には別のテキストが存在することがよくあります (テスト画像では、ほとんどの場合 Date フィールドの名前とデータです) 。この余分なテキストも 請求書番号 field の検索領域に含まれるため、プログラムはこのテキストに対する 仮説 を生成します。この 仮説 の Quality に影響を与えるには、Advanced post-search relations field で追加チェックを指定します。field 名の下にあるテキストほど、ペナルティは大きくなります。FlexiLayout language では、この条件を次のように記述できます。
- InvoiceFooter 要素を一時的に Exclude し、FlexiLayout をマッチングします。
-
InvoiceNumber block の位置を、InvoiceNumber 要素の矩形領域を縦横に 5 ドット拡大した領域として指定します。これを行うには、Expression を選択し、次の式を入力します。
