Ejemplo n.º 1
0
        internal static Dictionary <string, JHAEIncludeRecord> GetAEIncludeDict(List <string> list, JHExamRecord exam)
        {
            Dictionary <string, JHAEIncludeRecord> dictAEIncludes = new Dictionary <string, JHAEIncludeRecord>();

            foreach (JHAEIncludeRecord ae in JHAEInclude.SelectByAssessmentSetupIDs(list))
            {
                if (ae.RefExamID != exam.ID)
                {
                    continue;
                }
                dictAEIncludes.Add(ae.RefAssessmentSetupID, ae);
            }
            return(dictAEIncludes);
        }
Ejemplo n.º 2
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            #region 進行驗證
            if (!ValidItem())
            {
                MsgBox.Show("請選擇要列印的" + gpSubject.Text + "或" + gpDomain.Text);
                return;
            }
            #endregion
            Report._UserSelectCount = 0;

            Global.UserSelectSchoolYear = cboSchoolYear.Text;
            Global.UserSelectSemester   = cboSemester.Text;

            #region 取得使用者選取的課程(科目)編號
            List <string> courseIDs = new List <string>();
            foreach (ListViewItem item in lvSubject.Items)
            {
                if (item.Checked)
                {
                    Report._UserSelectCount++;
                    List <string> list = item.Tag as List <string>;
                    courseIDs.AddRange(list);
                }
            }
            #endregion

            #region 取得使用者選取的領域
            List <string> domains = new List <string>();
            foreach (ListViewItem item in lvDomain.Items)
            {
                Report._UserSelectCount++;
                if (item.Checked)
                {
                    domains.Add(item.Text);
                }
            }
            #endregion

            btnPrint.Enabled    = false;
            pictureBox1.Visible = true;
            pictureBox2.Visible = true;

            #region 轉換成 CourseScore、計算分數、排名
            JHExamRecord exam = cbExam.SelectedItem as JHExamRecord;
            //ScoreType type = GetScoreType();

            List <string> asIDs = new List <string>();
            Dictionary <string, string>            asMapping = new Dictionary <string, string>();
            Dictionary <string, JHAEIncludeRecord> aeDict    = new Dictionary <string, JHAEIncludeRecord>();
            foreach (string courseID in courseIDs)
            {
                string asID = _courseDict[courseID].RefAssessmentSetupID;
                asIDs.Add(asID);
                asMapping.Add(courseID, asID);
            }

            foreach (JHAEIncludeRecord record in JHAEInclude.SelectByAssessmentSetupIDs(asIDs))
            {
                if (record.RefExamID != exam.ID)
                {
                    continue;
                }
                aeDict.Add(record.RefAssessmentSetupID, record);
            }

            //ComputeScore computer = new ComputeScore(_courseDict);
            //List<ComputeMethod> methods = GetMethods(_config);
            //RankMethod rankMethod = GetRankMethod(_config);

            Rank rank = new Rank();
            // TODO: 不確定排名是否接續
            rank.Sequence = false;

            // 取得評量比例
            Global.ScorePercentageHSDict = Global.GetScorePercentageHS();

            foreach (var ced in _data)
            {
                //轉成 CourseScore
                ced.ConvertToCourseScores(courseIDs, exam.ID);
                //RankData rd = new RankData();

                foreach (string studentID in ced.Rows.Keys)
                {
                    StudentRow row = ced.Rows[studentID];

                    //計算單一評量成績
                    foreach (CourseScore courseScore in row.CourseScoreList)
                    {
                        string asID = asMapping[courseScore.CourseID];
                        if (aeDict.ContainsKey(asID))
                        {
                            courseScore.CalculateScore(new HC.JHAEIncludeRecord(aeDict[asID]), "" + cbSource.SelectedItem);
                        }
                    }
                }

                //排序班級課程ID
                ced.SortCourseIDs(courseIDs);
            }
            #endregion

            #region 產生報表
            //Report report = new Report(_data, _courseDict, exam, methods);
            Report report = new Report(_data, _courseDict, exam, domains);
            report.GenerateCompleted += new EventHandler(report_GenerateCompleted);
            report.GenerateError     += new EventHandler(report_GenerateError);
            report.Generate();
            #endregion
        }