程式資訊
- 程式 ID:
PayapplyPrintPage - 所屬子系統:I.帳款管理
- 狀態:stable
費用申請單列印¶
功能簡介¶
「費用申請單列印」是 費用申請單(PAYAPPLY)的列印伴隨頁,負責把已建立的費用申請/報銷單據套印成正式表單。它本身不建立或修改單據,只提供一個列印條件面板:你選一個查詢條件(財務單號區間或申請日期區間)、再加上申請部門範圍,系統就把符合的費用申請單抓出來,套用報表格式預覽或列印。
最常見的開啟方式不是從主選單,而是直接在 費用申請單 裡按 列印——此時系統會自動帶入目前這張單據的條件(見欄位連動與附加功能),使用者只要確認報表種類即可出單。會用到這頁的,是需要把費用單/報銷單印出來給主管簽核或留存的請款經辦與會計。
與母表單的關係
這頁屬於 PAYAPPLYPRINT 程式類別,列印的資料來源仍是費用申請單(PAYAPPLY)。維護單據、轉傳票、簽核等動作都在 費用申請單 完成,這頁只管「印」。
前置需求¶
- 權限:I.應付 → 費用申請單列印(
I-030/PAYAPPLYPRINT)的瀏覽、列印權限。 - 資料前提:要列印的內容必須先在 費用申請單 建立並存檔,列印頁才抓得到。
| 資料 | 影響的結果 |
|---|---|
| 費用申請單(已存檔) | 列印的主要內容;查無對應單據則印不出資料 |
| 申請部門(部門主檔) | 申請部門區間篩選;部門代號需存在於部門主檔 |
報表範本(FastReport .frx) |
費用申請單(Payapply1)/撥補報銷單(Payapply2)兩種版型的外觀 |
操作步驟¶
- 從 費用申請單 按工具列的
列印(建議做法,會自動帶入目前單據條件),或從主選單開啟本列印頁。 - 在條件面板上方的兩個群組中,擇一作為查詢條件——群組標題本身就是單選按鈕:
財務單號:以財務單號區間篩選(預設選此項)。申請日期:以申請日期區間篩選。
- 依所選條件輸入區間:
- 選
財務單號時,填財務單號起、訖。 - 選
申請日期時,填申請日期起、訖(日期格式yyyy/MM/dd)。
- 選
- 視需要縮小申請部門範圍(起、訖部門代號),不填則不限部門。
- 選擇報表種類:
費用申請單或撥補報銷單(兩者抓同一份資料、套不同版型)。 - 按
預覽檢視套版結果,或直接列印送印。
小技巧
從費用申請單按 列印 進來時,財務單號起訖已被帶成目前這張單號、申請日期帶成「當月初~今天」,通常直接預覽即可,不必再輸入條件。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢條件(群組標題單選) | ✔ | 財務單號 或 申請日期,二擇一;預設 財務單號(PrintConditionEnum.DocumentNo) |
| 財務單號(起/訖) | 條件為財務單號時必填 | 費用申請單的財務單號區間;從母表單帶入時起訖同為目前單號 |
| 申請日期(起/訖) | 條件為申請日期時必填 | 格式 yyyy/MM/dd;從母表單帶入時為「當月第一天~今天」 |
| 申請部門(起/訖) | — | 部門代號區間,不填=不限;從母表單帶入時為「空 ~ zzzz」(等於全部) |
| 報表種類 | ✔ | 費用申請單 / 撥補報銷單,預設取清單第一筆 |
對帳期別條件目前未開放
程式中保留了一個「對帳期別(StatementPeriod)+廠商區間」的查詢條件群組,但目前在畫面上被關閉、不顯示。母表單帶入列印時雖會填入該張單據的帳款期別,但實際篩選僅以你選的「財務單號 / 申請日期」為準。此區塊屬規劃中、尚未提供。
欄位連動與附加功能¶
這一節說明「你做了某個動作後,系統會怎麼反應」。
從費用申請單按「列印」進來時,系統自動帶入條件¶
當你在 費用申請單 按 列印,母表單會建立本列印頁並把目前游標所在那張單據的資料填進條件面板:
- 財務單號 起、訖都帶成目前單據的財務單號(等於只印這一張)。
- 申請部門 帶成「空 ~
zzzz」,也就是不限部門、印出整張單。 - 申請日期 起帶成「當月第一天」、訖帶成「今天」。
- (內部)對帳期別帶成該單的帳款期別,但此條件目前未在畫面使用。
因此從母表單進來時,多半不需要再動條件,直接預覽/列印即可。
切換「財務單號 / 申請日期」單選¶
兩個群組標題是同一組單選按鈕(GroupName="Condition")。當你點選其中一個:
- 系統把內部的
Condition(PrintConditionEnum)切成DocumentNo或Date。 - 這個值會一併傳進報表參數(
Condition),決定報表 SP 用單號還是日期來撈資料。
也就是說,即使兩個群組的輸入框都填了值,真正生效的是你勾選的那一個條件。
報表清單(GetReports)¶
本頁實作 IPrintSource.GetReports(),提供兩種版型供選擇,兩者撈同一份 SQLite 資料(rpt_i030_payapply_report1)但抬頭不同:
| 報表編號 | 報表名稱 | 報表抬頭 | 尺寸 | 區域 |
|---|---|---|---|---|
| I030-1 | Payapply1 | 費用申請單 | A4 | TW |
| I030-2 | Payapply2 | 撥補報銷單 | A4 | TW |
是否有可印資料(HaveReportData)¶
按下預覽/列印前,系統會檢查財務單號起、訖是否都有值:
- 只要財務單號起或訖任一為空,
HaveReportData()回false,系統視為「沒有可列印的資料」而不出單。 - 因此即使你選的是「申請日期」條件,仍建議帶入財務單號(從母表單進來時會自動帶),以免被此檢查擋下。
報表參數與資料來源(GetReportParameters)¶
按列印時,本頁把下列條件打包成報表參數送給後端報表預存程序 DARB_RPT_PAYAPPLY(透過 ReportBll.GetPayapplyReport):
- 財務單號起訖、申請日期起訖、申請部門起訖、廠商起訖、對帳期別,以及目前選的條件別(
Condition)。 - 後端依條件撈出費用申請單資料,回填成報表 POCO(
Rpt_I030_PayapplyReportPoco)後套版。
撈不到資料時
若條件區間內沒有任何費用申請單,報表會是空白或無資料。請回 費用申請單 確認單據存在、單號與日期正確。
常見問題¶
按列印沒有反應、印不出來?
本頁會先檢查財務單號起、訖是否都有值(HaveReportData)。若兩格任一為空就不會出單。從 費用申請單 按 列印 進來時會自動帶入單號;若是直接開啟列印頁,請先填財務單號起訖。
「費用申請單」和「撥補報銷單」差在哪?
兩者撈的是同一份資料(同一支報表 SP、同一個 SQLite 來源),差別只在套版的報表抬頭與版型:費用申請單(I030-1)給一般費用請款用,撥補報銷單(I030-2)給報銷撥補用。依需求選擇即可。
我想用「對帳期別」或「廠商」來篩選,但畫面上找不到?
對帳期別+廠商區間的條件群組目前在程式裡被關閉、未顯示(規劃中、尚未提供)。現階段請改用「財務單號」或「申請日期」條件搭配「申請部門」範圍來縮小列印對象。
選了「申請日期」卻印不出資料?
即使選日期條件,列印前仍會檢查財務單號起訖是否有值(見欄位連動與附加功能)。建議從母表單按 列印 進來(會自動帶單號),或在列印頁同時填入財務單號起訖。
印出來的內容和費用申請單上看到的不一樣?
列印頁只負責套版,資料一律來自費用申請單。若內容有誤,請回 費用申請單 修改並存檔後再重印;本頁不提供任何資料編輯功能。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/I-ARAP/images/):
payapplyprintpage-step1.png— 列印條件面板全貌(財務單號 / 申請日期兩個群組與申請部門區間)payapplyprintpage-step2.png— 報表種類選單(費用申請單 / 撥補報銷單)payapplyprintpage-step3.png— 列印預覽畫面