静的テキストの内容を動的 (ダイナミック) に変更して、フィールドの位置を動的に読み取りたい

質問

FlexiLayoutのStatic Text: 静的テキスト の内容を動的 (ダイナミック) に変更して、FlexiCapture において、異なる位置を動的 (ダイナミック) に変更して読み取ることが可能ですか。

回答

FlexiLayoutのStatic Text: 静的テキスト の内容を動的 (ダイナミック) に変更して、FlexiCapture において、異なる位置を動的 (ダイナミック) に変更して読み取ることが可能です。

その例を示します。

1. FlexiCaptureがサポートしているデータベースを用意します。

「入力ファイル名」に従って、読み取る位置を動的 (ダイナミック) に読み取る方法

図示すると、下記のような例:

360011289920-01.png

Static Text: 静的テキストの内容を動的 (ダイナミック) に変更 するには、同要素のプロパティ 「静的テキスト」タブの「データベースからテキストを検索」を利用します。

注意: 「ファイルからテキストを検索」では、動的 (ダイナミック) な Static Text: 静的テキスト の内容の変更はできません。

360011289920-02.png

各データベースの仕様に従って、Static Text: 静的テキストの内容 

360011289920-03.png

360011289920-04.png

360011289920-05.png

利用するデータベースのクエリーの文法に従い、SQLを記述:

360011289920-06.png

プロジェクト 又は バッチタイプ の プロパティの「イベントハンドラ」の「照合前」のイベントで [スクリプトの編集] からスクリプトを編集する。

360011289920-07.png

スクリプトの内容は下記のような内容:

360011289920-08.png

// スクリプトの内容

using System;

string imageSourceField = "ImageSource";

// "." の位置を頼りに「ファイル名」を得る

string imageSourceFileSubPath = Document.Pages[0].ImageSourceFileSubPath;

int iExtention = imageSourceFileSubPath.LastIndexOf('.');

string imageSourceFileSubPathName = imageSourceFileSubPath.Substring(0, iExtention);

// 用意したデータベースを書き換える SQL をデータベースの仕様に沿った文法で記述、作成する。

string updateCommand = ("UPDATE <> SET key='" + imageSourceFileSubPathName + "' WHERE `id`=<値>;");

// データベースに接続する文字列を作成。文字列はデータベースにより異なるので注意。

string connectionString = ("DSN=<DSN>;DATABASE=<DataBaseName>;UID=<UserID>;PWD=<Password>");

// データベースを更新

System.Data.Odbc.OdbcDataAdapter dataAdapter = new System.Data.Odbc.OdbcDataAdapter(updateCommand, connectionString);

System.Data.DataTable table = new System.Data.DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);

 // END ///////

上図では、毎回、入力画像を読み込む際に、FlexiLayout で設定した Static Text: 静的テキスト の内容がファイル名に従った内容に変わり、動的(ダイナミック)に 読み取り位置を変更して文字の読み取りが行える。

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。