| 2024/09/11(Wed) 00:13:39 編集(投稿者)
ジェダイの桐さん
以下は、毎度お馴染みのトレース出力です。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
┌when :sample_入荷トランザクション.wfx hdl= 3>cmdCSV読み込み処理Click( )を実行開始しました │ │ :( #ファイルサイズ( &targetFileName ) > 0 ) : 0 │ │┌when :sample_入荷トランザクション.wfx hdl= 3>cmd発注トランザクションを開くClick( )を実行開始しました ││ ││ :&wfm : D:\〇〇〇〇\sample_発注トランザクション.wfx &tbl : D:\〇〇〇〇\sample_発注トランザクション.tbx ││ :&hdl : 4 &openStatus : 1 ││ :&windowStatus : 0 ││ │└end │ │ : &targetFileName = D:\〇〇〇〇\sample_発注トランザクション.wfx │ : &found = 4 │ : &status = 4 │ : &multi = 0 │ : &mode = 0 │ │┌when :sample_入荷トランザクション.wfx hdl= 3>prcCSV読み込み処理( )を実行開始しました ││ ││ :&return : 1 &objectName : cmd納品書CSVを読み込む ││ :( .not #eof ) : 1 [伝票番号] : 240825 ││ ││┌when :sample_入荷トランザクション.wfx hdl= 3>prc別のフォームへ変数の値を送る( )を実行開始しました │││ │││ :&sendMacro : 手続き実行 prc文字列を受け取る( "m伝票番号","240825" ) │││ │││┌※これはセンダー( HDLCOMprcMacroSend )が出力しているトレースです このトレース出力は自動で行われて止められません ││││ ││││:sample_入荷トランザクション.wfx hdl= 3> ││││ HDLCOMprcMacroSend( ) --> ハンドル番号:4 のフォームの局所変数:&HDLCOMmOnMacro に 1 を代入しました ││││ ││││:sample_入荷トランザクション.wfx hdl= 3> ││││ HDLCOMprcMacroSend( ) --> ハンドル番号:4 のフォームの局所変数:&HDLCOMmReceiveMacro に ││││ 手続き実行 prc文字列を受け取る( "m伝票番号","240825" ) を代入しました ││││ ││││:sample_入荷トランザクション.wfx hdl= 3>HDLCOMprcMacroSend( ) ││││ HDLCOMprcMacroSend( ) 自身のフォームの局所変数:&HDLCOMmSendMacro に ││││ 手続き実行 prc文字列を受け取る( "m伝票番号","240825" ) を代入しました ││││ ││││:sample_入荷トランザクション.wfx hdl= 3> │││└ HDLCOMprcMacroSend( ) --> ハンドル番号:4 のフォームの[タイマー2]イベントを予約しました(インターバルは0.1秒) │││ │││ :&hdl : 4 &sendMacro : 手続き実行 prc文字列を受け取る( "m伝票番号","240825" ) &done : 1 │││ ││└end ││ │└end │ └end
┌when :sample_発注トランザクション.wfx hdl= 4>prc文字列を受け取る( )を実行開始しました └end
ハンドル:3の[sample_入荷トランザクション.wfx]から、※ハンドル番号は、使用中の桐のハンドルの使用状態によって変動します。
ハンドル:4の[sample_発注トランザクション.wfx]向けて。
コマンドまたはメソッドとして実行可能なメッセージを送っています。
メッセージの内容は、[手続き実行 prc文字列を受け取る( "m伝票番号","240825" )]です。
これを[コマンド]コマンドで実行しますので、最後に
┌when :sample_発注トランザクション.wfx hdl= 4>prc文字列を受け取る( )を実行開始しました └end
というトレースが得られます。
手続き定義開始 prc文字列を受け取る( 文字列 &variableName, 文字列 &string ) 変数宣言 自動,文字列{ &icon, &title = "prc文字列を受け取る( )", &msg } 変数宣言 自動,文字列{ &setString }
変数宣言 自動,文字列{ &traceMsg = #cond( #変数( "INFmTraceFormPathAdd" ), &INFmMyWfmPath ) + &INFmMyWfmName + " hdl=" + #last( " " + #str( &hwindow ), 2 ) + ">" + &title } 変数宣言 自動,整数 { &traceON = #対応番号( #uc2( #変数( "INFmTraceModuleNameList" ) ), "ALL" ) .or #対応番号( #uc2( #変数( "INFmTraceModuleNameList" ) ), "APP" ) }
&traceON = 1 条件 ( &traceON ) トレース出力 &traceMsg + "を実行開始しました"
&setString = #set( &variableName, &string )
&msg = "メッセージを受け取りました" &msg = &msg + "\n\n&variableName = " + &variableName &msg = &msg + "\n\n&string = " + &string &msg = &msg + "\n\n変数に代入した値 = " + #変数( &variableName ) &icon = "i" 手続き実行 INFprcMsgPause( &icon, &title, &msg )
条件 ( &traceON ) トレース出力 &traceMsg + "を実行終了しました" 手続き定義終了
p.s.
このような[トレース出力]をするのは、決して「ジェダイの桐」さんが理解し易くなるように配慮したワケではありませんよ。
こういうのは、作者(今回の場合は ONnoji )が、プログラムが正しく動いているか否かを確認するために書いたのです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・
もちろん、「ジェダイの桐」さんも同じように[トレース出力]コマンドを活用されていると存じます。
一般手続きやイベントハンドラに[トレース出力]コマンドを記述するのは、一見すると単なるお無駄な作業に見えるかもしれませんが、
実は、[一般手続き]や[イベントハンドラ]の実行経過を確認するために[必須のルーティン(「決まった行動」や「日課」)]なんですよね。
当たり前のルーティン(「決まった行動」や「日課」)として[トレース出力]コマンドを使っていれば、
当該の[一般手続き]や[イベントハンドラ]の実行を誰でも簡単にテスト(検証)出来るワケです。 ・・・・・・・
ということで、手間が掛かるかもしれませんが[トレース出力]コマンドを記述する習慣は忘れないでくださいね。
世の中には、[トレース出力]コマンドを使ったテスト(検証)が無い、[一般手続き]や[イベントハンドラ]を書く人もあります。
むしろ、その方が圧倒的多数だろうと思いますけれど。
しかし、それではその[一般手続き]や[イベントハンドラ]は到底信用できないに決まっていますよね。 ・・・・・・・・・・・・・・・・
だから、[一般手続き]や[イベントハンドラ]の信頼性を確認・確保・担保する意味で、[トレース出力]コマンドを記述する習慣は忘れないでくださいね。
<余談>
桐10sの前の桐10のリリース当時には、[トレース出力]ウィンドウの出力結果は文字化けして使い物になりませんでしたよ。
もちろん、当方だけが気が付いたワケではないと思いますが、
早々に当方からK3さんへ虫報告をしまして、
現況のようにマシな出力がされるようにしてもらいましたっけ。アハハハha (^^ゞ
|