- Footer 要素内に Group 要素を作成し、grTotal という名前を付けます。
- 名前が存在しない場合は subelements の検索を停止するようにするため、Optional element を選択します。 注。 詳細については、Help の記事 Tips and tricks\The “Optional” property of a Group element を参照してください。
- Advanced タブをクリックします。
- Total Quantity field と Total Amount field は、画像上では Footer.kwTotal という名前がある場合にのみ現れるため、Advanced pre-search relations field に次の追加の検索制約を設定します:If the Footer.kwTotal element has not been detected, do not look for the object on the image. FlexiLayout language では次のようになります。 If Footer.kwTotal.IsNull Then DontFind;
- grTotal 要素内に、Character String 型の要素を作成し、TotalQuantity という名前を付けます。
- Character String タブをクリックします。
- Character count field に、次のファジー区間を指定します: {-1, 1, 10, INF}。これは character string の長さの目安です。取り得る値は 1 から 10 の範囲と想定します。この範囲外の仮説にはペナルティが課されます。
- 要素の他の parameters については、既定値のままにします。
- Relations タブをクリックします。
- Total Quantity field は、常に Footer.kwTotal のキーワードと同じ高さか、その少し下に配置されるため、次の検索条件を設定します:
- 要素 Footer.kwTotal の Above、Offset = -200、Reference boundary = Bottom
- 要素 Footer.kwTotal の Below、Offset = -20、Reference boundary = Top 注。 Offset の値を設定する前に、事前認識時に検出された隣接 objects の幾何学的特性 (つまりサイズや boundaries) を解析しておくとよいでしょう。Offset の値は試行錯誤で決定します。
- Advanced タブをクリックします。
- Total Quantity field は画像上では任意ですが、出現する場合は常に Quantity 列と一緒に現れ、かつその名前の下に配置されるため、Advanced pre-search relations field に次の追加の検索制約を設定します:Look for the object on the image only if the TableHeader.kwQuantity element has been detected; Look no farther than 50 dots to the left or to the right of the respective boundaries of the column name. FlexiLayout language では次のようになります。 If Not (TableHeader.kwQuantity.IsNull) Then { LeftOf: TableHeader.kwQuantity.Right, -50 * dot; RightOf: TableHeader.kwQuantity.Left, -50 * dot; } Else DontFind;
- テスト画像に対して FlexiLayout のマッチングを実行し、該当するすべての画像でプログラムが要素を正しく検出することを確認します。
- TotalQuantity ブロック の位置を記述するには、Source element オプションを選択し、”…” をクリックして、ソース要素として TotalQuantity 要素を選択します。
- grTotal 要素で、型が Character String の要素を作成し、名前を TotalAmount にします。
- Character String タブをクリックします。
- Character count field で、次のファジー区間を指定します: [-1, 1, 20, 2147483647]。これは文字列の長さのおおよその見積もりです。想定される値の範囲は 1 ~ 20 です。この範囲外の仮説にはペナルティが適用されます。
- 要素の他の parameters には既定値をそのまま使用します。
- Relations タブをクリックします。
- Total Amount field は常に Footer.kwTotal という名前のキーワードと同じ高さにあるため、次の 検索条件 を設定します:
- Footer.kwTotal 要素の Above、Offset = -20、Reference boundary = Bottom。
- Footer.kwTotal 要素の Below、Offset = -20、Reference boundary = Top。
- Advanced タブをクリックします。
- Total Amount field は Total 列名のすぐ下にしか存在せず (多少ずれる場合があります) 、さらに Unit Price 列と Sales 列の間にのみ存在するため、Advanced pre-search relations field に次の 追加の検索制約 を設定します:If the TableHeader.kwTotal element has been detected, look for the object no farther than 70 dots to the right of the right boundary of the TableHeader.kwTotal element and no farther than 50 dots to the left from the left boundary of the TableHeader.kwTotal element; or, if the TableHeader.kwUnitPrice and TableHeader.kwSales elements are detected, look for the object no farther than 40 dots to the right of the left boundary of the TableHeader.kwSales element and to the right of the right boundary of the TableHeader.kwUnitPrice element; otherwise do not look for the object.FlexiLayout language では: If Not (TableHeader.kwTotal.IsNull) Then { LeftOf: TableHeader.kwTotal.Right, -70 * dot; RightOf: TableHeader.kwTotal.Left, -50 * dot; } Else If 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 ブロックの位置を記述するには、Source element オプションを選択し、次に
をクリックして、ソース要素として TotalAmount 要素を選択します。
