private void execute(string schoolYear, string semester, DoWorkEventArgs e)
        {
            this._bgw.ReportProgress(15);
            // 1.計算各班學期統計
            SemesterStatsCalculator calOne = new SemesterStatsCalculator(schoolYear, semester);

            calOne.Execute();
            this._bgw.ReportProgress(30);

            // 2.根據年級計算學期排名
            SemesterRankCalculator calTwo = new SemesterRankCalculator(schoolYear, semester);

            calTwo.Execute();
            this._bgw.ReportProgress(60);

            // 3. 找出當學期排名
            DataTable dt = DAO.SemesterRank.GetSemesterRank(schoolYear, semester);

            this._bgw.ReportProgress(90);

            e.Result = dt;
        }
        private void execute()
        {
            // 1.計算各班學期統計
            SemesterStatsCalculator calOne = new SemesterStatsCalculator(cbxSchoolYear.SelectedItem.ToString(), cbxSemester.SelectedItem.ToString());

            calOne.Execute();

            // 2.根據年級計算學期排名
            SemesterRankCalculator calTwo = new SemesterRankCalculator(cbxSchoolYear.SelectedItem.ToString(), cbxSemester.SelectedItem.ToString());

            calTwo.Execute();

            // 3. 找出當學期排名
            DataTable dt = DAO.SemesterRank.GetSemesterRank(cbxSchoolYear.SelectedItem.ToString(), cbxSemester.SelectedItem.ToString());

            DialogResult result = MsgBox.Show("學期排名已計算完成,確定產出排名報表?", "提醒", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                print(dt);
            }
        }