private void btnNext_Click(object sender, EventArgs e) { // 畫面資料檢查 // 取得畫面資料 foreach (DataGridViewRow drv in dgData.Rows) { SubjectCourseInfo data = drv.Tag as SubjectCourseInfo; int co; if (int.TryParse(drv.Cells["開課數"].Value.ToString(), out co)) { data.CourseCount = co; string skey = drv.Cells["開課學期"].Value + "_" + drv.Cells["科目名稱"].Value; if (_SubjectCourseInfoDict.ContainsKey(skey)) { _SubjectCourseInfoDict[skey].CourseCount = co; } } } frmCreateCourseByGPlan108_C_Create fcc = new frmCreateCourseByGPlan108_C_Create(); fcc.SetSchoolYearSemester(_SchoolYear, _Semester); fcc.SetSubjectCourseInfoDict(_SubjectCourseInfoDict); if (fcc.ShowDialog() == DialogResult.OK) { this.DialogResult = DialogResult.OK; } }
private void LoadData() { dgData.Rows.Clear(); foreach (string subjKey in _SubjectCourseInfoDict.Keys) { SubjectCourseInfo data = _SubjectCourseInfoDict[subjKey]; int rowIdx = dgData.Rows.Add(); dgData.Rows[rowIdx].Tag = data; dgData.Rows[rowIdx].Cells["科目名稱"].Value = data.SubjectName; dgData.Rows[rowIdx].Cells["開課學期"].Value = data.OpenSemester; dgData.Rows[rowIdx].Cells["採用班級"].Value = string.Join(",", data.ClassNameDict.Keys.ToArray()); dgData.Rows[rowIdx].Cells["開課數"].Value = data.CourseCount; } }
private void _bwWorker_DoWork(object sender, DoWorkEventArgs e) { _errClassList.Clear(); _bwWorker.ReportProgress(1); CClassCourseInfoList = da.GetCClassCourseInfoList(_ClassIDList); // 檢查課程規劃表 foreach (CClassCourseInfo data in CClassCourseInfoList) { if (data.RefGPlanXML == null) { _errClassList.Add(data.ClassName); } } if (_errClassList.Count > 0) { e.Cancel = true; } Dictionary <string, List <string> > classStudentIDList = da.GetClassStudentDict(_ClassIDList); _SubjectCourseInfoDict.Clear(); // 整理目前學年度學期年級,跨班開課 foreach (CClassCourseInfo data in CClassCourseInfoList) { // 加入班級學生 if (classStudentIDList.ContainsKey(data.ClassID)) { data.RefStudentIDList = classStudentIDList[data.ClassID]; } if (data.RefGPlanXML != null) { foreach (XElement subjElm in data.RefGPlanXML.Elements("Subject")) { if (data.GradeYear == subjElm.Attribute("GradeYear").Value&& _Semester == subjElm.Attribute("Semester").Value) { if (subjElm.Attribute("開課方式").Value == "跨班") { data.OpenSubjectSourceList.Add(subjElm); string subjName = subjElm.Attribute("SubjectName").Value; if (!data.SubjectBDict.ContainsKey(subjName)) { data.SubjectBDict.Add(subjName, false); } // 處理科目 string openSems = "0"; if (data.GradeYear == "3" && _Semester == "2") { openSems = "6"; } else if (data.GradeYear == "3" && _Semester == "1") { openSems = "5"; } else if (data.GradeYear == "2" && _Semester == "2") { openSems = "4"; } else if (data.GradeYear == "2" && _Semester == "1") { openSems = "3"; } else if (data.GradeYear == "1" && _Semester == "2") { openSems = "2"; } else if (data.GradeYear == "1" && _Semester == "1") { openSems = "1"; } else { } string subjKey = openSems + "_" + subjName; if (!_SubjectCourseInfoDict.ContainsKey(subjKey)) { SubjectCourseInfo sci = new SubjectCourseInfo(); sci.SubjectName = subjName; sci.SubjectXML = subjElm; sci.SchoolYear = _SchoolYear; sci.Semester = _Semester; sci.CourseCount = 0; sci.ClassNameDict = new Dictionary <string, string>(); sci.ClassStudentIDDict = new Dictionary <string, List <string> >(); sci.OpenSemester = openSems; _SubjectCourseInfoDict.Add(subjKey, sci); } // 班級 if (!_SubjectCourseInfoDict[subjKey].ClassNameDict.ContainsKey(data.ClassName)) { _SubjectCourseInfoDict[subjKey].ClassNameDict.Add(data.ClassName, data.ClassID); } // 班級學生 if (!_SubjectCourseInfoDict[subjKey].ClassStudentIDDict.ContainsKey(data.ClassID)) { _SubjectCourseInfoDict[subjKey].ClassStudentIDDict.Add(data.ClassID, data.RefStudentIDList); } } } } } } _bwWorker.ReportProgress(100); }