質問
FlexiLayoutのStatic Text: 静的テキスト の内容を動的 (ダイナミック) に変更して、FlexiCapture において、異なる位置を動的 (ダイナミック) に変更して読み取ることが可能ですか。
回答
FlexiLayoutのStatic Text: 静的テキスト の内容を動的 (ダイナミック) に変更して、FlexiCapture において、異なる位置を動的 (ダイナミック) に変更して読み取ることが可能です。
その例を示します。
1. FlexiCaptureがサポートしているデータベースを用意します。
「入力ファイル名」に従って、読み取る位置を動的 (ダイナミック) に読み取る方法
図示すると、下記のような例:
Static Text: 静的テキストの内容を動的 (ダイナミック) に変更 するには、同要素のプロパティ 「静的テキスト」タブの「データベースからテキストを検索」を利用します。
注意: 「ファイルからテキストを検索」では、動的 (ダイナミック) な Static Text: 静的テキスト の内容の変更はできません。
各データベースの仕様に従って、Static Text: 静的テキストの内容
利用するデータベースのクエリーの文法に従い、SQLを記述:
プロジェクト 又は バッチタイプ の プロパティの「イベントハンドラ」の「照合前」のイベントで [スクリプトの編集] からスクリプトを編集する。
スクリプトの内容は下記のような内容:
// スクリプトの内容
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件のコメント
サインインしてコメントを残してください。