private void ChangeStudentsScoreCalcRuleID(string id) { _logSaver.ClearBatch(); List <StudentRecordEditor> studentRecordEditors = new List <StudentRecordEditor>(); foreach (var stu in Student.Instance.SelectedList) { StudentRecordEditor editor = stu.GetEditor(); editor.OverrideScoreCalcRuleID = id; studentRecordEditors.Add(editor); string s = string.Empty; if (stu.Class != null) { s += stu.Class.Name; if (stu.SeatNo != "") { s += "(" + stu.SeatNo + "號)"; } s += " "; } if (stu.StudentNumber != "") { s += stu.StudentNumber + " "; } if (s == "") { s += "學生:"; } s += stu.Name; string desc = string.Empty; if (string.IsNullOrEmpty(id)) { desc = string.Format("學生「{0}」不指定計算規則", s); } else { desc = string.Format("學生「{0}」指定計算規則為:{1}", s, ScoreCalcRule.Instance.Items[id].Name); } _logSaver.AddBatch("成績系統.計算規則", "學生指定計算規則", desc); } if (studentRecordEditors.Count > 0) { studentRecordEditors.SaveAllEditors(); _logSaver.LogBatch(); // 同步 JHDAL List <string> StudentIDs = (from data in Student.Instance.SelectedList select data.ID).ToList(); JHStudent.RemoveByIDs(StudentIDs); JHStudent.SelectByIDs(StudentIDs); } }