サンプル3。ステップ25:TotalQuantityおよびTotalAmount要素でTotalQuantityおよびTotalAmountフィールドを検出
試験画像の分析により、TotalQuantityおよびTotalAmountのフィールドは、名前Footer.kwTotalとともに発生し、同じ水準にあることがわかります。文字列の要素を使用して、TotalQuantityおよびTotalAmountフィールドを検出します。すべての列名に共通する検索制限を指定するには、グループ要素 — grTotalを作成します。
グループ要素grTotalを作成するには:
- フッター要素内で、グループ要素を作成して名前をgrTotalと付けます。
- 名前がない場合にサブ要素の検索を止めることを決めたため、オプション要素を選択します。
注意:詳細はヘルプ記事のコツと裏技\グループ要素の「オプション」プロパティをご参照ください。 - 高度タブをクリックします。
- TotalQuantityおよびTotalAmountフィールドは名前Footer.kwTotalとともにしか発生しないため、高度な検索前関係フィールドで以下の追加的な検索制限を設定します:Footer.kwTotal要素が検出されなかった場合は、画像でオブジェクトを探さないでください。FlexiLayout言語では:
If Footer.kwTotal.IsNull Then DontFind;
TotalQuantityフィールドは、Total行とQuantity列が交わる部分にあります。最初の制限は既にグループ要素水準で指定されています。2番目の制限を指定するため、前に検出された列名を参照要素として使用します。
TotalQuantity要素を作成するには:
- grTotal要素で、種類文字列の要素を作成して名前をTotalQuantityと付けます。
- 文字列タブをクリックします。
- 文字カウントフィールドで、このあいまい間隔を指定します:{-1, 1, 10, INF}。これは、文字列の長さの推定です。可能な値は1~10と仮定します。この範囲外の仮説にはペナルティが科せられます。
- 要素の他のパラメータでは、デフォルト値をそのままにしておきます。
- 関係タブをクリックします。
- TotalQuantityフィールドは常に名前Footer.kwTotalのキーワードと同じ水準または若干下に位置しているため、以下の検索制限を設定します:
- 上要素Footer.kwTotal, オフセット =-200, 参照境界 = 下
- 下要素Footer.kwTotal, オフセット =-20, 参照境界 = 上
注意:オフセット値を設定する前に、事前認識で検出された隣接オブジェクトの幾何学的特性(すなわちサイズと境界)を分析したいと思うかもしれません。オフセット値は試行錯誤で選択されます。 - 高度タブをクリックします。
- TotalQuantityフィールドは画像ではオプションですが、発生する時はQuantity列とその名前の下に表示されるため、高度な検索前関係フィールドで以下の追加的な検索制限を設定します:TableHeader.kwQuantity要素が検出されている場合は、画像のオブジェクトのみを探します;列名のそれぞれの境界の左または右から50ドット以上離れているものは探さないでください。FlexiLayout言語では:
If Not (TableHeader.kwQuantity.IsNull) Then
{
LeftOf: TableHeader.kwQuantity.Right, -50 * dot;
RightOf: TableHeader.kwQuantity.Left, -50 * dot;
}
Else DontFind; - FlexiLayoutを試験画像と合致させて、該当する場合に、すべての画像の要素が正常に検出されていることを確認してください。
- TotalQuantityブロックの位置を記述するには、ソース要素オプションを選択して、「…」をクリックし、TotalQuantity要素をソース要素として選択します。
TotalAmountフィールドは、Total行(表のフッター)とTotal列が交わる部分にあります。最初の制限は既にグループ要素水準で指定されています。2番目の制限を指定するため、前に検出された列名を参照要素として使用します。
TotalAmount要素を作成するには:
- grTotal要素で、種類文字列の要素を作成して名前をTotalAmountと付けます。
- 文字列タブをクリックします。
- 文字カウントフィールドで、このあいまい間隔を指定します:[-1, 1, 20, 2147483647]。これは、文字列の長さの推定です。可能な値は1~20と仮定します。この範囲外の仮説にはペナルティが科せられます。
- 要素の他のパラメータでは、デフォルト値をそのままにしておきます。
- 関係タブをクリックします。
- TotalAmountフィールドは常に名前Footer.kwTotalのキーワードと同じ水準に位置しているため、以下の検索制限を設定します:
- 上要素Footer.kwTotal, オフセット =-20, 参照境界 = 下。
- 下要素Footer.kwTotal, オフセット =-20, 参照境界 = 上。
- 高度タブをクリックします。
- TotalAmountフィールドはTotal列の真下(若干のずれもあり)、Unit PriceおよびSales列の間にしか置けないため、高度な検索前関係フィールドで以下の追加的な検索制限を設定します: TableHeader.kwTotal要素が検出されている場合は、TableHeader.kwTotal要素の右境界の右70ドット以内、TableHeader.kwTotal要素の左境界の左50ドット以内のオブジェクトを探すか、TableHeader.kwUnitPriceおよびTableHeader.kwSales要素が検出された場合は、TableHeader.kwSales要素の左境界の右40ドット以内、TableHeader.kwUnitPrice要素の右境界の右40ドット以を探すか、オブジェクトを探さないかです。FlexiLayout言語では:
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ブロックの位置を記述するには、ソース要素オプションを選択して、をクリックし、TotalAmount要素をソース要素として選択します。
12.04.2024 18:16:07