程式資訊
- 程式 ID:
APPRINTPAGE - 所屬子系統:I.帳款管理
- 狀態:stable
應付帳款列印條件¶
功能簡介¶
「應付帳款列印條件」是應付帳款單據在按下 列印 時跳出的列印條件伴隨頁,本身不查資料、不存資料,只負責讓你選定列印範圍與報表,再交由報表引擎產生紙本或預覽。它不會單獨出現在主選單,而是從應付帳款表單內被叫起來。
由應付帳款開啟時,系統會把目前這張單據的財務單號、帳款期別先帶進條件,付款日期區間預設為當月,所以多數情況下你只要直接按列印即可印出目前這張應付帳款單。
與帳齡查詢的差別
本頁印的是單張/一段範圍的應付帳款對帳單與折讓單;如果要看的是依廠商分桶的帳齡彙總,請改用應付帳齡分析查詢,那是另一支獨立的查詢報表。
前置需求¶
- 權限:I.AR/AP → 應付帳款(
PAYMNT)的瀏覽權限,以及列印權限;本頁隨應付帳款表單開啟,不另設選單項目。 - 基礎資料:報表內容的完整度取決於下列資料——
| 資料 | 影響的結果 |
|---|---|
| 應付帳款(含明細) | 對帳單的金額、發票、明細列來源;沒有資料就印不出內容 |
| 廠商主檔 | 報表上的廠商簡稱/名稱、付款方式、付款條件 |
| 單據別設定(單據別說明) | 折讓單彙總、明細的財務類別/單據名稱翻譯 |
報表範本(FastReport .frx) |
三張報表的版面;範本缺漏會導致預覽空白 |
操作步驟¶
- 在應付帳款表單上開啟要列印的單據,按工具列的
列印,系統彈出本條件頁,並已帶入目前單據的財務單號與帳款期別。 - 在上方兩個條件區塊中擇一勾選列印範圍(兩區塊的圓鈕互斥,只有被勾選的那一組條件會生效):
- 財務單號:輸入起/訖財務單號,列印這段單號區間內的應付帳款。
- 廠商代號:輸入起/訖廠商代號與起/訖付款日期,改以廠商+付款日期區間列印。
-
從報表清單中選擇要印的報表(見欄位連動與附加功能的報表清單):
報表編號 報表抬頭 I010-1 應付帳款單 I010-3 折讓單彙總表 I010-4 電子發票折讓單 -
按
預覽在螢幕上檢視,確認無誤後列印出紙本,或匯出 PDF/其他格式。
小技巧
從應付帳款表單開啟時條件已自動帶好,多數情況直接選報表、按預覽即可,不必再手動輸入單號。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 財務單號(起~訖) | 視範圍 | 選「財務單號」範圍時必填;由應付帳款開啟時,起、訖都預帶目前單據的財務單號 |
| 廠商代號(起~訖) | — | 選「廠商代號」範圍時使用;程式不做必填檢核(空白也可列印)。支援廠商搜尋(不檢核資料存在)。由應付帳款開啟時起為空、訖預帶 zzzz |
| 付款日期(起~訖) | — | 搭配廠商代號範圍使用;由應付帳款開啟時起=當月 1 號、訖=今天 |
| 列印範圍(圓鈕) | ✔ | 「財務單號」與「廠商代號」互斥,預設為財務單號範圍 |
帳款期別/往來對象欄位
程式中另有「帳款期別(StatementPeriod)」與「往來對象代號」兩個條件欄位,但目前列印頁上隱藏不顯示(XAML 設為 Collapsed)。帳款期別仍會由應付帳款表單於背景帶入,作為報表參數使用;操作上不需也無法在此頁手動調整。
欄位連動與附加功能¶
這一節說明「輸入某欄位」「按某按鈕」之後系統實際會做什麼,全部取自程式碼。
由應付帳款開啟時的預帶值¶
當你在應付帳款表單按 列印,系統呼叫 GetPrintViewModel() 建立本頁,並依目前單據自動帶入:
- 起/訖財務單號 ← 目前應付帳款的財務單號(兩者相同,等於先鎖定「只印這一張」)。
- 起廠商代號 ← 空字串;訖廠商代號 ←
zzzz(等於「全部廠商」的上界)。 - 起付款日期 ← 當月 1 號;訖付款日期 ← 今天。
- 帳款期別 ← 目前單據的帳款期別(背景參數,畫面不顯示)。
- 列印範圍預設為財務單號(
Condition預設DocumentNo)。
所以一般直接列印時,印出的就是「目前這張應付帳款單」。
列印範圍圓鈕(互斥連動)¶
- 兩個 GroupBox 標頭的圓鈕同屬一組(
GroupName="Condition"),勾選任一個就會取消另一個。 - 勾選哪一組,就決定送進報表的
Condition值:勾「財務單號」→Condition = DocumentNo;勾「廠商代號」→Condition = Date。報表範本再依這個值決定要採用起訖財務單號,還是起訖廠商代號+起訖付款日期。 - 切換範圍不會清掉另一組已輸入的值;不論勾哪一組,
GetReportParameters都會把所有條件(起訖財務單號、起訖付款日期、起訖廠商代號、帳款期別、Condition)一併打包,由報表自行取用。
列印前的資料檢核(HaveReportData)¶
按預覽/列印時,系統會依目前選的範圍先檢查條件是否齊全,不齊全就不產生報表:
- 選財務單號範圍(
Condition = DocumentNo):起、訖財務單號任一為空 → 不列印。 - 選廠商代號範圍(程式內
Condition = Date):不做必填檢核,即使起訖廠商代號或付款日期空白也允許列印。 - 帳款期別亦不做必填檢核。
廠商代號範圍不檢核
雖然 HaveReportData 內另有一個會檢查起訖廠商代號的分支(VendorCode),但畫面上「廠商代號」圓鈕實際送出的是 Date 條件,不會走到那段檢核,因此選此範圍時即使欄位空白也能按出列印。
報表清單(GetReports)¶
本頁可選的報表固定為下列三張(皆為 A4、台灣區域):
| 報表編號 | 報表名稱 | 報表抬頭 | 用途 |
|---|---|---|---|
| I010-1 | Paymnt1 | 應付帳款單 | 對應目前條件的應付帳款對帳單 |
| I010-3 | Paymnt3 | 折讓單彙總表 | 折讓(減項)單據的彙總 |
| I010-4 | Paymnt4 | 電子發票折讓單 | 電子發票格式的折讓單 |
送進報表的參數(GetReportParameters)¶
按列印時,下列值會打包成報表參數交給 FastReport:起訖財務單號、起訖付款日期、列印範圍(Condition)、帳款期別、起訖廠商代號。報表範本再依這些參數抓取對應的應付帳款資料呈現。
報表資料計算(背景)
報表內容由後端 SP 取回暫存資料後,於 C# 端 ApPrintBll/ApPrint_cyBll 完成分組與金額計算(廠商彙總、結帳表、明細、品號明細等)。其中應付/應收的減項單據會把貨款、稅額、沖帳金額轉為負值呈現;本幣金額依匯率與幣別小數位重算。這些都在背景進行,使用者只需設定條件與選報表。
常見問題¶
按了列印卻沒有任何反應、印不出來?
若列印範圍選「財務單號」,必須同時填起、訖財務單號,任一為空系統就不會產生報表。選「廠商代號」範圍則不檢核欄位,不會因此擋下。由應付帳款表單開啟時財務單號已自動帶好,通常不會發生。
為什麼只看到「財務單號」和「廠商代號」兩種範圍,沒有帳款期別可選?
帳款期別與往來對象兩個欄位在列印頁上刻意隱藏(程式設為 Collapsed)。帳款期別仍會在背景由應付帳款表單帶入並送進報表,不需也無法在此頁手動修改。
報表預覽是空白/印不到目前這張單?
請確認:(1) 列印範圍與條件是否對應到該單據(由應付帳款開啟時起訖財務單號預設就是目前單號);(2) 該應付帳款確實有明細資料;(3) FastReport 報表範本(.frx)存在且未損毀。三者任一缺漏都會造成預覽空白。
折讓相關金額顯示成負數正常嗎?
正常。應付的減項(折讓)與應收的加項單據,系統會在計算時把貨款、稅額、沖帳等金額轉為負值,以正確反映抵減效果,這是設計行為而非錯誤。
相關功能¶
- 應付帳款(本頁的母表單,列印由此叫起)
- 應付帳齡分析查詢
- 單據別說明
- I.AR/AP 帳款管理首頁
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/I-ARAP/images/):
apprintpage-step1.png— 列印條件頁全貌(含財務單號/廠商代號兩個範圍區塊與圓鈕)apprintpage-step2.png— 報表清單選擇畫面(三張報表)apprintpage-step3.png— 應付帳款單預覽結果