- テーブルの ヘッダー。前に決めたとおり、すでに検出されている補助要素を使って列名を指定します。
- テーブルの フッター。前に決めたとおり、フッター は、最終部分の開始を識別する InvoiceFooter グループの、すでに検出されている必須要素 Paragraph を使用して指定します。この要素は、テーブルの最下部に最も近い要素として定義済みです。
- テーブルの検索領域。ほかの用途では不要な最後の Sales 列の名前を使って、右側の検索領域を制限できます。
InvoiceTable 要素を作成する
- SearchElements ツリーで、型が Table の要素を作成し、InvoiceTable という名前を付けます。
- Columns タブをクリックします。
- Select をクリックし、Step 3 で先ほど作成した InvoiceTable ブロックを検索対象のブロックとして選択します。
- テーブル列の検索パラメーターを指定します。
- 列の一覧で Reference を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwReference要素を使用します。使用するには、Use found element as column name を選択し、
をクリックして TableHeader.kwReferenceを選択します。 - 列の一覧で Designation を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwDesignation要素を使用します。 - 列の一覧で Unit を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwUnit要素を使用します。 - 列の一覧で Quantity を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwQuantity要素を使用します。 - 列の一覧で UnitPrice を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwUnitPrice要素を使用します。 - 列の一覧で Total を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
TableHeader.kwTotal要素を使用します。
- 列の一覧で Reference を選択し、プロパティ… ボタンをクリックします。
この列名には、前の手順で検出した
- Order タブをクリックします。
- 検索対象の列は、他の列 (たとえば ExtraQtyTag) によって間に別の列が入る場合がありますが、列の順序は常に固定されています (最初が Designation、次が Unit Price、その次が Total) 。そのため、Rules for column order を選択し、Add… をクリックして、列を次の順序で追加します: Designation << Unit Price << Total。
- ヘッダー タブをクリックします。テーブルの ヘッダー は必要ですが、追加の制約はないため、デフォルト値のままにします。
- フッター タブをクリックします。テーブルの末尾部分には、前の手順で検出した
InvoiceFooter.Paragraph要素を使用します。Use found element as footer オプションを選択し、
をクリックしてから、InvoiceFooter.Paragraph要素を選択します。
- Rows タブをクリックします。
-
一部の列のセルには複数行が含まれる場合があるため、行を分割するためのマスター列を指定する必要があります。マスター列を使用して行を検出する を選択します。
まず Total 列を指定します。この列には常にデータがあり、各テーブルレコードでこの列には 1 行のデータが含まれます。
この列が画像上で検出されない場合は、次の行分割オプションとして Unit Price 列と Quantity 列を指定します。これらの列を選択するには、
ボタンを使用します。
-
[Relations] タブを選択します。対象のテーブル列は Sales 列名の左側にあるため、次の検索条件を追加します。
TableHeader.kwSales要素の左、Offset = 0
- テスト画像に対して FlexiLayout を Match します。 プログラムはすべての画像で Table 要素 を正しく検出しますが、一部の画像では Quantity 列に直前の列の不要なテキストが含まれています。 Quantity 列の正しいデータと不要なデータを区別するために、この列の content type を指定します。
- Table 要素 InvoiceTable の Properties ダイアログを開きます。 [Columns] タブをクリックし、Quantity 列の [プロパティ…] ダイアログを開いて、[Check content type] オプションを選択します。[Type of column content] で [Number] を選択します。
- ここで画像に対して FlexiLayout を Match すると、Quantity 列には必要なとおり数字だけが含まれることがわかります。
- 同様に、UnitPrice 列と Total 列には通貨 content を指定します。
- InvoiceTable ブロック の位置を指定するには、[Source 要素] オプションを選択します。
をクリックし、source 要素 として InvoiceTable を指定します。
