private int SortSchoolYear(SemesterHistoryItem a, SemesterHistoryItem b) { string stringA = a.SchoolYear.ToString().PadLeft(5, '0') + a.Semester.ToString().PadLeft(5, '0'); string stringB = b.SchoolYear.ToString().PadLeft(5, '0') + b.Semester.ToString().PadLeft(5, '0'); return(stringA.CompareTo(stringB)); }
/// <summary> /// 設定學期歷程對照 /// </summary> /// <param name="item"></param> public void SetHistory(SemesterHistoryItem item) { int grade = item.GradeYear; int new_schoolYear = item.SchoolYear; //年級對照學年度:相同年級的學年度,取學年度較高者 if (GradeToSchoolYear.ContainsKey(grade)) { int old_schoolYear = GradeToSchoolYear[grade]; if (new_schoolYear > old_schoolYear) { GradeToSchoolYear[grade] = new_schoolYear; } } //學年度對照年級:相同學年度的年級,取年級較高者 if (!SchoolYearToGrade.ContainsKey(new_schoolYear)) { SchoolYearToGrade.Add(new_schoolYear, grade); } else if (grade > SchoolYearToGrade[new_schoolYear]) { SchoolYearToGrade[new_schoolYear] = grade; } //上課天數 string key = item.SchoolYear + "_" + item.Semester; int dayCount = item.SchoolDayCount.HasValue ? item.SchoolDayCount.Value : 0; if (!AttendanceObjDic.ContainsKey(key)) { AttendanceObjDic.Add(key, new AttendanceObj(dayCount)); } }
private void CheckYearAndSemester(SubjectScoreObj obj) { string key = obj.StudentId + "_" + _schoolYear + "_" + _semester; if (!_Student_schoolyear_sems.Contains(key) && obj.GradeYear != 0) { _Student_schoolyear_sems.Add(key); SemesterHistoryItem item = new SemesterHistoryItem(); item.SchoolYear = _schoolYear; item.Semester = _semester; item.GradeYear = obj.GradeYear; item.SeatNo = obj.SeatNo; item.ClassName = obj.ClassName; item.Teacher = obj.TeacherName; _Update_sems_history[obj.StudentId].SemesterHistoryItems.Add(item); } }
/// <summary> /// 取得年級比例 /// </summary> private string GetSchoolYearByGradeYear(SemesterHistoryItem item) { if (item.GradeYear == 1) { if (item.Semester == 1) { return("1"); } else if (item.Semester == 2) { return("2"); } } else if (item.GradeYear == 2) { if (item.Semester == 1) { return("3"); } else if (item.Semester == 2) { return("4"); } } else if (item.GradeYear == 3) { if (item.Semester == 1) { return("5"); } else if (item.Semester == 2) { return("6"); } } return(""); }
public StudentSemesterHistory(DocumentBuilder builder, SemesterHistoryItem item) { builder.MoveToMergeField("班導師"); builder.Write(item.Teacher); }
private void BW_DoWork(object sender, DoWorkEventArgs e) { //撈取全部學生 Dictionary <string, StudentObj> student_obj_dic = new Dictionary <string, StudentObj>(); string sqlcmd = "select student.id, student.seat_no,class.class_name,class.grade_year,teacher.teacher_name,teacher.nickname from student "; sqlcmd += "left join class on class.id=student.ref_class_id "; sqlcmd += "left join teacher on class.ref_teacher_id=teacher.id "; sqlcmd += "where student.status=1"; DataTable dt = _Q.Select(sqlcmd); foreach (DataRow row in dt.Rows) { string id = row["id"] + ""; if (!student_obj_dic.ContainsKey(id)) { student_obj_dic.Add(id, new StudentObj(row)); } } //一般狀態學生SemesterHistoryRecord Dictionary <string, SemesterHistoryRecord> student_history_dic = new Dictionary <string, SemesterHistoryRecord>(); foreach (SemesterHistoryRecord record in K12.Data.SemesterHistory.SelectByStudentIDs(student_obj_dic.Keys)) { if (!student_history_dic.ContainsKey(record.RefStudentID)) { student_history_dic.Add(record.RefStudentID, record); } } //砍掉指定學年度學期的item foreach (SemesterHistoryRecord r in student_history_dic.Values) { foreach (SemesterHistoryItem item in r.SemesterHistoryItems.ToArray()) { if (item.SchoolYear == _schoolYear && item.Semester == _semester) { r.SemesterHistoryItems.Remove(item); } } } //建立指定學年度學期的item foreach (SemesterHistoryRecord r in student_history_dic.Values) { string id = r.RefStudentID; SemesterHistoryItem item = new SemesterHistoryItem(); item.SchoolYear = _schoolYear; item.Semester = _semester; item.GradeYear = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].GradeYear : 0; item.SeatNo = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].SeatNo : null; item.ClassName = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].ClassName : ""; item.Teacher = student_obj_dic.ContainsKey(id) ? student_obj_dic[id].TeacherName : ""; item.SchoolDayCount = _GradeSchoolDays.ContainsKey(item.GradeYear + "") ? _GradeSchoolDays[item.GradeYear + ""] : null; r.SemesterHistoryItems.Add(item); } K12.Data.SemesterHistory.Update(student_history_dic.Values); }
public string GetToken(string studentId, int schoolYear, int semester) { SemesterHistoryItem item = Histories[studentId][schoolYear][semester]; return(GetGradeString(item.GradeYear) + GetSemesterString(item.Semester)); }
void _bkWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { _DelRecList.Clear(); _NewRecList.Clear(); // 刪除 if (_isDelRec) { foreach (SemesterHistoryRecord shRec in _SemesterHistoryRecordList) { SemesterHistoryItem shiRec = null; foreach (SemesterHistoryItem shi in shRec.SemesterHistoryItems) { if (shi.SchoolYear == _SelSchoolYear && shi.Semester == _SelSemester) { shiRec = shi; } } if (shiRec != null) { shRec.SemesterHistoryItems.Remove(shiRec); _DelRecList.Add(shRec); } } if (_DelRecList.Count > 0) { if (FISCA.Presentation.Controls.MsgBox.Show("請問是否刪除" + _SelSchoolYear + "學年度 第" + _SelSemester + "學期,共" + _DelRecList.Count + "筆資料?", "刪除學期對照", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { SemesterHistory.Update(_DelRecList); FISCA.Presentation.Controls.MsgBox.Show(_DelRecList.Count + "筆資料刪除完成."); } } else { FISCA.Presentation.Controls.MsgBox.Show("沒有刪除的資料."); } btnDel.Enabled = true; } else { // 新增或修改 int insertCount = 0, updateCount = 0; foreach (SemesterHistoryRecord shRec in _SemesterHistoryRecordList) { bool hasData = false; foreach (SemesterHistoryItem shi in shRec.SemesterHistoryItems) { if (shi.SchoolYear == _SelSchoolYear && shi.Semester == _SelSemester) { shi.GradeYear = _SelGradeYear; hasData = true; updateCount++; } } if (hasData == false) { SemesterHistoryItem shiNew = new SemesterHistoryItem(); shiNew.SchoolYear = _SelSchoolYear; shiNew.Semester = _SelSemester; shiNew.GradeYear = _SelGradeYear; shRec.SemesterHistoryItems.Add(shiNew); insertCount++; } } if (updateCount > 0) { if (FISCA.Presentation.Controls.MsgBox.Show("已有" + updateCount + "筆資料,請問是否覆蓋?", "覆蓋學期對照", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { SemesterHistory.Update(_SemesterHistoryRecordList); FISCA.Presentation.Controls.MsgBox.Show("已新增" + insertCount + "筆資料,已覆蓋" + updateCount + "筆資料."); } } else { if (insertCount > 0) { SemesterHistory.Update(_SemesterHistoryRecordList); FISCA.Presentation.Controls.MsgBox.Show("已新增" + insertCount + "筆資料."); } } btnRun.Enabled = true; } }