222 lines
5.5 KiB
Markdown
222 lines
5.5 KiB
Markdown
# 講師個人費用彙整表 - 快速開始指南
|
||
|
||
## 🎯 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
|