chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
# 講師個人費用彙整表 - 快速開始指南
|
||||
|
||||
## 🎯 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
|
||||
Reference in New Issue
Block a user