# 課程報表 ## 畫面檔: ~/Forms/ClassesReport.aspx ## 資料存取類別 ~/Models/DAC_Classes1.cs / DAC_Classes2.cs - DAC_Classes:資料處理類別 - ClassesList:資料集類別 - ClassesItem:資料項目類別 ~/Models/DAC_SignUp1.cs / DAC_SignUp2.cs - DAC_SignUp:資料處理類別 - SignUpList:資料集類別 - SignUpItem:資料項目類別 ## 畫面排列: 上方:搜尋列 - 比照 ~/Forms/ClassesList.aspx 下方:搜尋結果列表 - 除了操作欄位之外的資料顯示欄位比照 ~/Forms/ClassesList.aspx - 報表匯出按鈕放置在操作欄,按下後呼叫後端的 ExportClassesReport ## 後端處理 - ~/Services/ClassesService.asmx - ExportClassesReport(int classesID, string timeFormat = "datetime"):匯出學員簽到表 - 輸入參數:classesID(課程 ID)、timeFormat(時間格式,"datetime" 顯示完整日期時間,"time" 只顯示時間) - 查詢課程資訊(含 ProjectName)及該課程所有參加人員 - 統計:實到人數、應到人數、缺席人數、現場報名、異常人數 - 使用 NPOI 產生 Excel,欄位:序號、學員姓名、手機號碼、身分證字號、性別、認定次數、用餐別、報名方式、簽到時間、簽退時間、出席狀況 - 回傳:BaseResponse(Success, Message, Data: { FileName, FileBase64, FileSize, DataCount }) - ExportClassesList(DateTime? courseDate1, DateTime? courseDate2, string projectID):匯出課程清單 - 輸入參數:courseDate1(課程日期起)、courseDate2(課程日期迄)、projectID(計畫代號) - 查詢符合條件的課程,並逐一統計各課程的實到/應到/缺席/現場報名人數 - 使用 NPOI 產生 Excel,欄位:課程名稱、課程地點、授課講師、實到人數、應到人數、缺席人數、現場報名 - 回傳:BaseResponse(Success, Message, Data: { FileName, FileBase64, FileSize })