Beispiel #1
0
        private void OutListData(Cells cells, DAO.ClassVO ClassObj, DAO.StudentVO StudentObj)
        {
            int columnIndex = 0;

            _ListRowIndex++;

            if (_ListRowIndex > _MAX_ROW_COUNT)
            {
                return;
            }

            // 先產生空白列
            Range range = cells.CreateRange(_ListRowIndex, columnIndex, 1, _MAX_List_Column);

            range.CopyStyle(_List_Row_Range);

            // 設定高度
            cells.SetRowHeightPixel(_ListRowIndex, _List_Row_Height);

            // 班級	座號	姓名	學號	應得學分數	實得學分數	未達百分比
            cells[_ListRowIndex, columnIndex++].PutValue(ClassObj.ClassName);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.SeatNo);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.StudentName);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.StudentNumber);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.TotalCredit);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.GotCredit);
            cells[_ListRowIndex, columnIndex++].PutValue(StudentObj.CreditRate + "%");
        }
Beispiel #2
0
        /// <summary>
        /// 排序:年級/班級序號/班級名稱
        /// </summary>
        /// <param name="obj1"></param>
        /// <param name="obj2"></param>
        private int SortClass(DAO.ClassVO obj1, DAO.ClassVO obj2)
        {
            string seatno1 = obj1.ClassGradeYear.PadLeft(1, '0');   // 年級

            seatno1 += obj1.ClassDisplyOrder.PadLeft(3, '0');       // 班級序號
            seatno1 += obj1.ClassName.PadLeft(20, '0');             // 班級名稱

            string seatno2 = obj2.ClassGradeYear.PadLeft(1, '0');   // 年級

            seatno2 += obj2.ClassDisplyOrder.PadLeft(3, '0');       // 班級序號
            seatno2 += obj2.ClassName.PadLeft(20, '0');             // 班級名稱

            return(seatno1.CompareTo(seatno2));
        }
Beispiel #3
0
        private void OutDetailData(Cells cells, DAO.ClassVO ClassObj, DAO.StudentVO StudentObj)
        {
            if (_DetailRowIndex > _MAX_ROW_COUNT)
            {
                return;
            }

            int columnIndex = 0;

            _DetailRowIndex++;

            // 設定高度
            cells.SetRowHeightPixel(_DetailRowIndex, _Detail_Row_Height[3]);

            // 座號	姓名	學號
            SetDetailColumnValue(cells, columnIndex++, StudentObj.SeatNo, _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, StudentObj.StudentName, _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, StudentObj.StudentNumber, _Detail_Style_Normal);

            #region 輸出每一科的分數
            // 國文Ⅳ	英文Ⅳ	...
            foreach (DAO.CourseVO CourseObj in ClassObj.AllCourseListDic.Values)
            {
                DAO.CourseVO StuCourseObj = Utility.FindCourse(StudentObj.CourseListDic.Values.ToList(), CourseObj.CourseId);
                if (StuCourseObj == null)
                {
                    // 沒有修這堂課
                    SetDetailColumnValue(cells, columnIndex++, "", _Detail_Style_Normal);
                }
                else
                {
                    if (StuCourseObj.CourseScore == -1)
                    {
                        // 有這堂課, 卻沒有分數
                        SetDetailColumnValue(cells, columnIndex++, _NoScroe, _Detail_Style_Red);
                    }
                    else
                    {
                        if (StuCourseObj.IsPass == true)
                        {
                            SetDetailColumnValue(cells, columnIndex++, StuCourseObj.CourseScore, _Detail_Style_Normal);
                        }
                        else
                        {
                            SetDetailColumnValue(cells, columnIndex++, StuCourseObj.CourseScore, _Detail_Style_Red);
                        }
                    }
                }
            }
            #endregion

            // 假如印出的課程小於預設的課程數量, 就把剩下的欄位補上Style(邊框)
            for (int intI = 0; intI < (_Default_Detail_Course_Count - _Current_Course_Count); intI++)
            {
                SetDetailColumnValue(cells, columnIndex++, "", _Detail_Style_Normal);
            }

            // 及格標準	應得學分數	實得學分數	未達百分比
            SetDetailColumnValue(cells, columnIndex++, StudentObj.PassScore, _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, StudentObj.TotalCredit, _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, StudentObj.GotCredit, _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, StudentObj.CreditRate + "%", _Detail_Style_Normal);
        }
