ユーザースクリプト使用例 ≫ トップ
仕様 繰り返し勤務必須(グループにより異なる)
グループ10(武士)は、「夜勤」3連続必須、その翌日は「休み」
以外のグループは、 「夜勤」4連続必須、その翌日は「休み」
その他の仕様
・連続夜勤間は、最低6日を空ける
シフト表の作成結果
赤丸【グループ10(武士)】の部分では、
夜勤が
3連続必須、その翌日に「
休み」割り当てられている。
以外のグループでは「
4連続」夜勤必須
ユーザースクリプト - VBScript
勤務番号 1:日勤 5:夜勤
下記の意味
前日が「夜勤」以外で、割り当てようとしている勤務が「夜勤」の場合
(=連続夜勤の最初の日)
・連続夜勤間の間隔を制限
2,3,4,5にち前に「夜勤」が割り当てられていたら「夜勤」不可
・連続夜勤数まえの「夜勤」以外の連続勤務数制限
連続勤務日数上限を「6」日としているため、連続夜勤前の他の連続勤務数を制限して、
途中で割り当て不可になるになることを防止。
・グループ10は4連続以上不可、以外は3連続以上不可
・未来方向に「予約」が有る場合、途中で割り当て不可になることを防止
グループごとの連続夜勤日数の制限と、その翌日の勤務制限(休みにする)
function JudgeKinmu()'勤務可能判定
'--- スクリプト開始 ---
if 前日勤務(1)<>5 then '前日が「夜勤」以外=初日「夜勤」割り当て
if 勤務番号()=5 then '当日「夜勤」?
'連続「夜勤」の間隔を6日以上空ける
if 前日勤務(2)=5 then JudgeKinmu=-1
if 前日勤務(3)=5 then JudgeKinmu=-1
if 前日勤務(4)=5 then JudgeKinmu=-1
if 前日勤務(5)=5 then JudgeKinmu=-1
'既に「夜勤」以外が3日以上w割当済みの場合は不可
'「夜勤」連続割り当てが途中で不可になるのを防止
'(連続勤務日数上限が「6」で制限済みの為)
if グループ番号()=10 then
if 連続勤務日数()>=4 then JudgeKinmu=-1
else
if 連続勤務日数()>=3 then JudgeKinmu=-1
end if
'未来に予約がある場合は不可
if 翌日勤務(3)>0 then JudgeKinmu=-1
if 翌日勤務(4)>0 then JudgeKinmu=-1
end if
end if
'グループ毎の「夜勤」連続数に達していたら勤務不可(=休み)
if グループ番号()=10 then
'既に3連続「夜勤」がある場合は不可
if 過去指定勤務連続数(5)=3 then JudgeKinmu=-1
else
'既にく4連続「夜勤」がある場合は不可
if 過去指定勤務連続数(5)=4 then JudgeKinmu=-1
end if
'--- スクリプト終わり --
end function}
条件表
要員設定