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

222 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 講師個人費用彙整表 - 快速開始指南
## 🎯 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