/// <summary> /// 是否為相同科目 /// </summary> private bool CheckSubject(SubjectObj each, SHSubjectScore subjectscore) { if (each.kcbs_sore.subject == subjectscore.Subject.Trim()) { if (subjectscore.Level.HasValue) { if (each.kcbs_sore.subject_level == subjectscore.Level.Value.ToString()) { return(true); } } } return(false); }
private void btnChangeSubject_Click(object sender, System.EventArgs e) { //if (record.Subjects.ContainsKey(Subject)) //{ // //strLog.AppendLine(record.ID,record.Student.StudentNumber,); // SHSubjectScore Score = record.Subjects[Subject]; // record.Subjects.Remove(Subject); // Score.Subject = ChangeSubject; // record.Subjects.Add(Score.Subject, Score); //} if (!IsInput() && !string.IsNullOrEmpty(txtChangeSubject.Text)) { MessageBox.Show("請完整輸入欄位資訊!"); return; } int a; if (!(int.TryParse(txtChangeLevel.Text, out a) || string.IsNullOrEmpty(txtChangeLevel.Text))) { MessageBox.Show("級別必需為數字或空白!"); return; } int SchoolYear = K12.Data.Int.Parse("" + cmbSchoolYear.SelectedItem); int Semester = K12.Data.Int.Parse("" + cmbSemester.SelectedItem); int? Level = K12.Data.Int.ParseAllowNull("" + cmbLevels.SelectedItem); int? ChangeLevel = K12.Data.Int.ParseAllowNull("" + txtChangeLevel.Text); string Subject = "" + cmbSubjects.SelectedItem; string ChangeSubject = txtChangeSubject.Text; strLog = new StringBuilder(); strLog.AppendLine("『更改學期科目名稱』"); int UpdateCount = 0; List <SHSemesterScoreRecord> FinalUpdateRecords = new List <SHSemesterScoreRecord>(); UpdateRecords = StudentScores.Where(x => x.SchoolYear == SchoolYear && x.Semester == Semester).ToList(); foreach (SHSemesterScoreRecord record in UpdateRecords) { List <string> UpdateSubjects = new List <string>(); foreach (SHSubjectScore SubjectScore in record.Subjects.Values) { if (SubjectScore.Subject.Equals(Subject) && K12.Data.Int.GetString(SubjectScore.Level) == K12.Data.Int.GetString(Level)) { UpdateSubjects.Add(SubjectScore.Subject); UpdateCount++; } } if (UpdateSubjects.Count > 0) { FinalUpdateRecords.Add(record); strLog.AppendLine("系統編號:" + record.ID + ",學生編號:" + record.RefStudentID + ",學生學號:" + record.Student.StudentNumber + ",學生姓名:" + record.Student.Name + ",學年度:" + record.SchoolYear + ",學期:" + record.Semester + ",更新後科目名稱:" + ChangeSubject); } foreach (string UpdateSubject in UpdateSubjects) { strLog.AppendLine(record.Subjects[UpdateSubject].ToXML().OuterXml); SHSubjectScore Score = record.Subjects[UpdateSubject]; record.Subjects.Remove(UpdateSubject); Score.Subject = ChangeSubject; Score.Level = ChangeLevel; record.Subjects.Add(Score.Subject, Score); } } int SuccessCount = 0; if (K12.Data.Utility.Utility.IsNullOrEmpty(FinalUpdateRecords)) { MessageBox.Show("沒有資料不需更新!!"); return; } if (MessageBox.Show("與您確認是否要更新總共" + UpdateCount + "筆成績?提醒在更新前先備份該位學生所有學期科目成績,並在成功後備份『更新紀錄』。", "更新學期科目成績確認", MessageBoxButtons.YesNo) == DialogResult.Yes) { try { SuccessCount = SHSemesterScore.Update(FinalUpdateRecords); MessageBox.Show("成功更新筆數:" + UpdateCount); txtLog.Text = txtLog.Text + strLog.ToString(); FISCA.LogAgent.ApplicationLog.Log("成績模組.學期科目成績資料維護", strLog.ToString()); SelectByCondition(); } catch (Exception ve) { MessageBox.Show(ve.Message); txtLog.Text = txtLog.Text + ve.Message; } finally { } } }