程式資訊
- 程式 ID:
BUDGETPRINT - 所屬子系統:N.總帳管理
- 狀態:stable
預算表列印¶
功能簡介¶
「預算表列印」是預算編列(ProgramClass = BUDGET)的列印伴隨頁。它本身不建立、不修改任何資料,而是依傳票號碼區間把已登錄的預算單撈出來,送 FastReport 套印成正式的預算表(報表抬頭「預算表」、報表編號 N120-1)。
主要使用者是財務規劃/會計人員:在預算編列完成後,到本頁把要存查或呈核的預算單批次印出。流程上它接在預算編列之後——通常是在預算單畫面直接按工具列 列印 進來(系統會把當前單的傳票號碼自動帶入起訖兩格,見欄位連動與附加功能)。
畫面非常精簡
本頁的條件畫面只有一顆 傳票號碼 選項鈕加上起始 ~ 截止傳票號碼兩格輸入框,沒有查詢結果清單,也沒有右側分錄明細區。查詢、預覽、列印都靠標準工具列按鈕觸發;查詢撈回的預算單與分錄是在背景處理後直接送進報表,使用者不會在畫面上逐張勾選。
與預算編列是同一支作業的兩個畫面
本頁(ProgramClass = BUDGETPRINT)與預算編列(ProgramClass = BUDGET)共用同一份預算資料,但各自有獨立的權限與畫面。要新增、修改、刪除預算單請到預算編列;本頁只做查詢與列印。
前置需求¶
- 權限:N.總帳 →
N-120 預算表列印的瀏覽與列印權限。 - 基礎資料:能印出什麼,取決於下列資料是否已維護——
| 資料 | 影響的結果 |
|---|---|
| 預算單(預算編列) | 可被撈出與列印的來源;沒有對應傳票號碼的預算單就查不到任何資料 |
| 會計科目表(科目代號、科目名稱) | 報表明細的科目名稱帶出 |
操作步驟¶
- 通常從預算編列畫面按工具列
列印進入本頁;此時系統會把當前預算單的傳票號碼自動填入起訖兩格。也可單獨開啟本頁手動輸入區間。 - 確認查詢方式為
傳票號碼(本頁僅提供此一種查詢方式)。 - 在 起始傳票號碼 ~ 截止傳票號碼 兩格輸入要列印的傳票號碼區間(兩格留空表示該端不設限)。
- 套用報表
預算表(N120-1、A4),按工具列預覽先看版面或按列印直接送印。系統會撈出區間內的預算單、把其分錄攤平後送進報表。

