ユーザースクリプト使用例 ≫ トップ

仕様 繰り返し勤務必須(グループにより異なる)

サンプルコードのダウンロード  サンプルの使い方
メニュー
仕様
シフト表の作成結果
ユーザースクリプト
条件表

グループ10(武士)は、「夜勤3連続必須、その翌日は「休み
以外のグループは、 「夜勤4連続必須、その翌日は「休み

その他の仕様
・連続夜勤間は、最低6日を空ける

シフト表の作成結果

赤丸【グループ10(武士)】の部分では、夜勤連続必須、その翌日に「休み」割り当てられている。
以外のグループでは「連続」夜勤必須



ユーザースクリプト - 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}

条件表


要員設定




×
PageTop