| ■No13865に返信(ONnojiさんの記事) > 簡単に仕掛けを解説をします。 > > よろしければご参考にしてください。
せっかく作って頂いたので、貰いっぱなしは良くないと本日は
FW_オートINF_Framework_MkII.kex と 要領書.kex の 差異を見ていました。
・要領書.kexには 2行目に 変数宣言 局所,文字列{ &mString }がある
・要領書.kexには 252行目 から 1296行目が追加してある(ここがカスタムして頂いた所ですよね?ありがたいです!) > > <手続き一覧> > > 名札 メイン > > cmdStartupClick > > txtField_24::入力前 > > txtField_24::入力後 > │ > └ prc項目値代入実行 > > ■名札 メイン > > 変数宣言 局所,文字列{ &mString } > > 局所変数を1つ宣言しています。 > > > ■入力前と入力後のイベントハンドラ > > txtField_1::入力前/txtField_1::入力後 〜 txtField_100::入力前/txtField_100::入力後 とそれぞれ100個あります。 > コピペではなく事前に印字コマンドを利用してまとめて作ったものを読み込んだものです。 > > 以下の例はテキストオブジェクト:txtField_24 のイベントハンドラです。 > > 手続き定義開始 txtField_24::入力前(参照 文字列 &編集文字列) > &mString = &編集文字列 > トレース出力 &this, " ", _&mString, " 入力前" > 手続き定義終了 > > 手続き定義開始 txtField_24::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続) > トレース出力 &this, " ", _&mString, " ", _&編集文字列, " 入力後" > 手続き実行 prc項目値代入実行( &this, &mString, &編集文字列 ) > 手続き定義終了 > > 手続き定義開始 prc項目値代入実行( 文字列 &objectName, 文字列 &lastString, 文字列 &nowString ) > 変数宣言 自動,文字列{ &icon, &title = "prc項目値代入実行( )", &msg } > 変数宣言 自動,文字列{ &source } > トレース出力 &title + " 引数:&objectName = " + &objectName + " 引数:lastString = " + &lastString + " 引数:&nowString = " + &nowString > > オブジェクト操作 &objectName{ &source = ソース } > if ( &lastString <> &nowString ) > 項目値代入 [更新日] = #日時値 > トレース出力 &title + " 項目名" + &source + " の値が変更されたので、[項目値代入 [更新日] = #日時値]を実行しました" > else > トレース出力 &title + " 項目名" + &source + " の値は変更されていません" > end > > 手続き定義終了
要領書.wfxの定義で txtField が100まであったので、式は txtField100 まであるのだろうと予想はできました。(書いてある内容は分からないのですが・・・)
txtField24 までは連番であるのに、その次が100なので 25 から 99 はどうやって省けるのか不思議に感じたました。
> > ■開始時実行コマンドボタンから実行するプロシージャ > > 手続き定義開始 cmdStartupClick( ) > 変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg } > 変数宣言 自動,文字列{ &objectName } > 変数宣言 自動,文字列{ &source } > 変数宣言 自動,整数 { &cnt } > > &msg = &EZWmFieldList1 > &icon = "i" > **手続き実行 INFprcMsgPause( &icon, &title, &msg ) > > &cnt = 1 > &objectName = #対応文字列( &EZWmFieldList1, &cnt ) > 繰り返し ( &objectName <> #u ) > > オブジェクト操作 &objectName{ &source = ソース } > **トレース出力 _&cnt, " ", _&objectName, " ", _&source > > **トレース出力 " if ( &source = ""[製品長]"" .or &source = ""[製品幅]"" ) = " + #str( ( &source = "[製品長]" .or &source = "[製品幅]" ) ) > if ( &source = "[製品長]" .or &source = "[製品幅]" ) > > オブジェクト操作 &objectName{ 入力前 = 1, 入力後 = 1 } > end > > &cnt = &cnt + 1 > &objectName = #対応文字列( &EZWmFieldList1, &cnt ) > 繰り返し終了 > > 手続き定義終了
今回は 数値 を更新した時 更新日を本日に変更して頂く物を作って頂きました。
質問ですが、将来的に 文字列 を更新した時も 更新日を本日にしたい場合が出たときは
変数宣言 自動,整数 { &cnt }
と
&cnt = 1 &objectName = #対応文字列( &EZWmFieldList1, &cnt ) 繰り返し ( &objectName <> #u )
がキモになるんですかね?
素人考えで申し訳ないです・・・
自分としては、せっかく作って貰った物を何も考えずに使うよりは、分からないなりに考えてみたいので!
|