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

5.5 KiB
Raw Blame History

講師個人費用彙整表 - 快速開始指南

🎯 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 行)

實現步驟:

// 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 庫的示例:

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