程式資訊
- 程式 ID:
Rp_balance - 所屬子系統:I.帳款管理
- 狀態:stable
科目餘額表¶
功能簡介¶
「科目餘額表」把指定區間內應收/應付明細帳(子帳)逐筆沖帳後重算出來的科目餘額,與總帳(GL)該科目的餘額並列比對,幫財會人員回答一個問題:「應收/應付子帳和總帳對得起來嗎?」
報表抬頭即為「科目餘額表」(報表編號 I130-1)。畫面分上、下兩格:
- 上格(彙總):依科目代號+幣別彙總,列出本幣/原幣的期初、借餘、貸餘、期末,並同列附上總帳本幣期末/總帳原幣期末,方便一眼看出子帳與總帳是否一致。
- 下格(明細):點選上格某一列後,下格自動帶出該科目該幣別的逐筆明細(每張財務單/傳票一列),可追到單筆的沖帳金額與來源單號。
這支表單是純查詢報表,不做新增、修改、刪除;資料一律由查詢條件(起訖日期)向後端 SP 撈取後在前端重算。常用於月結對帳、與總帳勾稽。
前置需求¶
- 權限:I.應收應付 →
I-130 科目餘額表的瀏覽(查詢)與列印權限。 - 基礎資料:本表是「重算後對帳」性質,結果是否正確取決於下列資料——
| 資料 | 影響的結果 |
|---|---|
| 應收/應付立帳單據(應收帳款、應付帳款 等) | 各科目的期初與本期借貸發生數 |
| 收付款沖帳(收款單、付款單/沖帳作業) | 本期沖帳金額(借餘/貸餘的扣抵) |
| 會計科目主檔(SK_ACCL) | 科目名稱(由系統依科目代號帶出) |
| 已過帳的總帳傳票(總帳) | 總帳本幣期末/總帳原幣期末 兩欄,供與子帳期末並列比對 |
| 系統控制分類(AR+/AP-…) | 判斷該科目屬借方或貸方,決定期末方向 |
備註
本表的「總帳」欄位來自已過帳的傳票。如果子帳已立帳但傳票尚未過帳,子帳側有金額、總帳側為 0,屬正常的時間差,不一定是錯帳。
操作步驟¶
步驟① 設定查詢區間¶
- 在條件面板輸入起始日期與截止日期(遮罩
9999/99/99,即yyyy/MM/dd)。 - 系統預設帶入本月份:起始日期=本月 1 日、截止日期=本月最後一日(依當月實際天數,2 月會帶 28/29)。
- 兩個日期一律帶有預設值,會用來界定「期初(截止於起始日之前)」與「本期(起始日~截止日)」的切點;請依需要調整成欲查詢的區間。
步驟② 執行查詢¶
- 按工具列的
查詢。 - 系統呼叫後端 SP
DARB_QRY_RP_BALANCE(傳入起訖日期),撈回原始明細後在前端逐筆重算沖帳,彙總成上格、明細成下格。 - 查無資料或 SP 未回傳足夠的結果集時,會跳出提示訊息;請確認區間內確有應收/應付異動。
步驟③ 檢視彙總與明細¶
- 上格(彙總)顯示各科目各幣別一列;對照同列的本幣期末 vs 總帳本幣期末、原幣期末 vs 總帳原幣期末即可判斷子帳與總帳是否一致。
- 在上格點選任一列,下格(明細)會自動切換成該科目+該幣別的逐筆明細(含傳票號碼、摘要、客廠部、匯率、財務單號等)。
- 兩格皆為唯讀,無法在表上直接編輯數字。
步驟④ 列印/匯出¶
- 按工具列的
列印/預覽,套用報表I130-1 科目餘額表(A4、台灣區)出表。 - 報表同時提供明細與彙總兩組資料來源(見欄位連動與附加功能)。
- 兩格格線都可右鍵匯出 Excel,把當前清單另存試算表。
小技巧
改了起訖日期後,直接再按一次 查詢 即可重撈重算;上、下格會一起更新。
欄位說明¶
查詢條件¶
| 欄位 | 預設 | 說明 |
|---|---|---|
| 起始日期 | 本月 1 日 | 區間起日;早於此日的異動歸入「期初」。 |
| 截止日期 | 本月最後一日(依當月天數) | 區間迄日。 |
上格(彙總,依 科目代號+幣別)¶
| 欄位 | 說明 |
|---|---|
| 科目代號 | 會計科目代號。 |
| 科目名稱 | 由科目代號帶出(科目主檔)。 |
| 幣別 | 該列的交易幣別。 |
| 本幣期初 / 本幣借餘 / 本幣貸餘 / 本幣期末 | 子帳側以本位幣彙總的期初、本期借貸發生、期末餘額。 |
| 原幣期初 / 原幣借餘 / 原幣貸餘 / 原幣期末 | 同上,但以原幣(交易幣別)表示。 |
| 總帳本幣期末 | 取自總帳該科目該幣別的期末(借貸方向已依借貸別正負化)。 |
| 總帳原幣期末 | 同上之原幣金額。子帳期末與此兩欄不一致時表示子帳與總帳有差異。 |
下格(明細,逐筆)¶
| 欄位 | 說明 |
|---|---|
| 科目代號 / 科目名稱 / 幣別 | 與上格相同,便於辨識。 |
| 傳票號碼 | 該筆對應的總帳傳票號碼(自動轉入者由轉入備註或收付款單號回填,見下節)。 |
| 摘要 | 單據摘要。 |
| 客廠部代號 / 客廠部簡稱 | 對象(客戶/廠商/部門)代號與簡稱。 |
| 本幣/原幣 期初・借餘・貸餘・期末 | 該筆單據在本區間的金額分解(前期未沖部分入期初;本期沖帳入借/貸餘)。 |
| 匯率 | 該筆的原幣對本幣匯率。 |
| 財務單號 | 來源財務單(立帳單)單號。 |
| 程式類別 | 來源程式代碼(兩碼),標示該筆從哪支單據而來。 |
| pkid | 財務單明細主鍵(內部識別,對帳追單用)。 |
備註
上格的金額是把下格明細依「科目代號+幣別」彙總(Sum)而來;下格各筆相加即為上格該列。
欄位連動與附加功能¶
這一節說明「按某動作 / 選某列後,系統實際做了什麼」,全部對照程式碼整理。
查詢時的重算邏輯(核心)¶
當你按 查詢,系統不是直接把 SP 結果貼上畫面,而是逐筆重算沖帳後再彙總:
- 抓資料:以起訖日期呼叫 SP
DARB_QRY_RP_BALANCE,取得多個結果集(立帳明細、收付沖帳明細、總帳餘額、傳票對照、收付款單號對照)。 - 算本期沖帳:把收付沖帳明細依財務單分組,分成「前期(收付款日期 < 起始日期)」與「本期(起始日 ≤ 收付款日期 ≤ 截止日)」兩段累計借餘金額。
- 判斷借/貸方科目:依單據分類,
AR+(應收)或AP-(應付)視為借方科目,其餘視為貸方科目,決定期末是「借-貸」或「貸-借」。 - 分期初 vs 本期:
- 立帳日期早於起始日者,併入期初(並把前期沖帳一併沖掉),本期再扣本期沖帳。
- 立帳日期落在區間內者,期初歸 0,整筆視為本期借/貸發生,再加減本期沖帳。
- 彙總:明細算完後,依科目代號+幣別
Sum成上格彙總列。
完全沖帳的單據會被隱掉
重算後,凡是本幣期初=0、且本幣借餘=本幣貸餘、且本幣期末=0 的明細列會被自動移除(代表本期立帳又在本期完全沖掉、淨額為 0),所以畫面只留下還有餘額影響的單據。
點選上格 → 下格連動¶
當你在上格點選某一列(SelectedItem 改變),系統會以該列的科目代號+幣別為鍵,從查詢時建好的明細索引中取出對應的逐筆明細,塞進下格。若取消選取(無選取列),下格清空。換列即時切換,不需重新查詢。
傳票號碼自動回填¶
下格的傳票號碼並非全部由 SP 直接給;對於自動轉入的單據(財務單號以 9 開頭、原本傳票號碼為空、且轉入備註含「自動轉入」字樣),系統會:
- 轉入備註不是以
P開頭:直接取「自動轉入」前面那段字串當傳票號碼。 - 轉入備註以
P開頭:以該段字串去收付款單號對照表換出真正的傳票號碼。
若上述都填不到,最後再用財務單對照表(依 pkid)補一次傳票號碼,盡量讓每筆都能追到傳票。
子帳 vs 總帳差異提示(底色)¶
規劃中/尚未提供
VFP 舊版會在上格依規則上色:當某列原幣期末≠總帳原幣期末 或 本幣期末≠總帳本幣期末 時,整列以淺綠底色標示,提醒子帳與總帳對不上。新版 C# 畫面目前未實作此自動底色,請以肉眼或匯出 Excel 後比對「期末 vs 總帳期末」兩組欄位來找差異。
列印報表(IPrintSource / GetReports)¶
本表為 IPrintSource,列印/預覽 會套用報表清單中的:
- 報表編號 I130-1、名稱 Rpbalance、抬頭 科目餘額表、區域 TW、尺寸 A4。
出表時系統準備兩組資料來源給報表:
- 明細資料:把全部明細(含被選取與否)依科目代號 → 幣別 → 客廠部代號排序,附上查詢的截止日期作為表頭日期。
- 彙總資料:取上格每列的科目代號、科目名稱、幣別、原幣期末,供報表的彙總段落使用。
彙總列印的幣別合併(VFP 行為)
VFP 舊版列印彙總時會把同一科目的多個幣別合併成一格(幣別與原幣期末各以換行排列),並把「指定幣別(本位幣)」排在最前。此為報表模板層的呈現,新版以 FastReport 報表處理;實際排版以 I130-1 報表模板為準。
匯出 Excel¶
兩格 TsRadGridView 皆內建在欄位標題上按右鍵 →「匯出至 Excel」,把目前顯示的彙總或明細另存 .xlsx,供對帳留存或二次分析。VFP 舊版的列印對話框另有「匯出 Excel」分支,輸出欄位與明細報表一致(科目代號、科目名稱、傳票號碼、摘要、客廠部、本幣/原幣各餘額、匯率、財務單號等),依科目代號/幣別/客廠部代號排序;新版改由格線內建的 Excel 匯出取代。
常見問題¶
查詢後完全沒有資料?
請確認:① 起訖日期區間內確實有應收/應付的立帳或沖帳異動;② 後端 SP DARB_QRY_RP_BALANCE 已正確部署且回傳足夠的結果集。若 SP 回傳的結果集不足,系統會視為查無資料並提示訊息。
某張單據查得到立帳卻沒出現在明細?
本表會把「本期立帳又在本期完全沖帳、淨額為 0」的明細自動隱藏(本幣期初=0、借餘=貸餘、期末=0)。這類單據對餘額沒有影響,所以不顯示,屬正常行為而非漏資料。
「總帳本幣期末/總帳原幣期末」是空白或 0?
這兩欄取自已過帳的總帳傳票。若該科目該幣別在總帳尚無過帳資料(例如傳票還沒過帳、或科目尚未對應),總帳側就會是 0。請至總帳確認傳票是否已過帳。
子帳期末和總帳期末對不起來,怎麼找差異?
逐列比對上格的本幣期末 vs 總帳本幣期末、原幣期末 vs 總帳原幣期末;找到不一致的科目後,點該列看下格逐筆明細,循財務單號 / 傳票號碼追到來源單據與傳票。(VFP 舊版會用淺綠底色標出不一致的列,新版尚未提供此底色,需自行比對。)
下格的「傳票號碼」是空的?
多數自動轉入的單據會由系統從轉入備註或收付款單號回填傳票號碼;若仍為空,通常代表該筆來源單據尚未產生對應傳票(例如尚未轉傳票或尚未過帳)。請回到來源單據確認是否已轉傳票。
改了日期金額沒變?
本表不會即時隨日期重算,必須再按一次 查詢 才會以新區間重撈並重算上下兩格。
相關功能¶
- 應收帳款 receive
- 應付帳款 paymnt
- 收款單 rsheet
- 付款單 psheet
- 應收帳齡分析 arage
- 應付帳齡分析 apage
- 應收應付查詢 arapsearch
- 總帳模組
- 應收應付模組首頁
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/I-ARAP/images/):
rp_balance-step1.png— 條件面板(起始日期~截止日期)rp_balance-step2.png— 查詢後上格彙總(含本幣/原幣期末與總帳期末並列)rp_balance-step3.png— 點選上格某列後下格帶出的逐筆明細rp_balance-step4.png— 列印預覽(I130-1 科目餘額表)