public void AddSubject(StudentRecord student, SemesterSubjectScoreInfo info) { Dictionary <string, string> aInfo = new Dictionary <string, string>(); aInfo.Add("學號", student.StudentNumber); aInfo.Add("班級", (student.RefClass != null) ? student.RefClass.ClassName : ""); aInfo.Add("座號", student.SeatNo); aInfo.Add("科別", student.Department); aInfo.Add("姓名", student.StudentName); aInfo.Add("科目", info.Subject); aInfo.Add("科目級別", info.Level); aInfo.Add("學年度", info.SchoolYear.ToString()); aInfo.Add("學期", info.Semester.ToString()); aInfo.Add("學分數", info.CreditDec().ToString()); aInfo.Add("成績年級", info.GradeYear.ToString()); aInfo.Add("必選修", info.Require ? "必修" : "選修"); aInfo.Add("校部訂", info.Detail.HasAttribute("修課校部訂") ? info.Detail.GetAttribute("修課校部訂") : ""); aInfo.Add("原始成績", info.Detail.HasAttribute("原始成績") ? info.Detail.GetAttribute("原始成績") : ""); // aInfo.Add("補考標準", info.Detail.HasAttribute("補考標準") ? info.Detail.GetAttribute("補考標準") : ""); aInfo.Add("補考標準", info.Detail.HasAttribute("修課補考標準") ? info.Detail.GetAttribute("修課補考標準") : ""); aInfo.Add("補考成績", info.Detail.HasAttribute("補考成績") ? info.Detail.GetAttribute("補考成績") : ""); // Dictionary<int, decimal> std = student.Fields["及格標準"] as Dictionary<int, decimal>; // aInfo.Add("及格標準", std[info.GradeYear].ToString()); aInfo.Add("及格標準", info.Detail.HasAttribute("修課及格標準") ? info.Detail.GetAttribute("修課及格標準") : ""); aInfo.Add("授課教師", info.Detail.HasAttribute("授課教師") ? info.Detail.GetAttribute("授課教師") : ""); aInfo.Add("取得學分", ""); subjectInfo.Add(aInfo); }
public void AddSubject(SemesterSubjectScoreInfo info) { if (info.Detail.GetAttribute("不計學分") != "是") { bool noScore = info.Detail.GetAttribute("不需評分") != "是"; if (info.GradeYear == this._grade_year) { ScoreData data = null; bool addNewOne = true; foreach (ScoreData var in this._subjects.Values) { if (var.Name == info.Subject) { addNewOne = false; if (info.Semester == 1) { if (!((var.FirstCredit <= 0) && string.IsNullOrEmpty(var.FirstRequire))) { addNewOne = true; } } else if ((info.Semester == 2) && !((var.SecondCredit <= 0) && string.IsNullOrEmpty(var.SecondRequire))) { addNewOne = true; } if (!addNewOne) { data = var; data.SetInfo(info.Subject, info.Semester, info.Require, info.CreditDec(), noScore ? info.Score : -1M); data.SetLevel(info.Level, info.Semester); break; } } } if (addNewOne) { if (!this._subjects.ContainsKey(info.Subject + "_" + info.Level)) { this._subjects.Add(info.Subject + "_" + info.Level, new ScoreData()); } data = this._subjects[info.Subject + "_" + info.Level]; data.SetInfo(info.Subject, info.Semester, info.Require, info.CreditDec(), noScore ? info.Score : -1M); data.SetLevel(info.Level, info.Semester); } if (!info.Pass && this._standard.ContainsKey(info.GradeYear)) { if (info.Score >= this._standard[info.GradeYear]) { data.SetSign(info.Semester, this._config.ResitSign); } else { data.SetSign(info.Semester, this._config.RepeatSign); } } } XmlHelper helper = new XmlHelper(info.Detail); if (info.Pass && (helper.GetText("@不計學分") != "是")) { if (info.GradeYear == this._grade_year) { if (info.Semester == 1) { this._firstTotalCredit += info.CreditDec(); } else if (info.Semester == 2) { this._secondTotalCredit += info.CreditDec(); } } if (info.SchoolYear <= this._config.SchoolYear) { this._beforeTotalCredit += info.CreditDec(); } } } }
public int SortBySemesterSubjectScoreInfo(SemesterSubjectScoreInfo a, SemesterSubjectScoreInfo b) { return(SortBySubjectName(a.Subject, b.Subject)); }
private int SortBySemesterSubjectScore(SemesterSubjectScoreInfo a, SemesterSubjectScoreInfo b) { return(SortBySubjectName(a.Subject, b.Subject)); }