# 講師個人費用彙整表 - 快速開始指南 ## 🎯 5 分鐘快速瞭解 ### 已實施的功能 ✅ 1. **前端 UI** - 完整的查詢表單和結果表格 2. **Vue.js 邏輯** - 查詢和匯出的前端邏輯 3. **WebService 框架** - SearchSummaryTable 方法簽名和資料模型 ### 需要實施的功能 ⏳ 1. **查詢邏輯** - 後端資料查詢(SQL) 2. **Excel 匯出** - Excel 檔案生成和下載 ## 🚀 立即開始 ### 步驟 1: 驗證前端 1. 打開 Visual Studio 2. 按 F5 或點擊「開始除錯」 3. 導航至「財稅作業與領據關帳」頁面 4. 驗證 Tab 0「個人費用彙整表」是否顯示 5. 驗證查詢表單和按鈕是否可見 ### 步驟 2: 實施查詢邏輯 **檔案:** `Services\領據處理.asmx.cs` **方法:** `SearchSummaryTable` (第 688 行) **實現步驟:** ```csharp // 1. 在 TODO 註解處添加查詢邏輯 using (var conn = DAC.NewConnection()) { // 2. 創建或使用現有的 DAC 查詢方法 // 例如:DAC_領據、DAC_勞務費 等 // 3. 根據參數查詢資料 var dac = new DAC_個人費用彙整(conn); // 假設的 DAC 類 var summaryData = dac.SearchSummaryTable( startDate, endDate, 身分別, 付款方式 ); // 4. 轉換為 List<個人費用彙整表Item> var result = new List<個人費用彙整表Item>(); foreach (var item in summaryData) { result.Add(new 個人費用彙整表Item { 領款人姓名 = item.姓名, 身分證字號 = item.身分證, 堂數 = $"{item.數量}{item.單位}", 扣繳類別 = item.扣繳類別, 帳戶名 = item.帳戶名, 付款金額 = item.金額, 匯款帳號 = item.帳號, 銀行分行代碼 = item.銀行代碼, 銀行分行 = item.銀行分行 }); } return ServiceResponse.CreateSuccess("查詢成功", result); } ``` ### 步驟 3: 實施 Excel 匯出 **檔案:** `Services\領據處理.asmx.cs` **方法:** `SearchSummaryTable` (第 715 行) **使用 NPOI 庫的示例:** ```csharp if (輸出方式 == "EXPORT") { // 1. 執行相同的查詢取得資料 var summaryData = dac.SearchSummaryTable(...); // 2. 使用 NPOI 生成 Excel var workbook = new HSSFWorkbook(); var sheet = workbook.CreateSheet("個人費用彙整"); // 3. 寫入表頭 var headerRow = sheet.CreateRow(0); headerRow.CreateCell(0).SetCellValue("領款人姓名"); headerRow.CreateCell(1).SetCellValue("身分證字號"); // ... 其他欄位 // 4. 寫入資料 int rowNum = 1; foreach (var item in summaryData) { var row = sheet.CreateRow(rowNum++); row.CreateCell(0).SetCellValue(item.領款人姓名); row.CreateCell(1).SetCellValue(item.身分證字號); // ... 其他欄位 } // 5. 轉換為 Base64 using (var ms = new MemoryStream()) { workbook.Write(ms); var excelBase64 = Convert.ToBase64String(ms.ToArray()); var excelResult = new { excelData = excelBase64, fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx" }; return ServiceResponse.CreateSuccess("匯出成功", excelResult); } } ``` ## 📝 實施檢查清單 實施前: - [ ] 備份原始代碼 - [ ] 確認資料庫表結構 - [ ] 準備必要的 DAC 類 實施中: - [ ] 完成查詢邏輯 - [ ] 完成 Excel 匯出 - [ ] 測試各種查詢條件 實施後: - [ ] 修復任何編譯錯誤 - [ ] 進行功能測試 - [ ] 驗證資料正確性 - [ ] 測試 Excel 匯出 - [ ] 檢查性能 ## 🧪 快速測試 ### 測試查詢功能 1. 打開頁面 2. 輸入查詢條件(至少一項) 3. 點擊「查詢」按鈕 4. 驗證結果表格是否顯示資料 5. 驗證訊息提示是否出現 ### 測試匯出功能 1. 執行查詢獲得結果 2. 點擊「匯出」按鈕 3. 驗證是否下載 Excel 檔案 4. 打開 Excel 驗證資料正確性 ## 📊 常見問題 **Q: 查詢按鈕無反應?** A: - 檢查 WebService 是否正確實施 - 檢查瀏覽器控制台是否有 JavaScript 錯誤 - 確認 TODO 部分已實施 **Q: 匯出後 Excel 無法打開?** A: - 驗證 Base64 編碼是否正確 - 確認 Excel 檔案格式正確 - 檢查是否有特殊字符導致編碼錯誤 **Q: 查詢結果為空?** A: - 驗證資料庫中是否有符合條件的資料 - 檢查查詢條件是否正確 - 檢查資料庫連線是否正常 ## 💡 提示 1. **調試技巧** - 使用 SQL Server Management Studio 測試 SQL 查詢 - 使用 Postman 測試 WebService 方法 - 使用瀏覽器開發者工具調試 JavaScript 2. **性能優化** - 為常用列添加資料庫索引 - 考慮添加分頁功能 - 考慮緩存下拉清單選項 3. **用戶體驗** - 添加查詢條件驗證 - 提供清晰的錯誤訊息 - 添加操作提示 ## 🔗 相關資源 - `DOC\個人費用彙整表_實施指南.md` - 詳細實施指南 - `DOC\個人費用彙整表_實施摘要.md` - 完整摘要 - `DOC\個人費用彙整表_檢查清單.md` - 詳細檢查清單 ## 📞 聯絡方式 如有任何問題,請參考: 1. 查看相關文檔 2. 檢查代碼註釋 3. 執行測試用例 ## ✨ 下一步 完成上述步驟後: 1. ✅ 驗證所有功能正常 2. ✅ 執行效能測試 3. ✅ 進行用戶驗收測試 4. ✅ 提交上線部署 --- **預計實施時間:** 2-4 小時 **難度級別:** 中等 **所需技能:** C#、SQL、ASP.NET WebService