Skip to main content
テーブルブロックは、検出されたテーブルの座標を FlexiCapture に渡すために使用します。検出されたテーブルのデータは FlexiCapture で抽出されます。テーブルブロックは、ブロック全体を囲む Region だけでなく、各テーブルセルを囲む矩形も返す点で、他の種類のブロックとは異なります。また、テーブルブロックには、他の種類のブロックにはない追加のプロパティとして、テーブルに含まれる可能性のある列のリストがあります。FlexiLayout には 1 つ以上の Table 要素を含めることができ、これらの要素は、ブロックで指定された列をどこでどのように探すかをプログラムに指示します。
  • Table 要素を作成する際は、既に作成されている テーブルブロックにそれを「バインド」する必要があるため、通常は先にブロックを作成します。最初におおよその search area を指定し、その後でブロックを探すための要素を 1 つ以上作成して、それらの Table 要素を使用してブロックの search area を最終的に確定できます。
  • 複数の要素を作成し、それぞれに同じ テーブルブロックを見つけるための独自のアルゴリズムを設定することもできます。ブロックが見つかった後、そのテーブルブロックに最も適した Table 要素を選択するようプログラムに指示できます。これは Region expression を使用して行います。
テーブルブロックは、FlexiLayout tree では テーブルブロック アイコン で示されます。

テーブルブロックを作成する

1

FlexiLayout ウィンドウに切り替える

2

Blocks ブランチを選択する

FlexiLayout ツリーで Blocks ブランチを選択します。
3

テーブルブロックを追加する

FlexiLayout メニューから Add Block → Table を選択するか、ショートカットメニューから New → Table を選択します。
4

テーブルブロック タブでブロックのプロパティを設定する

次の項目を指定します。
  • ブロックの名前
  • 必要に応じてコメント
  • ブロック領域およびテーブルの行・列の区切りが Table 要素によって返される領域と一致する場合は、Source element オプションを選択し、検索ボタン をクリックします。Select Element ダイアログで、領域がブロック領域と一致する Table 要素を選択し、OK をクリックします。
  • ブロック領域がどの Table 要素の領域とも一致しない場合は、Region expression オプションを選択し、Region expression フィールドに必要なコードを入力します。コードを確認するには Check をクリックします。
5

Columns タブで列を指定する

ブロック内に含まれる可能性のある列を指定します。
  1. Add… をクリックし、列名を入力します。テスト画像で使われている列名をそのまま使用すると便利です。
  2. Type ドロップダウンリストから、列の型 (TextBarcodeCheckmarkPicture、または Non-Recognized Block) を選択します。
  3. 列名または型を変更するには、Edit… をクリックし、Edit Table Column ダイアログで新しい名前を入力するか、別の型を選択します。
  4. 下へボタン ボタンと 上へボタン ボタンを使用して、データ抽出アプリケーションで必要な順序に列を並べます。

例: 選択するブロック領域を指定する

ブロックの領域を指定するには、TableHypothesis 型の定義済み変数 OutputTable を使用します。 次のコード例では、最も多くの行が検出された Table 要素 を選択します。
この例のTable 要素 SearchElements.TableElement1SearchElements.TableElement2 は、Region expression field に上記のコードを含む同一の Table ブロックを参照している必要があります。