リクエストのサンプルが DataSetRequestSample エレメントにあります。このエレメントは既定で無効になっています。
タイプ |
説明 |
NamedValue |
名前付きの値 |
コンストラクタ |
|
NamedValue( String, String ) |
|
メソッド |
|
String Name() |
名前付きの値の名前を返します |
String Value() |
名前付きの値の値を返します |
NamedValueArray |
名前付きの値の配列です |
コンストラクタ |
|
NamedValueArray() |
|
NamedValueArray( NamedValue namedValue ) |
|
メソッド |
|
Int Count() |
配列にあるエレメントの合計数を返します。 |
NamedValue GetAt( Int index ) |
指定されたインデックス番号のエレメントを返します。 |
Void Add( NamedValue namedValue ) |
名前付きの値を配列に追加します。 |
Void Add( NamedValueArray namedValueArray ) |
名前付きの値の配列を、名前付き値の配列に追加します。 |
Void InsertAt( Int index, NamedValue namedValue ) |
NamedValueを位置インデックスに挿入します。 |
Void DeleteAll() |
配列にあるエレメントをすべて削除します。 |
Void DeleteAt( Int index ) |
位置インデックスのエレメントをすべて削除します。 |
Int FindByName( String name ) |
nameという名前の位置を返します。 |
関数
構文:
- ABBYY FlexiLayout Studio で FlexiLayout を操作する場合は、文書定義へのパスとデータセットの名前を使ってデータセットにアクセスします。
- コンパイルされた FlexiLayout がABBYY FlexiCaptureの文書定義に追加された後は、データセットにアクセスする時にその名前だけが使用されます。
- connectionStringフォーマット:
"dbtype=FCDataset;fcTemplate="文書定義へのパス";datasetName="データセットの名前";"
注:(パスの部分はダブルバックスラッシュ "\\" で区切る必要があります)
- searchFields
値を抽出する必要がある列の名前の配列です。
- searchCriteria
列-エントリーペアの配列であり、空白の場合はすべての値を返します。
- 1 つのフィールドに複数の値が含まれているリクエストでは、またはオペレータ
- それぞれ 1 つのフィールドにのみ対応する値が複数含まれているリクエストでは、とオペレータ
- 1 つのフィールドに複数の値が含まれており、複数のフィールドに値が含まれているリクエストでは、またはを用いて1つのフィールドの複数の値を分離し、とを用いてさまざまなフィールドの値を結合します。
定義 |
説明 |
Logic TestAccessToFCDataSet( String connectionString ) |
データセットへのテスト接続 |
Logic TestFCDataSetSearchCriteria( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) |
データセットの検索状況のテスト |
StringArray FieldNamesOfFCDataset( String connectionString ) |
インデックス番号を昇順でソートしたデータセットから、すべてのフィールドリストを返します。 |
StringArray FieldNamesOfFCDataset( String connectionString, StringArray searchFields ) |
こちらはデータセットで指定したデータセットのフィールドのリストを昇順のインデックス番号で返します。複雑な列がある場合は、RecordOfFCDataset 関数と併せて使用する必要があります。 |
Int RecordCountOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria ) |
検索条件で指定されているデータセットからエントリーの数を返します。RecordOfFCDataset 関数を使って返されるエントリーの数を調べるのに使用します。 |
Void PrepareRecordsetOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) |
データセットへのクエリのデータを準備します。RecordOfFCDataset 関数を呼び出す前に、すべての新しい検索条件セットについてこの操作を実行する必要があります。 |
StringArray RecordOfFCDataset( String connectionString, StringArray searchFields, NamedValueArray searchCriteria, Int rowIndex ) |
データセットへのクエリに返された結果で、数値rowIndexを持つエントリからの値の配列を返します。データセット。値の数は、searchFields で渡されるフィールドの数と等しくなります(これには複雑な列の場合も含まれます)。 |
Quality ValidateByFCDataSet( String word, String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxErrors, Rational maxErrorsPart, Logic ignoreSpaces = true, Int maxRecordsCount = DefaultMaxRecordsCount ); |
文字列word の品質を返します。フィールドのインデックス番号を承認します。FieldNamesOfFCDataset 関数の出力をインデックス化することでインデックス番号を取得できます。 |
Void SearchTextFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) |
この関数は、静的テキスト関数の語を検索する条件の指定に使われます。この関数が呼び出されると、既存の検索条件は新しい条件に置き換えられます。フィールドのインデックス番号を承認します。FieldNamesOfFCDataset 関数の出力をインデックス化することでインデックス番号を取得できます。 |
Void RegularExpressionFromFCDataSet( String connectionString, Int fieldIndex, NamedValueArray searchCriteria, Int maxRecordsCount = DefaultMaxRecordsCount ) |
この関数は、CharString 関数の正規表現を使用して検索条件を指定するために使います。この関数が呼び出されると、既存の検索条件は新しい条件に置き換えられます。フィールドのインデックス番号を承認します。FieldNamesOfFCDataset 関数の出力をインデックス化することでインデックス番号を取得できます。 |
外部データベースの列からの行を画像で検索する方法
- FieldNamesOfFCDataset を使用して、昇順のインデックス番号で並べ替えた列のリストを取得します。
- データを検索する必要がある列のインデックス番号を決定します。
- データセットからのデータをフィルターする条件の配列を作成します。
- 列のインデックス番号とフィルター条件を SearchTextFromFCDataSet へ(正規表現を使用する必要がある場合は RegularExpressionFromFCDataSet へ)渡します。
認識されたバッチがエクスポートされると、このコードが自動的に生成されますABBYY FlexiCapture
外部データベースの複数の列からのエントリー用に画像を検索する方法
またSearchTextFromFCDataSet関数を呼び出すたびに検索パラメータが置き換えられるので、この関数を何度も呼び出すのは無意味です。これには回避策があります。外部データベースから文字列を取得して、次に渡します→SearchText関数。この関数を呼び出すと、文字列が置き換わる代わりに既存の検索パラメータに追加されます。
この操作を行うには、以下のステップを完了させてください:
- データを検索する列の名前の配列を作成します。
- データセットのデータをフィルターする条件の配列を作成します。
- 次の関数を使って返されるエントリーの量を決定します。RecordCountOfFCDataset関数。
- クエリデータを準備するのにPrepareRecordsetOfFCDataset関数を使用します。
- 次のメソッドを使ってすべてのレコードを確認し、各レコードの配列を取得します→RecordOfFCDatasetメソッド。
- 配列の各エレメントの値を次の関数に渡します→SearchText関数。
複雑な列を扱う場合の追加注意事項
- そのFieldNamesOfFCDataset関数は、複雑な列の名前が複数回発生する配列を返します。発生の回数は、エンコードされた外部データベースにある列インスタンスの数と同じです。
例:{VendorId, VATID, Name, Name, Name, City}。この例では、データセットの名前という複雑な 1 つの列について、外部データベースに 3 つの列が含まれています。
- もしsearchCriteria複雑な列(上記の例など)に対応するフィールド条件が SearchCriteria に含まれている場合は、この条件を使用し、これらの列のインスタンスをすべてチェックします。
- もしsearchFields複雑な列(上記の例など)に対応するフィールド条件が searchFields に含まれている場合、この結果には各列のインスタンスからの値の配列が含まれています。
たとえば、{VendorId, VATID, Name, Name, Name, City} に対して
searchFields = { VATID, Name, City}, you will receive
{VATID_value, Name_valueInColumn1, Name_valueInColumn2, Name_valueInColumn3, City_value}
- 返される列のリストを取得できます。これはsearchFields配列をFieldNamesOfFCDataset関数に渡します。