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;
     }
 }
Exemple #3
0
        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);
        }