メインコンテンツへスキップ
テーブルブロックは、検出されたテーブルの座標を FlexiCapture に渡すために使用されます。検出されたテーブルのデータは、FlexiCapture で抽出されます。テーブルブロックが他の種類のブロックと異なるのは、ブロック全体を囲む Region だけでなく、各テーブルセルを囲む矩形も返す点です。また、他の種類のブロックと比べて、テーブルブロックには追加のプロパティとして、そのテーブルに含まれる可能性のある列のリストがあります。FlexiLayout には、1 つ以上の Table 要素を含めることができ、これらの要素は、ブロックで指定された列をどこでどのように探すかをプログラムに指示します。
  1. Table 要素を作成する際は、すでに作成済みの テーブルブロック にそれを「バインド」する必要があります。そのため、通常は最初にブロックを作成します。まず、おおよその search area を指定し、次にそのブロックを見つけるための 1 つ以上の要素を作成してから、それらの Table 要素を使用してブロックの search area を確定できます。
  2. 複数の要素を作成し、それぞれに同じ テーブルブロック を見つけるための独自のアルゴリズムを記述できます。ブロックが見つかった後で、そのテーブルブロックに最も適した Table 要素を選択するようプログラムに指示できます。これは Region expression によって行います。
テーブルブロックは、FlexiLayout ツリーで として表示されます。 テーブルブロックを作成するには:
  1. FlexiLayout ウィンドウに切り替えます。
  2. FlexiLayout treeBlocks ブランチを選択します。
  3. FlexiLayout メニューから Add Block → Table を選択するか、shortcut menu から New → Table を選択します。
  4. ブロックのプロパティを指定します。
  5. テーブルブロック タブで次を設定します:
    • ブロックの名前。
    • ブロックのコメント (省略可) 。
    • ブロックの Region と、テーブルの行および列への分割が Table 要素によって返される Region と一致する場合は、Source element オプションを選択し、 をクリックします。Select Element ダイアログで、Region がブロックの Region と一致する Table 要素を選択し、OK をクリックします。
    • ブロックの Region がどの Table 要素の Region とも一致しない場合は、Region expression オプションを選択し、Region expression field に必要なコードを入力します。Check をクリックしてコードを確認します。
  6. Columns タブで、ブロック内に存在する可能性のある列を指定します。これを行うには、Add… をクリックして列名を入力します。テスト画像で使われている列名をそのまま使用すると便利な場合があります。Type ドロップダウンリストから、目的の列の型を選択します。選択できる型は、Text、Barcode、Checkmark、Picture、または Non-Recognized Block です。列の名前または型を変更するには、Edit… をクリックし、Edit Table Column ダイアログで新しい名前を入力するか、その列の別の型を選択します。 (Down) ボタンと (Up) ボタンを使用して、列を data capture application で必要な順序と同じ順序に並べます

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

ブロックの領域を指定するには、TableHypothesis 型の定義済み変数 OutputTable を使用します。 次のコード例では、最も多くの行が見つかった Table element を選択します。 let T1 = SearchElements.TableElement1; let T2= SearchElements.TableElement2; if T1.RowsCount > T2.RowsCount then OutputTable = T1; else OutputTable = T2;
この例のテーブル要素 SearchElements.TableElement1SearchElements.TableElement2 は、上記のコードを含む Region expression field を持つ同じ テーブルブロック を参照している必要があります。