■Japanese/プロジェクトサンプル/excel_sample/予定シフトとスタッフプロパティインポートサンプル

スタッフプロパティで、数字だけで構成されたプロパティ(下ソースで公休数)は、Python Dictionaryとして取り出すことが出来ます。
これを利用してスタッフ毎の各種設定を行うことが出来ます。

import sc3
def 公休数設定():
	for person in 公休数.keys():
		#sc3.print(str(person)+'\n')
		value=公休数[person]
		sc3.print(staffdef[person]+'の公休数は'+str(value)+'回に制約\n')
		VList=[]
		for day in 全日:
			if  day<制約開始日:
				continue
			#Today 早残
			v1=sc3.GetShiftVar(person,day,'公休')
			VList.append(v1)
		s="person"+str(person)+"公休数"
		sc3.AddSoft(sc3.SeqError(value,value,7,VList),s,7) #許容エラー7 いい加減に設定される可能性がある

def 週あたりの勤務回数設定():
	for person in 週あたりの勤務回数.keys():
		n=週あたりの勤務回数[person]
		sc3.print(staffdef[person]+'の週当たりの勤務回数は'+str(n)+'回に制約\n')
		for mon in 月:#月曜日を起点に1週間見る
			sc3.print('月曜日 '+str(mon)+'\n')
			VList=[]
			for d in range(7):
				day=mon+d
				if day >制約終了日:
					break
				else:
					v1=sc3.GetShiftVar(person,day,'休日集合')# 
					VList.append(~v1)#休日の否定は勤務
			s="person"+str(person)+"週あたりの勤務回数設定"	
			if len(VList)==7:
				sc3.AddSoft(sc3.SeqError(n,n,4,VList),s,3) #level 3 許容エラー4
			else:
				nn=int(len(VList)*n/7);#7日に満たない場合は、リニア目標値設定 端数切捨て
				sc3.print(str(nn)+"に目標値を設定しました。\n")
				sc3.AddSoft(sc3.SeqError(nn,nn,4,VList),s,3)#level 3 許容エラー4 

公休数設定()
週あたりの勤務回数設定()