■14298 / 15階層) |
加工開始日を求めたい
|
□投稿者/ ONnoji -(2024/04/15(Mon) 18:09:28)
| 2024/04/15(Mon) 18:31:45 編集(投稿者)
> cmdテストClickの機能とprc加工日探索の機能を合体させた、ひとつの一般手続きを例示しようと思っていましたが、説明が長くなったので割愛します。 > > でも、合体させた場合には、プログラムが複雑にってしまって分かりにくくなるということはイメージできると思います。
上位モジュールと下位モジュールを合体させてみました。
複雑さが増して、その結果分かりにくくなっているでしょう??
最初はこれでもいいのですが、だって動くんだモン♪
でもね、モジュール化をしないと、一か月後、数か月後、一年後と時間が経てば経つほど、
記憶もあいまいになって、さらに複雑さも加わり、謎のプログラムに変容していくのです。アハハ。
しかし、モジュール化しておけば、記憶が曖昧になっていても、複雑さが軽減されているで、何とかなるのです。アハハ。
自分で作ったプログラムが解読出来なくて何時間も格闘するするのは無駄でしょう。、
だから、未来への投資だと思って、後々のことを考えて拙速にならないようにくれぐれも気を付けてください。
┌手続き定義開始 cmdテストClick( ) │ 変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg } │ 変数宣言 自動,日時 { &加工日1, &加工日2 } │ 変数宣言 自動,整数 { &multiTblNum } │ 変数宣言 自動,長整数{ &recordNumMain } /* 変数名が重複するので &recordNum → &recordNumMain に変更 */ │ 変数宣言 自動,長整数{ &recordNum } │ │ │ &msg = "Start" │ &msg = &msg + "\n\nこれはテスト用のメッセージボックスです" │ &msg = &msg + "\n\n不要になったらコメントアウトしてください" │ メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する │ │ 多重化 │ &multiTblNum = #is表 /* 多重化した表の表番号を取得 */ │ │ 解除 * │ 絞り込み [休日]{ [休日] = #u } │ ジャンプ 行番号 = 先頭 │┌繰り返し ( .not #eof ) ││ ││ &recordNumMain = #行番号 ││ **手続き実行 prc加工日探索( &加工日1, &加工日2 ) /* 下位モジュールを読み込んだのでコメントアウト */ ││ ││ &加工日1 = #u /* 参照引数を初期化 */ ││ &加工日2 = #u /* 参照引数を初期化 */ ││ ││ &recordNum = #行番号 ││ ジャンプ 行番号 = &recordNum ││┌if ( &recordNum > 5 ) │││ ジャンプ 行番号 = -5 │││ &加工日1 = [日付] ││└end ││ ││ ジャンプ 行番号 = &recordNum ││┌if ( &recordNum > 7 ) │││ ジャンプ 行番号 = -7 │││ &加工日2 = [日付] ││└end ││ ││ ジャンプ 行番号 = &recordNumMain ││ ││ トレース出力 _[日付], " ", _&加工日1, " ", _&加工日2 ││ 行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2 ││ ││ ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */ │└繰り返し終了 │ │ 終了 表 &multiTblNum /* 多重化した表を閉じる */ │ 編集表 &hwindow │ │ &msg = "Finish" │ &msg = &msg + "\n\nこれはテスト用のメッセージボックスです" │ &msg = &msg + "\n\n不要になったらコメントアウトしてください" │ メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する │ └手続き定義終了
p.s.
これは、適切に機能を分割していない例です。
既出の prc加工日探索 のように、機能を分割するべきです。
そして、 prc加工日探索 は本来ならば汎用性が求められるものですが、現行のサンプルは見本であって汎用性に欠けていますよ。(^^ゞ
|
|
|