Footer.kwTotal という名前がある場合にのみ現れ、同じ高さに配置されていることが分かります。
Total Quantity field と Total Amount field を検出するには、Character String 型の要素を使用します。これらの要素に共通する検索条件を指定するため、Group 要素である grTotal を作成します。
grTotal Group 要素を作成する
- Footer 要素内に Group 要素を作成し、grTotal という名前を付けます。
-
名前が存在しない場合は subelements の検索を停止するようにするため、Optional element を選択します。
詳細については、The Optional property of a Group element を参照してください。
- Advanced タブをクリックします。
-
Total Quantity field と Total Amount field は、画像上では名前
Footer.kwTotalがある場合にのみ現れるため、Advanced pre-search relations field に次の追加の検索制約を設定します:Footer.kwTotal要素が検出されなかった場合は、画像上でそのオブジェクトを検索しません。FlexiLayout language では次のようになります。If Footer.kwTotal.IsNull Then DontFind;
TotalQuantity 要素を作成する
- grTotal 要素で、型 Character String の要素を作成し、TotalQuantity という名前を付けます。
- Character String タブをクリックします。
-
Character count フィールドに、次のファジー区間を指定します:
{-1, 1, 10, INF}。これは文字列の長さの推定値です。想定される値の範囲は 1 ~ 10 です。この範囲外の仮説にはペナルティが課されます。 - 要素の他の parameters はデフォルト値のままにします。
- Relations タブをクリックします。
-
Total Quantity field は常に
Footer.kwTotalという名前の keywords と同じ高さか、やや下に配置されるため、次の検索制約を設定します:- 要素
Footer.kwTotalの Above、Offset = -200、Reference boundary = Bottom - 要素
Footer.kwTotalの Below、Offset = -20、Reference boundary = Top
- 要素
- Advanced タブをクリックします。
-
Total Quantity field は画像上では省略可能ですが、現れる場合は常に Quantity 列と一緒に現れ、その名前の下に配置されるため、Advanced pre-search relations field に次の追加の検索制約を設定します:
TableHeader.kwQuantity要素が検出されている場合にのみ、画像上でオブジェクトを検索します。列名の各 boundary から左右に 50 ドットを超える範囲は検索しないでください。FlexiLayout language では:If Not (TableHeader.kwQuantity.IsNull) Then{LeftOf: TableHeader.kwQuantity.Right, -50 * dot;RightOf: TableHeader.kwQuantity.Left, -50 * dot;}Else DontFind; - test images で FlexiLayout のマッチングを試し、該当するすべての画像でプログラムが要素を正常に検出することを確認します。
- TotalQuantity ブロックの位置を記述するには、ソース要素オプションを選択し、次に ”…” をクリックして、ソース要素として TotalQuantity 要素を選択します。
TotalAmount 要素を作成する
- grTotal 要素で、型 Character String の要素を作成し、TotalAmount という名前を付けます。
- Character String タブをクリックします。
-
Character count フィールドで、次のファジー区間を指定します:
[-1, 1, 20, 2147483647]。これは文字列の長さのおおよその見積もりです。想定される値の範囲は 1 ~ 20 です。この範囲外の仮説にはペナルティが課されます。 - 要素のその他のパラメーターはデフォルト値のままにします。
- Relations タブをクリックします。
-
Total Amount field は常に
Footer.kwTotalという名前のキーワードと同じ高さにあるため、次の検索制約を設定します:- 要素
Footer.kwTotalの上、Offset = -20、Reference boundary = Bottom。 - 要素
Footer.kwTotalの下、Offset = -20、Reference boundary = Top。
- 要素
- Advanced タブをクリックします。
-
Total Amount field は、Total 列名のすぐ下 (多少ずれる場合があります) にしか配置されず、また Unit Price 列と Sales 列の間にしか配置できないため、Advanced pre-search relations field に次の追加の検索制約を設定します:
TableHeader.kwTotal要素が検出されている場合は、TableHeader.kwTotal要素の右境界から右へ 70 ドット以内、かつTableHeader.kwTotal要素の左境界から左へ 50 ドット以内でオブジェクトを探します。 または、TableHeader.kwUnitPrice要素とTableHeader.kwSales要素が検出されている場合は、TableHeader.kwSales要素の左境界から右へ 40 ドット以内、かつTableHeader.kwUnitPrice要素の右境界より右側でオブジェクトを探します。それ以外の場合は、オブジェクトを探しません。FlexiLayout language では、次のようになります:If Not (TableHeader.kwTotal.IsNull) Then{LeftOf: TableHeader.kwTotal.Right, -70 * dot;RightOf: TableHeader.kwTotal.Left, -50 * dot;}ElseIf Not (TableHeader.kwUnitPrice.IsNull) and Not (TableHeader.kwSales.IsNull) Then{LeftOf: TableHeader.kwSales.Left, -40 * dot;RightOf: TableHeader.kwUnitPrice, 0 * dot;}Else DontFind; - テスト画像で FlexiLayout のマッチングを試し、該当するすべての画像でプログラムが要素を正しく検出できることを確認します。
-
TotalAmount ブロックの位置を記述するには、ソース要素オプションを選択し、次に
をクリックして、ソース要素として TotalAmount 要素を選択します。
