4.9 KiB
4.9 KiB
講師個人費用彙整表 - 實施摘要
✅ 已完成部分
1. 前端 UI 實施
檔案: Forms\領據系統\財稅作業與領據關帳.aspx
- ✅ Tab 0: 個人費用彙整表頁面結構
- ✅ 查詢表單 (4 個輸入欄位)
- 起日 (date input)
- 迄日 (date input)
- 身分別 (dropdown)
- 付款方式 (dropdown)
- ✅ 操作按鈕
- 查詢按鈕 (綠色)
- 匯出按鈕 (藍色)
- ✅ 查詢結果表格 (9 欄)
- 領款人姓名、身分證字號、堂數、扣繳類別、帳戶名、付款金額、匯款帳號、銀行分行代碼、銀行分行
- ✅ 完整 CSS 樣式
- 按鈕樣式、表格樣式、提示訊息樣式、表單樣式等
2. Vue.js 邏輯實施
檔案: Scripts\財稅作業與領據關帳.js
-
✅ 初始化 summaryTable 物件
summaryTable: { startDate: '', endDate: '', identity: '', paymentMethod: '', identityOptions: [], paymentMethodOptions: [], dataList: [], loading: false, message: '', messageType: 'info' } -
✅ 方法實施
loadSummaryTableDropdowns()- 加載下拉選項searchSummaryTable()- 執行查詢exportSummaryTable()- 執行匯出parseDate()- 日期解析formatCurrency()- 貨幣格式化downloadExcel()- Excel 下載
3. WebService 框架實施
檔案: Services\領據處理.asmx.cs
-
✅
SearchSummaryTable方法簽名public ServiceResponse SearchSummaryTable( string 起日, string 迄日, string 身分別, string 付款方式, string 輸出方式) -
✅ 日期解析邏輯
-
✅ 輸出方式驗證 (DATA / EXPORT)
-
✅
個人費用彙整表Item資料模型
4. 樣式優化
檔案: Styles\領據資料處理.css 和 ASPX 內部 CSS
- ✅ 新增邊距類 (
ml-2,mt-3,mt-4) - ✅ 表格響應式設計
- ✅ 按鈕樣式 (綠色、藍色)
- ✅ 警告/成功/信息訊息樣式
- ✅ 表單欄位布局
📋 待實施部分(用戶需完成)
1. SearchSummaryTable 查詢邏輯
方法位置: Services\領據處理.asmx.cs 第 688 行
需要完成:
// 1. 連接資料庫
using (var conn = DAC.NewConnection())
{
// 2. 根據參數查詢資料
// - startDate (起日)
// - endDate (迄日)
// - 身分別 (可空)
// - 付款方式 (可空)
// 3. 返回 List<個人費用彙整表Item>
var summaryData = new List<個人費用彙整表Item>();
// TODO: 實現查詢邏輯
// 可參考現有的 DAC_領據.SelectPageWithRelations() 方法
}
2. Excel 匯出邏輯
方法位置: Services\領據處理.asmx.cs 第 715 行
需要完成:
if (輸出方式 == "EXPORT")
{
// 1. 生成 Excel 檔案
// 2. 轉換為 Base64 編碼
// 3. 返回 { excelData, fileName }
// 可參考現有的 Report.領據列印 實現方式
}
📊 資料模型
public class 個人費用彙整表Item
{
public string 領款人姓名 { get; set; } // 講師/非講師姓名
public string 身分證字號 { get; set; }
public string 堂數 { get; set; } // 格式:「數量 + 單位」
public string 扣繳類別 { get; set; }
public string 帳戶名 { get; set; }
public decimal 付款金額 { get; set; }
public string 匯款帳號 { get; set; }
public string 銀行分行代碼 { get; set; }
public string 銀行分行 { get; set; }
}
🔗 方法調用流程
前端查詢按鈕
↓
JavaScript: searchSummaryTable()
↓
WebService: SearchSummaryTable (輸出方式="DATA")
↓
返回 List<個人費用彙整表Item>
↓
Vue 綁定結果到表格
前端匯出按鈕
↓
JavaScript: exportSummaryTable()
↓
WebService: SearchSummaryTable (輸出方式="EXPORT")
↓
返回 { excelData: Base64, fileName: "..." }
↓
JavaScript: downloadExcel()
↓
瀏覽器下載檔案
🛠 設定和相依性
- ✅ Vue.js 2.x (已在頁面加載)
- ✅ Axios (已在頁面加載)
- ✅ ToastMixin (已在頁面加載)
- ✅ ApiMixin (已在頁面加載)
✨ 特色功能
- 响應式設計 - 適配不同螢幕尺寸
- 即時驗證 - 日期範圍檢查
- 錯誤提示 - 友好的錯誤訊息
- 加載狀態 - 按鈕禁用狀態提示
- 貨幣格式 - 自動格式化付款金額 (NTD)
- Excel 下載 - Base64 解碼下載
📝 建置狀態
✅ 項目已成功構建,無編譯錯誤
🚀 下一步
- 實施
SearchSummaryTable的查詢邏輯 - 實施 Excel 匯出邏輯
- 測試查詢和匯出功能
- 驗證資料正確性
- 性能優化 (如需要)
📞 技術支援
- 有任何問題,請檢查:
- WebService 方法是否正確傳遞參數
- 資料庫查詢是否返回正確欄位
- Excel 生成邏輯是否正確編碼為 Base64
- 瀏覽器開發者工具中的網路請求和回應