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

2.3 KiB

簽到簽退

畫面

  • MainForm 上的 tabPage1
  • 上面有兩個區域:預約報名、現場報到
  • 使用銜接鍵盤介面的二維碼掃描器來掃碼

預約報名

* txtQRCode 為掃碼輸入框
* 掃碼之後查詢本地數據庫的 SignUp 表的 QRCode 欄位
* 查到時
  * 依照 cbCheckMode 的值(簽到 / 簽退)更新本地數據庫欄位(CheckInTime / CheckOutTime)
  * 本地數據庫 CheckIn 表新增一筆
  * lbCheckResult 顯示綠底白字 "報到成功"
  * lbName 顯示 Name
  * lbMobile 顯示 Mobile
  * lbCheckInTime 顯示 CheckInTime
  * lbCheckOutTime 顯示 CheckOutTime
* 未查到
  * lbCheckResult 顯示紅底白字 "無此筆資料"
  * lbName 內容清空
  * lbMobile 內容清空
  * lbCheckInTime 內容清空
  * lbCheckOutTime 內容清空

現場報到

* txtName 輸入姓名 (必須輸入)
* txtMobile 輸入手機號 (必須輸入)
* 點擊 btnMenualCheckIn 按鈕執行現場報到
  * cbCheckMode 的值 = "簽到" 時
    * 用姓名與手機號查找本地數據庫 SignUp 表
      * 查到:
        * 本地數據庫 SignUp 表更新 CheckInTime
        * 本地數據庫 CheckIn 表新增一筆
      * 未查到:
        * 本地數據庫 SignUp 表新增一筆
        * 本地數據庫 CheckIn 表新增一筆
    * lbMenualCheckInTime 顯示 CheckInTime
    * lbMenualCheckOutTime 空白
  * cbCheckMode 的值 = "簽退" 時 
    * 用姓名與手機號查找本地數據庫 SignUp 表
      * 查到:
        * 本地數據庫 SignUp 表更新 CheckOutTime
        * 本地數據庫 CheckIn 表新增一筆
      * 未查到:
        * 本地數據庫 SignUp 表新增一筆
        * 本地數據庫 CheckIn 表新增一筆
    * lbMenualCheckInTime 顯示 CheckInTime
    * lbMenualCheckOutTime 顯示 CheckOutTime

資料庫表結構

  • 已有數據庫表結構以及存取類別,在 Data/Models 和 Data/Repositories 目錄
  • 亦可參照 資料儲存服務.md

邏輯澄清

  • CheckInTime/CheckOutTime:若已有值則不覆蓋,只在為 NULL 時才寫入
  • 異常處理:數據庫操作失敗時顯示錯誤訊息,不清空UI