chore: 首次簽入 Thinkyu ASP.NET 專案

- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
2026-09-10 09:42:37 +08:00
commit 577060bc78
2496 changed files with 501389 additions and 0 deletions
@@ -0,0 +1,154 @@
# 個人費用彙整表 - 實施指南
## 概述
已完成「個人費用彙整表」的前端和框架實施。本文檔說明需要用戶完成的後端邏輯部分。
## 完成的工作
### 1. 前端 UI (Forms\領據系統\財稅作業與領據關帳.aspx)
**完成內容:**
- Tab 0 查詢表單 (起日、迄日、身分別、付款方式)
- 查詢/匯出按鈕
- 查詢結果表格 (9 個欄位)
- 完整的 CSS 樣式
### 2. Vue.js 邏輯 (Scripts\財稅作業與領據關帳.js)
**完成內容:**
- summaryTable 資料物件初始化
- 下拉清單加載邏輯 (`loadSummaryTableDropdowns`)
- 查詢方法 (`searchSummaryTable`)
- 匯出方法 (`exportSummaryTable`)
- 輔助方法 (`parseDate`, `formatCurrency`, `downloadExcel`)
### 3. WebService 方法簽名 (Services\領據處理.asmx.cs)
**完成內容:**
- `SearchSummaryTable` 方法框架
- `個人費用彙整表Item` 資料模型類
## 需要用戶完成的工作
### 1. SearchSummaryTable 後端實現
**位置:** `Services\領據處理.asmx.cs` - `SearchSummaryTable` 方法
**需要實現:**
```csharp
// 在此處替換 TODO 註解的部分
// 根據查詢參數取得資料:
using (var conn = DAC.NewConnection())
{
// 你的查詢邏輯應該:
// 1. 根據 startDate (起日), endDate (迄日) 篩選日期範圍
// 2. 如果 身分別 有值,篩選身分別
// 3. 如果 付款方式 有值,篩選付款方式
// 4. 返回 List<個人費用彙整表Item>
// 查詢應該返回以下欄位:
var summaryData = new List<Item>();
// TODO: 實現查詢邏輯
// var result = dac.SearchSummaryTable(startDate, endDate, 身分別, 付款方式);
// summaryData = result.ToList();
return summaryData;
}
```
**輸出欄位 (9 個)**
1. `領款人姓名` (string) - 講師/非講師姓名
2. `身分證字號` (string)
3. `堂數` (string) - 格式:「數量 + 單位」,例如「5堂」
4. `扣繳類別` (string)
5. `帳戶名` (string)
6. `付款金額` (decimal)
7. `匯款帳號` (string)
8. `銀行分行代碼` (string)
9. `銀行分行` (string)
**參數:**
- `startDate` (DateTime?) - 起日
- `endDate` (DateTime?) - 迄日
- `身分別` (string) - 身分別 (可空)
- `付款方式` (string) - 付款方式 (可空)
### 2. Excel 匯出實現
**位置:** `Services\領據處理.asmx.cs` - `SearchSummaryTable` 方法中的 EXPORT 部分
**需要實現:**
```csharp
if ( == "EXPORT")
{
// TODO: 實現 Excel 匯出邏輯
// 1. 使用相同的查詢取得 summaryData
// 2. 生成 Excel 檔案 (使用 NPOI 或其他庫)
// 3. 將 Excel 檔案轉換為 Base64 編碼
// 4. 返回 excelData (Base64) 和 fileName
var excelResult = new
{
excelData = excelBase64String, // Base64 編碼的 Excel 檔案內容
fileName = $"講師個人費用彙整表_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx"
};
return ServiceResponse.CreateSuccess("匯出成功", excelResult);
}
```
## 測試檢查清單
- [ ] 在 Visual Studio 中構建項目 (確無編譯錯誤)
- [ ] 在瀏覽器中開啟財稅作業與領據關帳頁面
- [ ] 驗證 Tab 0 個人費用彙整表是否顯示正確
- [ ] 驗證下拉清單是否正確加載身分別和付款方式
- [ ] 點擊查詢按鈕,驗證是否呼叫後端 `SearchSummaryTable` 方法
- [ ] 驗證查詢結果表格是否正確顯示 (如有 TODO 實現)
- [ ] 點擊匯出按鈕,驗證是否下載 Excel 檔案 (如有 TODO 實現)
## 後續建議
1. **數據庫查詢**
- 建立 DAC 類別 `DAC_個人費用彙整` 或在現有 DAC 中添加查詢方法
- 優化 SQL 查詢效能 (考慮分組、合計等)
2. **Excel 匯出**
- 建議使用 NPOI 庫生成 Excel
- 可參考現有的 `Report.領據列印` 實現方式
3. **數據驗證**
- 驗證日期範圍的合理性
- 驗證身分別和付款方式的有效值
4. **錯誤處理**
- 新增更詳細的錯誤訊息
- 記錄查詢日誌用於除錯
## 技術棧
- **前端:** Vue.js 2.x, HTML5, CSS3
- **後端:** ASP.NET (C#), WebService
- **資料庫:** SQL Server (假設)
- **.NET 版本:** Framework 3.5
## 支援的瀏覽器
- Chrome (推薦)
- Firefox
- Edge
- Safari
## 常見問題
**Q: 如何修改查詢結果欄位?**
A: 修改 `個人費用彙整表Item` 類別的屬性,並更新前端表格 HTML。
**Q: 如何添加更多查詢條件?**
A:
1. 在 ASPX 中添加新的表單控制項
2. 在 Vue data 中添加新屬性
3.`searchSummaryTable` 方法中傳遞新參數
4. 在後端 `SearchSummaryTable` 方法中處理新參數
**Q: 如何修改 Excel 匯出格式?**
A: 在 EXPORT 邏輯中自訂 Excel 生成代碼,調整欄寬、字體、顏色等。