/// <summary> /// 生成班级课表(SqdScheduleList),不会生成各节课的规则 /// </summary> private void SetSqdScheduleListData() { TimeTestMatrix = new DtMatrix <bool>(DataRule.Solution); SqdScheduleList.Clear(); foreach (EnLsnAct act in DataRule.Lsn.eachLsnAct()) { SqdSchedule sqdSch; if (!SqdScheduleList.TryGetValue(act.ClsLesson.Squad, out sqdSch)) { sqdSch = new SqdSchedule(DataRule.Solution, act.ClsLesson.Squad); SqdScheduleList.Add(act.ClsLesson.Squad, sqdSch); } sqdSch.FailLsnActs.Add(act); //暂时存下 } foreach (SqdSchedule sqdSch in SqdScheduleList.Values) { foreach (EnLsnAct act in sqdSch.FailLsnActs) { if (act.ClsLesson.Teacher != null && !sqdSch.Teaches.Contains(act.ClsLesson.Teacher)) { sqdSch.Teaches.Add(act.ClsLesson.Teacher); } } PutActToMatrix(sqdSch); } }
/// <summary> /// 有课表被编辑过 /// </summary> public bool IsModified(BaseEntity entity) { if (entity is EnSquad) { //当班级课表被打开,删除班级后需要关闭打开的课表Form, //课表Form关闭时需要IsModified,但这是此班级已经不在SqdScheduleList中 //直接返回一个false,简化程序逻辑(这是一个陷阱,要小心) if (SqdScheduleList.ContainsKey(entity as EnSquad)) { return(SqdScheduleList[entity as EnSquad].Modified); } else { return(false); } } else { return(false); } }