Files
thinkyu/branches/1150807/DOC/個人費用彙整表_實施指南.md
T
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

4.7 KiB
Raw Blame History

個人費用彙整表 - 實施指南

概述

已完成「個人費用彙整表」的前端和框架實施。本文檔說明需要用戶完成的後端邏輯部分。

完成的工作

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 方法

需要實現:

// 在此處替換 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 部分

需要實現:

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 生成代碼,調整欄寬、字體、顏色等。