| 2024/04/09(Tue) 14:39:10 編集(投稿者)
> ・やりたい事 > 休日を除いた工場の加工開始日を 加工日1 加工日2 に表示(代入?)したい。 > 加工日1の加工日数は5日 加工日2の加工日数は7日 です。 > 会社の休日カレンダーは作成済です。
人が行う場合も、プログラムで行う場合も同じです。
0.表(.tbx)の現在のレコード(行)から、 1.前に5レコード戻って値を変数Aに代入 2.前に7レコード戻って値を変数Bに代入 3.元のレコードへ戻って、加工日1に変数Aを、加工日2に変数Bの値を格納
という段取りになると思いますが、厄介なこと休日を除外しなければなりませんね。 ・・・・・・・・・・・・・・・・・・・・・・
そこで休日を除外するには、事前に条件式: [休日] = "" で絞り込めばOKだと気が付くでしょう。
以上を参考にして手続きを作ってくださいと言っても、慣れていないと大変でしょう。(^^ゞ
なので、以下に加工日数.kexのサンプルを示します。
コピペで動きますよ。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
■加工日数.kex
名札 メイン
*
手続き定義開始 cmdテストClick( ) 変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg } 変数宣言 自動,日時 { &加工日1, &加工日2 } 変数宣言 自動,整数 { &multiTblNum } 変数宣言 自動,長整数{ &recordNum }
&msg = "Start" &msg = &msg + "\n\nこれはテスト用のメッセージボックスです" &msg = &msg + "\n\n不要になったらコメントアウトしてください" メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
多重化 &multiTblNum = #is表 /* 多重化した表の表番号を取得 */
解除 * 絞り込み [休日]{ [休日] = #u } ジャンプ 行番号 = 先頭 繰り返し ( .not #eof )
&recordNum = #行番号 手続き実行 prc加工日探索( &加工日1, &加工日2 ) ジャンプ 行番号 = &recordNum
トレース出力 _[日付], " ", _&加工日1, " ", _&加工日2 行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */ 繰り返し終了
終了 表 &multiTblNum /* 多重化した表を閉じる */ 編集表 &hwindow
&msg = "Finish" &msg = &msg + "\n\nこれはテスト用のメッセージボックスです" &msg = &msg + "\n\n不要になったらコメントアウトしてください" メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
手続き定義終了
手続き定義開始 prc加工日探索( 参照 日時 &加工日1, 参照 日時 &加工日2 ) 変数宣言 自動,文字列{ &title = "prc加工日探索( )", &msg } 変数宣言 自動,長整数{ &recordNum }
&加工日1 = #u /* 参照引数を初期化 */ &加工日2 = #u /* 参照引数を初期化 */
&recordNum = #行番号 ジャンプ 行番号 = &recordNum if ( &recordNum > 5 ) ジャンプ 行番号 = -5 &加工日1 = [日付] end
ジャンプ 行番号 = &recordNum if ( &recordNum > 7 ) ジャンプ 行番号 = -7 &加工日2 = [日付] end
手続き定義終了
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
■加工日数.WFX のコマンドボタン
オブジェクト名: cmdテスト 標題 : テスト
機能名 機能パラメータリスト 1 表示 2 手続き実行 cmdテストClick 3 なし 4 なし
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
■トレース結果
<参考> 40 [トレース出力]ウィンドウと[トレース出力]コマンド|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部 http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section40
:[日付] : 2024年 4月 1日 0時 0分 0秒 &加工日1 : &加工日2 : :[日付] : 2024年 4月 2日 0時 0分 0秒 &加工日1 : &加工日2 : :[日付] : 2024年 4月 3日 0時 0分 0秒 &加工日1 : &加工日2 : :[日付] : 2024年 4月 4日 0時 0分 0秒 &加工日1 : &加工日2 : :[日付] : 2024年 4月 5日 0時 0分 0秒 &加工日1 : &加工日2 : :[日付] : 2024年 4月 6日 0時 0分 0秒 &加工日1 : 2024年 4月 1日 0時 0分 0秒 &加工日2 : :[日付] : 2024年 4月 8日 0時 0分 0秒 &加工日1 : 2024年 4月 2日 0時 0分 0秒 &加工日2 : :[日付] : 2024年 4月 9日 0時 0分 0秒 &加工日1 : 2024年 4月 3日 0時 0分 0秒 &加工日2 : 2024年 4月 1日 0時 0分 0秒 :[日付] : 2024年 4月10日 0時 0分 0秒 &加工日1 : 2024年 4月 4日 0時 0分 0秒 &加工日2 : 2024年 4月 2日 0時 0分 0秒 :[日付] : 2024年 4月11日 0時 0分 0秒 &加工日1 : 2024年 4月 5日 0時 0分 0秒 &加工日2 : 2024年 4月 3日 0時 0分 0秒 :[日付] : 2024年 4月12日 0時 0分 0秒 &加工日1 : 2024年 4月 6日 0時 0分 0秒 &加工日2 : 2024年 4月 4日 0時 0分 0秒 : 途中省略 : :[日付] : 2025年 5月14日 0時 0分 0秒 &加工日1 : 2025年 5月 8日 0時 0分 0秒 &加工日2 : 2025年 5月 2日 0時 0分 0秒 :[日付] : 2025年 5月15日 0時 0分 0秒 &加工日1 : 2025年 5月 9日 0時 0分 0秒 &加工日2 : 2025年 5月 7日 0時 0分 0秒 :[日付] : 2025年 5月16日 0時 0分 0秒 &加工日1 : 2025年 5月10日 0時 0分 0秒 &加工日2 : 2025年 5月 8日 0時 0分 0秒 :[日付] : 2025年 5月19日 0時 0分 0秒 &加工日1 : 2025年 5月12日 0時 0分 0秒 &加工日2 : 2025年 5月 9日 0時 0分 0秒 :[日付] : 2025年 5月20日 0時 0分 0秒 &加工日1 : 2025年 5月13日 0時 0分 0秒 &加工日2 : 2025年 5月10日 0時 0分 0秒 :[日付] : 2025年 5月21日 0時 0分 0秒 &加工日1 : 2025年 5月14日 0時 0分 0秒 &加工日2 : 2025年 5月12日 0時 0分 0秒 :[日付] : 2025年 5月22日 0時 0分 0秒 &加工日1 : 2025年 5月15日 0時 0分 0秒 &加工日2 : 2025年 5月13日 0時 0分 0秒 :[日付] : 2025年 5月23日 0時 0分 0秒 &加工日1 : 2025年 5月16日 0時 0分 0秒 &加工日2 : 2025年 5月14日 0時 0分 0秒 :[日付] : 2025年 5月24日 0時 0分 0秒 &加工日1 : 2025年 5月19日 0時 0分 0秒 &加工日2 : 2025年 5月15日 0時 0分 0秒 :[日付] : 2025年 5月26日 0時 0分 0秒 &加工日1 : 2025年 5月20日 0時 0分 0秒 &加工日2 : 2025年 5月16日 0時 0分 0秒 :[日付] : 2025年 5月27日 0時 0分 0秒 &加工日1 : 2025年 5月21日 0時 0分 0秒 &加工日2 : 2025年 5月19日 0時 0分 0秒 :[日付] : 2025年 5月28日 0時 0分 0秒 &加工日1 : 2025年 5月22日 0時 0分 0秒 &加工日2 : 2025年 5月20日 0時 0分 0秒 :[日付] : 2025年 5月29日 0時 0分 0秒 &加工日1 : 2025年 5月23日 0時 0分 0秒 &加工日2 : 2025年 5月21日 0時 0分 0秒 :[日付] : 2025年 5月30日 0時 0分 0秒 &加工日1 : 2025年 5月24日 0時 0分 0秒 &加工日2 : 2025年 5月22日 0時 0分 0秒
p.s.
なお、サンプルは多重化して、レコードをあちこっちに移動させていますが、これ以外にも方法があると思います。
プログラムの作り方はいろいろありますので、サンプルはその一つの例だとお考え下さい。
p.p.s
サンプルはレコードをあちこっちに移動させていますので、多重化しない状態で行うと目が回ります。(@_@)
ということで多重化をしています。
サンプルの一般手続き:prc加工日探索( ) では参照の引数を使っています。
これは一見すると難しく見えますが、慣れてしまえば簡単ですよ。
難しそうだからと敬遠していると、一番美味しいところを食べそこないますよ。(^^ゞ
27.3 引数の[値渡し]と[参照渡し]|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部 http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section27-3
|