跳轉到

程式資訊

  • 程式 IDACCEXPPRINT
  • 所屬子系統:Q.固定資產
  • 狀態:stable

預付費用列印

功能簡介

「預付費用列印」是 預付費用ProgramClass.ACCEXP)的列印伴隨頁,用來把一段費用編號區間的預付費用,整理成報表(攤提明細/費用分攤表等)後預覽或列印。條件面板另有年度/月份兩欄,但目前的列印路徑只用費用編號區間篩選資料,年度/月份尚未送進報表(詳見下方「欄位連動與附加功能」)。

它本身不是獨立的選單程式:當你在預付費用主表單按工具列的 列印 時,主表單會呼叫 GetPrintViewModel() 開出本頁,並把目前停在的那張單據的費用編號同時帶進「起始費用編號」與「截止費用編號」,讓你可以直接印當前這一筆,也可以把區間放寬一次印多筆。

與母表單的關係

本頁與預付費用同一支業務程式的兩個畫面——母表單負責建檔與計算攤提,本頁只負責挑區間出報表。費用怎麼建、攤提怎麼算,請看母表單頁;本頁只說明列印條件與其連動。

前置需求

  • 權限:Q.固定資產 → Q-020 預付費用 的瀏覽與列印權限(列印頁沿用母程式 ACCEXP 的權限)。
  • 基礎資料:報表內容取自預付費用主檔與其攤提表,列印前請先確認下列資料已維護——