小技巧
從預算編列按 列印 進來時,起訖傳票號碼已自動帶成當前那張單,直接按 預覽 / 列印 即可印單張。要一次印多張連號的預算單,把起訖號碼拉開再列印。
欄位說明¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 查詢方式(傳票號碼) | ✔ | 本頁固定以傳票號碼區間查詢,選項鈕預設已選(Condition = GeneralLedgerNo) |
| 起始傳票號碼 | — | 區間下限;空白=下限不設限,預設空白。由預算編列按 列印 進入時自動帶入當前單號 |
| 截止傳票號碼 | — | 區間上限;空白=上限不設限,預設空白。由預算編列按 列印 進入時自動帶入當前單號 |
輸入人員/輸入日期條件未在本頁開放
程式碼層另有一條「輸入人員+輸入日期區間」查詢路徑(VM 在開窗時已把輸入人員帶成目前登入者、輸入日期帶成「本月 1 日 ~ 今天」),但本頁的 XAML 畫面只擺出傳票號碼條件,未提供切換到輸入人員查詢的控件。實務上以傳票號碼區間查詢為準。
欄位連動與附加功能¶
本頁邏輯主要來自 BudgetPrintViewModel 與共用的 SliyPrintBll(列印引擎與傳票列印、年度傳票列印同源)。
從預算編列帶單號進來¶
- 當你在預算編列按工具列
列印,母表單會建立本頁的 ViewModel,並把目前主檔的傳票號碼同時填入本頁的 起始傳票號碼 與 截止傳票號碼 兩格(母表單GetPrintViewModel),讓你可直接查詢、列印當前這張單。
開窗即帶的預設值¶
- 進入本頁時,系統把查詢方式設為
傳票號碼、把(程式碼層的)輸入人員帶成目前登入者、輸入日期起始設為本月 1 日、截止設為今天。畫面上只會看到傳票號碼起訖兩格——前述人員/日期預設值供未開放的查詢路徑使用。
按 查詢 撈資料(背景處理,無畫面清單)¶
- 當你按工具列
查詢,系統呼叫後端DARB_RPT_BUDGET(透過SliyPrintBll.SliyPrintSearch(SliyType.BUDGET))撈出預算單,依傳票號碼分群成「一張單對多筆分錄明細」的結構,並暫存在 ViewModel。- 查詢條件為
傳票號碼 BETWEEN 起始 AND 截止(兩端各包成N'...')。 - 撈回後每一張單都會被自動設為選取(
IsChosen = true),並把第一張設為目前選定項。 - 這些都在背景完成——本頁畫面沒有結果清單,使用者不需(也無法)在畫面上逐張勾選。
- 查詢條件為
- 若區間內查不到任何預算單,暫存清單為空,沒有可列印的資料。
列印 / 預覽 把選取的單攤平送報表¶
- 當你按工具列
列印或預覽,系統把查詢撈回、IsChosen為真的預算單分錄攤平成報表資料來源後寫入 SQLite(rpt_n120_budget_report1),再交給 FastReport 套印。攤平的欄位包含:傳票日期、傳票號碼、輸入人員、科目代號、科目名稱、摘要、本借方金額、本貸方金額、部門代號(科目/金額/摘要來自分錄明細,傳票日期與輸入人員來自單頭)。 - 套用的報表固定為下表這一張:
| 報表編號 | 報表抬頭 | 尺寸 / 區域 | SQLite 資料表 |
|---|---|---|---|
| N120-1 | 預算表(Budget) | A4 / TW | rpt_n120_budget_report1 |
- 列印時系統一併把查詢條件(傳票號碼起訖、輸入人員、輸入日期起訖)當作報表參數傳入,供報表抬頭/頁尾顯示。
VFP 原始碼
本表單在 VFP 舊版對應的列印程式碼未收錄於本 repo,故欄位事件僅依新版 C# 程式碼描述;若日後補入 VFP 來源再行校對。
常見問題¶
按了查詢卻撈不到任何預算單?
本頁只靠傳票號碼區間查詢。請確認:(1) 起訖傳票號碼確實涵蓋到已建立的預算單號碼;(2) 該號碼的預算單已在預算編列存檔(存檔前顯示 +++ 的暫存單還沒有正式號碼,查不到)。若是從預算編列按 列印 進來,號碼已自動帶好,直接查詢即可。
按了列印卻沒東西?
列印會先依目前的傳票號碼起訖區間撈預算單,撈到的單會自動全部納入報表。若印出空白,多半是起訖區間沒涵蓋到任何已存檔的預算單——請確認號碼區間正確、且該預算單已在預算編列存檔。
報表上的科目名稱是空白?
科目名稱取自會計科目表。若該科目代號在科目主檔找不到、或未維護名稱,報表該欄就會留白。請先到會計科目表補齊科目資料。
可以在這個畫面改預算金額嗎?
不行。本頁只做查詢與列印,所有欄位都是唯讀。要新增、修改、刪除預算單或調整分錄金額,請到預算編列。
為什麼畫面上沒有「輸入人員 / 輸入日期」查詢條件?
本頁的畫面只開放傳票號碼區間查詢。程式碼層雖保留了輸入人員+輸入日期的查詢路徑,但未在此畫面擺出切換控件,因此實務上一律以傳票號碼查詢。