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);
        }
Exemple #2
0
 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));
 }
Exemple #4
0
 private int SortBySemesterSubjectScore(SemesterSubjectScoreInfo a, SemesterSubjectScoreInfo b)
 {
     return(SortBySubjectName(a.Subject, b.Subject));
 }