‖一括処理部品集5‖yakin.html 《戻る》 《玄関へ》
《 「勤務表作成」”夜勤”を必要人数分だけ割り当てる 》
【内容】
「勤務表作成」(4週8休制用)で、勤務種類を自動入力する
一例です。対象者をでたらめに並べ替えておき、先頭行から
順次勤務の種類を必要人数分だけ入力していきます。
既に何かのデータが入力されてあればスキップします。
【用例】
・・・・・・・・
名札 夜勤千鳥
項目集計 [番号]
&全行数=&有効件数
手続き実行 入力対象
&N=1,&KOU=&N+3 @
繰り返し &N=1,28
A
手続き実行 表初期化
&項目名1=#CASE(&N,"1","2","3","4","5","6","7","8","9","10"
\
,"11","12","13","14","15","16","17","18","19","20"
\
,"21","22","23","24","25","26","27","28")
&選択件数=0
検索条件登録 条件名="夜勤",{[番号]>0,[番号]=<&LL,&項目名1=40}
絞り込み 条件名="夜勤"
&YAKIN=&選択件数
&YA[&N]=&YAKIN
繰り返し終了
手続き実行 表初期化
手続き実行 乱数順
絞り込み [番号]{>0,<=&LL}
&N=1,&KOU=&N+3
繰り返し &N=1,28
&項目名1=#CASE(&N,"1","2","3","4","5","6","7","8","9","10"
\
,"11","12","13","14","15","16","17","18","19","20"
\
,"21","22","23","24","25","26","27","28")
&M=&N+1,&KOU=&N+3,&JIKOU=&KOU+1,&JIJI=&KOU+2
&項目名2=#CASE(&M,"1","2","3","4","5","6","7","8","9","10"
\
,"11","12","13","14","15","16","17","18","19","20"
\
,"21","22","23","24","25","26","27","28","次月")
条件 (&N>1 .and &行番号=1) ジャンプ 行番号=先頭
条件 (&N>1 .and &行番号=0) ジャンプ 行マーク=1
&FG=&YA[&N]
繰り返し (&FG<2) B
ケース開始
ケース (#終端行=0 .AND
#項目属性(&KOU,0)=0 .and #項目属性(&JIKOU,0)=0) C
条件 (&N=<27
.and #項目属性(&JIJI,0)=0) 行訂正 &KOU=40,&JIKOU=41,&JIJI=50
条件 (&N=28
.and #項目属性(&JIJI,0)=0) 行訂正 &KOU=40,&JIKOU=41
条件 (&N=<28
.and #項目属性(&JIJI,0)<>0) 行訂正 &KOU=40,&JIKOU=41
ジャンプ 行番号=+1
&FG=&FG+1 D
ケース (#終端行=1)
ジャンプ 行番号=先頭
ケース (#終端行=0 .AND
#項目属性(&KOU,0)<>0)
ジャンプ 行番号=+1
ケース (#終端行=0 .AND
#項目属性(&JIKOU,0)<>0)
ジャンプ 行番号=+1
ケース その他
ジャンプ 行番号=+1
ケース終了
繰り返し終了
条件 (#終端行=1) &行番号=1
条件 (#終端行=0) &行番号=0
条件 (#終端行=0) 行マーク定義 1
繰り返し終了
手続き実行 表初期化
表形式編集 ガイド="終了:/Q"
手続き終了
・・・・・・・・
【解説】
@ 入力する項目は使用表の4番目からです。
A 既に入力されている1日における夜勤(数値データ:40)の数を4週間にわたり
予めチェックし、配列変数に入れておきます。
B ここでは1日の夜勤の必要人数は2名としています。
C 夜勤(40)に当たると明くる日は「あけ」(41)、さらにその翌日は「公休」(50)
という設定条件がある例です。
D 夜勤を入力すると残りの入力数を減らします。
【参考】
「製品案内」→「勤務表作成補佐」→から処理画面がご覧になれます。
END
of FILE 《戻る》 《玄関へ》