資料 影響的結果
預付費用主檔(預付費用 報表的費用編號、名稱、廠商、金額等基本欄位
費用攤提表(母表單按 計算攤提 產生) 報表的各期攤提金額、累計攤提、本期攤提
費用分攤表(製/營/管/研費分攤率) 報表的科目別費用分攤
廠商主檔 報表上的廠商簡稱

注意

若某筆費用尚未在母表單按過 計算攤提,攤提表是空的,報表的攤提相關欄位會是空白或 0。另請留意:目前列印路徑只用起訖費用編號篩選資料,你輸入的年度/月份尚未送進報表(以年月比對攤提期間的邏輯仍在程式中被註解,見下方「規劃中/未提供」)。

操作步驟

  1. 預付費用 主表單翻到要列印的單據,按工具列的 列印,系統開出本列印頁。
  2. 確認或調整列印條件
    1. 年度:預設為系統當年(西元年)。
    2. 月份:預設為系統當月(兩位數,如 06)。
    3. 起始費用編號:預設帶入剛才那張單據的費用編號;要印多筆時可改成區間起點。
    4. 截止費用編號:開窗時若是從某張單據進來,預設=該單據的費用編號;否則預設 zzzz(代表「印到最後一筆」)。
  3. 在報表清單中挑選要輸出的報表(攤提明細表/費用分攤表等,清單由系統依本程式註冊的報表帶出)。
  4. 預覽 先在畫面上檢視,或按 列印 直接送印;預覽畫面亦可匯出 PDF/Excel。

小技巧

只想印目前這一筆,就保留帶進來的起訖費用編號直接列印;想印整批,把「起始費用編號」清空或設小、「截止費用編號」設為 zzzz,即可涵蓋全部。

欄位說明

欄位 必填 說明/格式/預設
年度 西元年,4 位數(控件 MaskInfo="Year")。預設=系統當年 DateTime.Now.Year
月份 月份,2 位數(控件 MaskInfo="OnlyMonth")。預設=系統當月,補零成兩位(如 06
起始費用編號 列印區間起點。從母表單帶入時=該單據費用編號;最長 20 碼
截止費用編號 列印區間終點。預設 zzzz(排序上比所有編號大,等於「不設上限」);從母表單帶入時=該單據費用編號

欄位連動與附加功能

這一節把「輸入某欄位/按某按鈕後,系統實際會做什麼」逐條列出,來源是本頁 AccexpPrintViewModel 與母表單 AccexpViewModel.GetPrintViewModel()

  • 開窗時自動帶值(母表單 → 列印頁):母表單 GetPrintViewModel() 建立本頁時,如果主檔有資料,會把目前單據的費用編號同時塞進起始費用編號截止費用編號。因此預設你看到的就是「只印當前這一筆」的條件,不必手動輸入編號。

  • 年度/月份的預設:本頁建構時即把年度設為當年(DateTime.Now.Year)、月份設為當月並補零成兩位數(DateTime.Now.Month.ToString("D2"))。這兩欄會顯示在條件面板供使用者輸入,但目前的列印路徑並未把年度/月份送進報表——實際送出的報表參數只有起訖費用編號(見下一條)。以「年度/月份」比對各筆費用起訖期間、只列出當月仍在攤提的費用,那段邏輯目前被註解尚未啟用(見後面「規劃中/未提供」)。

  • 截止費用編號的 zzzz 預設:當不是從特定單據進來、或你要印整批時,截止編號會是 zzzz。因為費用編號是字串排序,zzzz 排在所有實際編號之後,等於「印到最後一筆」。

  • 報表參數傳遞(GetReportParameters:按列印時,本頁把起始費用編號截止費用編號包成報表參數(BeginningDocumentNoEndingDocumentNo)交給報表引擎,報表即以這個區間篩選資料。GetReportParameters 目前回傳這兩個編號參數,年度/月份並未隨之下傳。

  • HaveReportData() 永遠回 true:本頁不在前端做「查無資料就擋住」的檢查,一律允許送出列印。若區間內真的沒有符合的費用,報表會是空表——這是預期行為,不是錯誤。

  • 報表清單來源:本頁未在程式內寫死報表清單(不像部分列印頁實作 IPrintSource.GetReports()),而是沿用母程式 ACCEXP 註冊的報表定義。可選的報表(攤提明細、費用分攤等)由系統的報表登錄資料決定,因此實際看到的清單以環境設定為準。

規劃中/未提供

程式碼中保留了一條完整路徑:以 Accexp1Accexp2 報表類別搭配 AccexpReportBll.GetAssetPocos()(呼叫報表 SP TWORK_RPT_ACCEXP)取數,查詢條件用 年度/月份 比對各筆費用的起始日/截止日(取年月前 7 碼),再把年度/月份/公司名設進報表參數。但這整段(Accexp1ReportAccexp2ReportSetParameter)目前全被註解、尚未啟用。也就是說,年度/月份「篩選攤提期間」與「印在報表抬頭」這兩件事現階段都不生效,待後續開通。

常見問題

報表印出來是空白/沒有任何資料?

請依序確認兩件事:(1) 起始/截止費用編號區間是否真的涵蓋目標單據(截止編號太小會把資料切掉,整批列印請設 zzzz);(2) 該筆費用是否已在預付費用母表單按過 計算攤提。請注意目前列印只用費用編號區間篩選,年度/月份尚未參與資料篩選(見上節說明)。

攤提金額、累計攤提欄位都是 0?

攤提數字來自費用攤提表。若母表單從未對這筆費用按 計算攤提,攤提表是空的,報表自然印不出金額。請回母表單先計算攤提再列印。

為什麼一開窗,費用編號就自動填好了?

這是設計行為。母表單在開列印頁時會把目前停留單據的費用編號帶進起訖兩欄,方便你直接印當前這一筆。要印整批時自行把區間放寬即可,詳見欄位連動與附加功能

改了年度/月份,報表內容或抬頭卻沒跟著變?

這是目前的已知狀態:年度/月份兩欄雖可輸入,但列印路徑尚未把它們送進報表——既不參與資料篩選,也不會印在抬頭。以年月比對攤提期間、並把年月/公司名設進報表參數的那段程式現階段仍被註解(見上節的「規劃中/未提供」說明),待後續開通後這兩欄才會生效。

報表清單裡看不到我想要的報表?

本頁的報表清單來自母程式 ACCEXP 註冊的報表定義,並非寫死在本頁。若清單缺漏,需由系統管理者在報表登錄資料中補上對應的 ACCEXP 報表。

相關功能


需補截圖清單

以下截圖待功能 runtime 驗收後補拍(放 docs/Q-FixedAsset/images/):

  1. accexpprint-step1.png — 列印條件面板(年度/月份/起訖費用編號)
  2. accexpprint-step2.png — 報表清單與預覽畫面