- テーブルの ヘッダー を記述します。 Step 13 で決めたとおり、Reference 列と Designation 列の名前はキーワードで記述し (Table 要素 → プロパティ ダイアログ → Columns タブ → column プロパティ ダイアログ)、数量、単価、合計金額 の各列名は、前に記述した補助 要素 を使って検出します。
- テーブルの フッター を記述します。 Step 13 で決めたとおり、フッター は、キーワードやフレーズを使って フッター の先頭を見つける、前に記述した 要素 を使って検出します。
- テーブルの search area を記述します。 右側の検索範囲を制限するため、Sales 列名を使用します。
InvoiceTable 要素を作成する
- 型 テーブル の要素を作成し、名前を InvoiceTable にします。
- Columns タブをクリックします。
- Select をクリックし、前述の InvoiceTable ブロックを InvoiceTable 要素で検出するブロックとして指定します。詳細な手順については、Step 3 を参照してください。
- Reference 列を選択して プロパティ… をクリックします。この列名の検索にはキーワード Reference を使用するため、デフォルト値のままにします。
- Designation 列を選択して プロパティ… をクリックします。この列名の検索にはキーワード Designation を使用するため、デフォルト値のままにします。
- 数量 列を選択して プロパティ… をクリックします。この列名の検出には、前に検出した要素
TableHeader.kwQuantityを使用します。Use found element as column name オプションを選択し、
をクリックして TableHeader.kwQuantity要素を選択します。

- UnitPrice 列を選択して プロパティ… をクリックします。この列名の検出には、前に検出した要素
TableHeader.kwUnitPriceを使用します。Use found element as column name オプションを選択し、
をクリックして TableHeader.kwUnitPrice要素を選択します。

- 合計金額 列を選択して プロパティ… をクリックします。この列名の検出には、前に検出した要素
TableHeader.kwTotalを使用します。Use found element as column name オプションを選択し、
をクリックして TableHeader.kwTotal要素を選択します。 - Order タブをクリックします。
- 対象の列の間に別の列 (たとえば Unit) が入ることがありますが、対象の列は常に Reference、Designation、数量、単価、合計金額 の順に並びます。Rules for column order オプションを選択し、Add… をクリックして、次の列順を指定します:
Reference << Designation << Quantity << Unit Price << Total.


- ヘッダー タブをクリックします。ヘッダーは必要ですが、検索条件は追加しないため、デフォルト値のままにします。

- フッター タブをクリックします。フッターの検出には、先に検出した要素
Footer.kwFooterを使用します。Use found element as footer オプションを選択し、
をクリックして Footer.kwFooter要素を選択します。

- Rows タブをクリックします。
-
テーブル内の一部の列には複数行のエントリが含まれる場合があるため、行を検出するためのマスター列を指定する必要があります。Use master columns to detect rows オプションを選択します。
この列には常にデータが含まれ、各エントリがテーブルの1行に対応するため、主マスター列として 合計金額 列を指定します。この列がドキュメント上で検出されない場合に備えて、2番目と3番目のマスター列として、それぞれ 数量 列と 単価 列を指定します。
をクリックし、この順序でマスター列を指定します。

-
Relations タブをクリックします。目的の列は Sales 列名の先頭より左側 (少し間隔を空けた位置) にあるため、次の検索制約を設定します。
- 要素
TableHeader.kwSalesの Left of - Offset = -40、Reference boundary = Left。
- 要素
- テスト画像に対して FlexiLayout をマッチングします。テーブル要素が存在するすべての画像で、プログラムが正常に検出できていることがわかります。 ただし、一部の画像では 数量 列に前の列の不要なアーティファクトも含まれています。有用なデータをノイズから分離するため、この列に現れる可能性のあるコンテンツの型を指定します。
- InvoiceTable 要素の プロパティ ダイアログを開きます。Columns タブをクリックし、数量 列の プロパティ ダイアログを開いて、Check content type オプションを選択します。Type of column content ドロップダウンリストで Number を選択します。

- テスト画像に対して FlexiLayout のマッチングを試し、数量 列に不要なデータが含まれていないことを確認します。
- InvoiceTable ブロックの位置を記述するには、Source element オプションを選択してから、
をクリックし、ソース要素として InvoiceTable 要素を指定します。
