2.3 KiB
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