private int WriteDomainRow(Cell indexCell, DomainRow domain)
        {
            WordHelper.Write(indexCell, _font, string.IsNullOrEmpty(domain.DomainName) ? "彈性課程" : domain.DomainName);

            Cell subjectCell = WordHelper.GetMoveRightCell(indexCell, 1);
            int  count       = 0;

            foreach (var subjectName in domain.Subjects.Keys)
            {
                SubjectRow row = domain.Subjects[subjectName];
                //if (row.Display)
                //{
                Cell temp = subjectCell;
                WordHelper.Write(temp, _font, row.SubjectName);
                temp = temp.NextSibling as Cell;
                WordHelper.Write(temp, _font, row.PeriodCredit);

                foreach (string examID in row.Scores.Keys)
                {
                    ScoreData data = row.Scores[examID];
                    temp = WordHelper.GetMoveRightCell(subjectCell, _columnMapping[examID] - 1);
                    WordHelper.Write(temp, _font, (data.Score.HasValue ? "" + _calculator.ParseSubjectScore(data.Score.Value) : ""));
                    WordHelper.Write(temp.NextSibling as Cell, _font, "" + data.AssignmentScore);
                    WordHelper.Write(temp.NextSibling.NextSibling as Cell, _font, "" + row.GetFinalScore(examID));
                }

                subjectCell = WordHelper.GetMoveDownCell(subjectCell, 1);
                if (subjectCell == null)
                {
                    break;
                }
                count++;
                //}
            }
            return(count);
        }
        internal void Add(HC.JHSCETakeRecord sce)
        {
            if (!_courseDict.ContainsKey(sce.RefCourseID))
            {
                return;                                            //如果評量成績的課程不存在,return。
            }
            JHCourseRecord course = _courseDict[sce.RefCourseID];

            if (!Domains.ContainsKey(course.Domain))
            {
                Domains.Add(course.Domain, new DomainRow(course.Domain));
            }

            DomainRow row = Domains[course.Domain];

            if (_config.DomainSubjectSetup == DomainSubjectSetup.Subject)
            {
                row.Display = false;
            }
            else
            {
                row.Display = true;
            }
            row.AddExamID(sce.RefExamID);

            if (!row.Subjects.ContainsKey(course.Subject))
            {
                row.Subjects.Add(course.Subject, new SubjectRow(course.Subject));
            }
            SubjectRow subjectRow = row.Subjects[course.Subject];

            subjectRow.SetPeriodCredit(course.Period, course.Credit);
            subjectRow.AddScore(sce.RefExamID, sce.Score, sce.AssignmentScore);
            //if (_config.DomainSubjectSetup == DomainSubjectSetup.Subject)
            //    subjectRow.Display = true;
        }
        internal void Add(HC.JHSCETakeRecord sce)
        {
            if (!_courseDict.ContainsKey(sce.RefCourseID))
            {
                return;                                            //如果評量成績的課程不存在,return。
            }
            JHCourseRecord course = _courseDict[sce.RefCourseID];

            if (!Domains.ContainsKey(course.Domain))
            {
                Domains.Add(course.Domain, new DomainRow(course.Domain));
            }

            DomainRow row = Domains[course.Domain];

            if (_config.DomainSubjectSetup == DomainSubjectSetup.Subject)
            {
                row.Display = false;
            }
            else
            {
                row.Display = true;
            }
            row.AddExamID(sce.RefExamID);

            if (!row.Subjects.ContainsKey(course.Subject))
            {
                row.Subjects.Add(course.Subject, new SubjectRow(course.Subject));
            }
            SubjectRow subjectRow = row.Subjects[course.Subject];

            subjectRow.SetPeriodCredit(course.Period, course.Credit);
            subjectRow.AddScore(sce.RefExamID, sce.Score, sce.AssignmentScore);
            //Report._NoneExamT
            if (course.AssessmentSetup == null)
            {
                Report._NoneExamT = true;
            }
            K12.Data.AssessmentSetupRecord assessmentSetupRecord = course.AssessmentSetup;


            XmlElement extension = assessmentSetupRecord.Extension;


            int examPercentage = 0;

            if (!string.IsNullOrEmpty(extension["ScorePercentage"].InnerText))
            {
                examPercentage = Convert.ToInt32(extension["ScorePercentage"].InnerText.Trim(' ', '\n'));
            }
            int assignmentPercentage = 100 - examPercentage;

            subjectRow.examPercentage       = examPercentage;
            subjectRow.assignmentPercentage = assignmentPercentage;


            //try
            //{
            //    K12.Data.AssessmentSetupRecord assessmentSetupRecord = course.AssessmentSetup;

            //    XmlElement extension = assessmentSetupRecord.Extension;
            //    int examPercentage = 0;
            //    if (!string.IsNullOrEmpty(extension["ScorePercentage"].InnerText))
            //    {
            //        examPercentage = Convert.ToInt32(extension["ScorePercentage"].InnerText.Trim(' ', '\n'));
            //    }
            //    int assignmentPercentage = 100 - examPercentage;

            //    subjectRow.examPercentage = examPercentage;
            //    subjectRow.assignmentPercentage = assignmentPercentage;

            //}
            //catch (Exception ex)
            //{
            //    if (course.AssessmentSetup == null)
            //    {
            //        MsgBox.Show ( _courseDict[sce.RefCourseID].Name + "未設定評分樣板");
            //    } else
            //    {
            //        MsgBox.Show(ex.Message);
            //    }
            //}

            //if (_config.DomainSubjectSetup == DomainSubjectSetup.Subject)
            //    subjectRow.Display = true;
        }