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 + "%"); }
/// <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)); }
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); }
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); }