Files
thinkyu/報到系統/DOC/課程報表.md
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

1.9 KiB
Raw Blame History

課程報表

畫面檔:

~/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,欄位:序號、學員姓名、手機號碼、身分證字號、性別、認定次數、用餐別、報名方式、簽到時間、簽退時間、出席狀況
    • 回傳:BaseResponseSuccess, Message, Data: { FileName, FileBase64, FileSize, DataCount }
  • ExportClassesList(DateTime? courseDate1, DateTime? courseDate2, string projectID):匯出課程清單

    • 輸入參數:courseDate1(課程日期起)、courseDate2(課程日期迄)、projectID(計畫代號)
    • 查詢符合條件的課程,並逐一統計各課程的實到/應到/缺席/現場報名人數
    • 使用 NPOI 產生 Excel,欄位:課程名稱、課程地點、授課講師、實到人數、應到人數、缺席人數、現場報名
    • 回傳:BaseResponseSuccess, Message, Data: { FileName, FileBase64, FileSize }