Beispiel #4
0
        private void OutDetailTitle(Cells cells, DAO.ClassVO ClassObj)
        {
            int columnIndex = 0;
            // 先複製格式
            Range TitleRange = cells.CreateRange(_DetailRowIndex, columnIndex, 3, _Default_Detail_Column);

            TitleRange.CopyStyle(_Detail_Title_Range);

            // 設定高度
            cells.SetRowHeightPixel(_DetailRowIndex, _Detail_Row_Height[0]);
            cells.SetRowHeightPixel((_DetailRowIndex + 1), _Detail_Row_Height[1]);
            cells.SetRowHeightPixel((_DetailRowIndex + 2), _Detail_Row_Height[2]);

            // 合併儲存格
            cells.Merge(_DetailRowIndex, columnIndex, 1, _Default_Detail_Column);

            // 輸出資料
            columnIndex = 0;
            string title = K12.Data.School.ChineseName + " " + ClassObj.ClassName + "  " + _ExamObj.ExameName + " 未達" + _PassRate + "%學分名單";

            cells[_DetailRowIndex, columnIndex++].PutValue(title);

            _DetailRowIndex++;
            columnIndex = 0;
            SetDetailColumnValue(cells, columnIndex++, "座號", _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, "姓名", _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, "學號", _Detail_Style_Normal);

            // 課程名稱, 國文Ⅳ	英文Ⅳ	...
            int CourseIndex = 0;

            _Current_Course_Count = 0;
            foreach (DAO.CourseVO CourseObj in ClassObj.AllCourseListDic.Values)
            {
                SetDetailColumnValue(cells, columnIndex++, CourseObj.CourseName, _Detail_Style_Normal);
                CourseIndex++;

                _Current_Course_Count++;
            }

            // 假如印出的課程, 超過預設課程數量, 則下一個columnIndex就用超出的課程數量
            // 假如沒有超過預設的課程數量, 就用預設的課程數量當作columnIndex
            // always +3, 因為前面有"座號" "姓名" "學號"
            columnIndex = ((_Current_Course_Count < _Default_Detail_Course_Count)? _Default_Detail_Course_Count : _Current_Course_Count) + 3;

            int StartColumn = columnIndex;

            SetDetailColumnValue(cells, columnIndex++, "及格標準", _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, "應得學分數", _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, "實得學分數", _Detail_Style_Normal);
            SetDetailColumnValue(cells, columnIndex++, "及格百分比", _Detail_Style_Normal);

            // 學分數
            _DetailRowIndex++;
            columnIndex = 0;

            SetDetailColumnValue(cells, columnIndex, "學分數", _Detail_Style_Normal);

            // 合併儲存格
            cells.Merge(_DetailRowIndex, columnIndex, 1, 3);

            columnIndex = 3;
            foreach (DAO.CourseVO CourseObj in ClassObj.AllCourseListDic.Values)
            {
                SetDetailColumnValue(cells, columnIndex++, CourseObj.Credit, _Detail_Style_Normal);
            }

            // 及格標準, 應得學分數, 實得學分數, 及格百分比
            SetDetailColumnValue(cells, StartColumn++, "", _Detail_Style_Normal);
            SetDetailColumnValue(cells, StartColumn++, "", _Detail_Style_Normal);
            SetDetailColumnValue(cells, StartColumn++, "", _Detail_Style_Normal);
            SetDetailColumnValue(cells, StartColumn++, "", _Detail_Style_Normal);
        }