// 儲存升級班級項目 private void SaveClassItems(List <ClassItem> ClassItems) { // 更新學生畢業及離校資訊 UpgradeClassDAL.UpdateStudentLeaveInfo(ClassItems); // 更新班級資訊 UpgradeClassDAL.UpdateClassNameGradeYear(ClassItems); }
// 更改學生狀態 private void UpdateStudentStatus(List <ClassItem> ClassItems, K12.Data.StudentRecord.StudentStatus oldStatus, K12.Data.StudentRecord.StudentStatus newStatus) { Dictionary <string, List <StudentItem> > StudentItems = new Dictionary <string, List <StudentItem> >(); List <StudentItem> GraduateStudentItems = new List <StudentItem>(); StudentItems = UpgradeClassDAL.getStudentItems(ClassItems, oldStatus); foreach (KeyValuePair <string, List <StudentItem> > si in StudentItems) { foreach (StudentItem sii in si.Value) { sii.Status = newStatus; GraduateStudentItems.Add(sii); } } UpgradeClassDAL.setStudentStatus(GraduateStudentItems); }
void bkWork_DoWork(object sender, DoWorkEventArgs e) { ClassItems = UpgradeClassDAL.getClassItems(); }
private void btnSave_Click(object sender, EventArgs e) { btnSave.Enabled = false; GraduateClassItems = new List <ClassItem>(); UpgradeClassItems = new List <ClassItem>(); checkClassItems = new List <ClassItem>(); bool checkSaveGrauate = true; bool checkSaveUpgrade = true; // 調整後班級 ClearDGRowCellErrorText(dgClassUpgrade.Rows, 4); if (checkNewClassName() == true) { return; } foreach (DataGridViewRow dgv in dgClassUpgrade.Rows) { if (dgv.Cells[4].Value != null) { ClassItem ciClassItem = dgv.Cells[7].Value as ClassItem; ciClassItem.newGradeYear = dgv.Cells[3].Value.ToString(); ciClassItem.newClassName = dgv.Cells[4].Value.ToString(); if (dgv.Cells[5].Value.ToString() == "畢業") { GraduateClassItems.Add(ciClassItem); } if (dgv.Cells[5].Value.ToString() == "升級") { UpgradeClassItems.Add(ciClassItem); } } } checkClassItems = UpgradeClassDAL.checkUpdateClassName(GraduateClassItems); if (checkClassItems.Count > 0) { checkSaveGrauate = false; foreach (ClassItem ci in checkClassItems) { foreach (DataGridViewRow drv in dgClassUpgrade.Rows) { if (drv.Cells[0].Value.ToString() == ci.ClassID) { drv.Cells[4].ErrorText = "畢業班級名稱與系統內有重覆!"; break; } } } } checkClassItems.Clear(); checkClassItems = UpgradeClassDAL.checkUpdateClassName(UpgradeClassItems); if (checkClassItems.Count > 0) { List <string> classname = new List <string>(); foreach (ClassItem ci in GraduateClassItems) { classname.Add(ci.ClassName); } foreach (ClassItem ci in UpgradeClassItems) { classname.Add(ci.ClassName); } List <ClassItem> rmClassItems = new List <ClassItem>(); foreach (ClassItem cic in checkClassItems) { if (classname.Contains(cic.newClassName)) { rmClassItems.Add(cic); } } foreach (ClassItem ci in rmClassItems) { checkClassItems.Remove(ci); } } if (checkClassItems.Count > 0) { checkSaveUpgrade = false; foreach (ClassItem ci in checkClassItems) { foreach (DataGridViewRow drv in dgClassUpgrade.Rows) { if (drv.Cells[0].Value.ToString() == ci.ClassID) { drv.Cells[4].ErrorText = "調整後班級名稱與系統內有重覆!"; break; } } } } if (GraduateClassItems.Count == 0 && UpgradeClassItems.Count == 0) { MessageBox.Show("請先設定升級或畢業"); btnSave.Enabled = true; return; } if (checkSaveGrauate == true && checkSaveUpgrade == true) { // 使用 bk bkWorkUpgrd = new BackgroundWorker(); bkWorkUpgrd.DoWork += new DoWorkEventHandler(bkWorkUpgrd_DoWork); bkWorkUpgrd.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bkWorkUpgrd_RunWorkerCompleted); bkWorkUpgrd.RunWorkerAsync(); } else { btnSave.Enabled = true; } }
// 班級升級 private void UpgradeDGClassItem(UpgradeType ut) { // 對所選擇的 Row 判斷 foreach (DataGridViewRow dgv in dgClassUpgrade.SelectedRows) { int defGrYear, upgradeGrYear, defClassYear; string ClassName = "", newClassName = "", ClassNamingRule = ""; ClassName = dgv.Cells[2].Value.ToString(); ClassNamingRule = "" + dgv.Cells[6].Value; if (ut == UpgradeType.升級) { bool checkNew = true; if (dgv.Cells[5].Value != null) { if (dgv.Cells[5].Value.ToString() == "升級") { dgv.Cells[3].Value = ""; dgv.Cells[4].Value = ""; dgv.Cells[5].Value = ""; foreach (DataGridViewCell dd in dgv.Cells) { dd.Style.BackColor = Color.White; } checkNew = false; } } if (checkNew == true) { int.TryParse(dgv.Cells[1].Value.ToString(), out defGrYear); string strUpgradeGrYear; upgradeGrYear = defGrYear + 1; dgv.Cells[3].Value = strUpgradeGrYear = upgradeGrYear.ToString(); // 檢查是否有命名規則 bool checkClassNamingRule = UpgradeClassDAL.ValidateNamingRule(ClassNamingRule); if (checkClassNamingRule == true) { // 使用預設命名規則 newClassName = UpgradeClassDAL.ParseClassName(ClassNamingRule, upgradeGrYear); dgv.Cells[4].Value = newClassName; } else { // 沒有命名規則 newClassName = ClassName; if (upgradeGrYear > 10) { newClassName = strUpgradeGrYear + ClassName.Substring(2, (ClassName.Length - 2)); } else { newClassName = strUpgradeGrYear + ClassName.Substring(1, (ClassName.Length - 1)); } dgv.Cells[4].Value = newClassName; } dgv.Cells[5].Value = "升級"; foreach (DataGridViewCell dd in dgv.Cells) { dd.Style.BackColor = Color.Yellow; } } } if (ut == UpgradeType.畢業) { bool checkNew = true; if (dgv.Cells[5].Value != null) { if (dgv.Cells[5].Value.ToString() == "畢業") { dgv.Cells[3].Value = ""; dgv.Cells[4].Value = ""; dgv.Cells[5].Value = ""; foreach (DataGridViewCell dd in dgv.Cells) { dd.Style.BackColor = Color.White; } checkNew = false; } } if (checkNew == true) { dgv.Cells[3].Value = ""; dgv.Cells[4].Value = txtSchoolYear.Text + ClassName; dgv.Cells[5].Value = "畢業"; foreach (DataGridViewCell dd in dgv.Cells) { dd.Style.BackColor = Color.LightCyan; } } } if (ut == UpgradeType.恢復) { dgv.Cells[3].Value = ""; dgv.Cells[4].Value = ""; dgv.Cells[5].Value = ""; foreach (DataGridViewCell dd in dgv.Cells) { dd.Style.BackColor = Color.White; } } } }