程式資訊
- 程式 ID:
ACCEXPPRINT - 所屬子系統:Q.固定資產
- 狀態:stable
預付費用列印¶
功能簡介¶
「預付費用列印」是 預付費用(ProgramClass.ACCEXP)的列印伴隨頁,用來把一段費用編號區間的預付費用,整理成報表(攤提明細/費用分攤表等)後預覽或列印。條件面板另有年度/月份兩欄,但目前的列印路徑只用費用編號區間篩選資料,年度/月份尚未送進報表(詳見下方「欄位連動與附加功能」)。
它本身不是獨立的選單程式:當你在預付費用主表單按工具列的 列印 時,主表單會呼叫 GetPrintViewModel() 開出本頁,並把目前停在的那張單據的費用編號同時帶進「起始費用編號」與「截止費用編號」,讓你可以直接印當前這一筆,也可以把區間放寬一次印多筆。
與母表單的關係
本頁與預付費用是同一支業務程式的兩個畫面——母表單負責建檔與計算攤提,本頁只負責挑區間出報表。費用怎麼建、攤提怎麼算,請看母表單頁;本頁只說明列印條件與其連動。
前置需求¶
- 權限:Q.固定資產 →
Q-020 預付費用的瀏覽與列印權限(列印頁沿用母程式ACCEXP的權限)。 - 基礎資料:報表內容取自預付費用主檔與其攤提表,列印前請先確認下列資料已維護——
| 資料 | 影響的結果 |
|---|---|
| 預付費用主檔(預付費用) | 報表的費用編號、名稱、廠商、金額等基本欄位 |
費用攤提表(母表單按 計算攤提 產生) |
報表的各期攤提金額、累計攤提、本期攤提 |
| 費用分攤表(製/營/管/研費分攤率) | 報表的科目別費用分攤 |
| 廠商主檔 | 報表上的廠商簡稱 |
注意
若某筆費用尚未在母表單按過 計算攤提,攤提表是空的,報表的攤提相關欄位會是空白或 0。另請留意:目前列印路徑只用起訖費用編號篩選資料,你輸入的年度/月份尚未送進報表(以年月比對攤提期間的邏輯仍在程式中被註解,見下方「規劃中/未提供」)。
操作步驟¶
- 在 預付費用 主表單翻到要列印的單據,按工具列的
列印,系統開出本列印頁。 - 確認或調整列印條件:
- 年度:預設為系統當年(西元年)。
- 月份:預設為系統當月(兩位數,如
06)。 - 起始費用編號:預設帶入剛才那張單據的費用編號;要印多筆時可改成區間起點。
- 截止費用編號:開窗時若是從某張單據進來,預設=該單據的費用編號;否則預設
zzzz(代表「印到最後一筆」)。
- 在報表清單中挑選要輸出的報表(攤提明細表/費用分攤表等,清單由系統依本程式註冊的報表帶出)。
- 按
預覽先在畫面上檢視,或按列印直接送印;預覽畫面亦可匯出 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):按列印時,本頁把起始費用編號與截止費用編號包成報表參數(BeginningDocumentNo/EndingDocumentNo)交給報表引擎,報表即以這個區間篩選資料。GetReportParameters目前只回傳這兩個編號參數,年度/月份並未隨之下傳。 -
HaveReportData()永遠回 true:本頁不在前端做「查無資料就擋住」的檢查,一律允許送出列印。若區間內真的沒有符合的費用,報表會是空表——這是預期行為,不是錯誤。 -
報表清單來源:本頁未在程式內寫死報表清單(不像部分列印頁實作
IPrintSource.GetReports()),而是沿用母程式ACCEXP註冊的報表定義。可選的報表(攤提明細、費用分攤等)由系統的報表登錄資料決定,因此實際看到的清單以環境設定為準。
規劃中/未提供
程式碼中保留了一條完整路徑:以 Accexp1/Accexp2 報表類別搭配 AccexpReportBll.GetAssetPocos()(呼叫報表 SP TWORK_RPT_ACCEXP)取數,查詢條件用 年度/月份 比對各筆費用的起始日/截止日(取年月前 7 碼),再把年度/月份/公司名設進報表參數。但這整段(Accexp1Report/Accexp2Report/SetParameter)目前全被註解、尚未啟用。也就是說,年度/月份「篩選攤提期間」與「印在報表抬頭」這兩件事現階段都不生效,待後續開通。
常見問題¶
報表印出來是空白/沒有任何資料?
請依序確認兩件事:(1) 起始/截止費用編號區間是否真的涵蓋目標單據(截止編號太小會把資料切掉,整批列印請設 zzzz);(2) 該筆費用是否已在預付費用母表單按過 計算攤提。請注意目前列印只用費用編號區間篩選,年度/月份尚未參與資料篩選(見上節說明)。
攤提金額、累計攤提欄位都是 0?
攤提數字來自費用攤提表。若母表單從未對這筆費用按 計算攤提,攤提表是空的,報表自然印不出金額。請回母表單先計算攤提再列印。
為什麼一開窗,費用編號就自動填好了?
這是設計行為。母表單在開列印頁時會把目前停留單據的費用編號帶進起訖兩欄,方便你直接印當前這一筆。要印整批時自行把區間放寬即可,詳見欄位連動與附加功能。
改了年度/月份,報表內容或抬頭卻沒跟著變?
這是目前的已知狀態:年度/月份兩欄雖可輸入,但列印路徑尚未把它們送進報表——既不參與資料篩選,也不會印在抬頭。以年月比對攤提期間、並把年月/公司名設進報表參數的那段程式現階段仍被註解(見上節的「規劃中/未提供」說明),待後續開通後這兩欄才會生效。
報表清單裡看不到我想要的報表?
本頁的報表清單來自母程式 ACCEXP 註冊的報表定義,並非寫死在本頁。若清單缺漏,需由系統管理者在報表登錄資料中補上對應的 ACCEXP 報表。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/Q-FixedAsset/images/):
accexpprint-step1.png— 列印條件面板(年度/月份/起訖費用編號)accexpprint-step2.png— 報表清單與預覽畫面