程式資訊
- 程式 ID:
Bankflow - 所屬子系統:O.銀行票據
- 狀態:stable
資金流量預估表¶
功能簡介¶
「資金流量預估表」把目前各銀行帳戶的餘額,加上截止日期以前所有預期的資金進出(應收/應付票據的預兌、資金預估、未沖完的應收應付帳款),逐日累計成一張「未來結餘走勢表」。財務/出納主管用它在一段期間內回答三件事:
- 各帳戶現在有多少錢?換算本幣是多少?(現有原幣/本幣餘額)
- 截止日期前還會有哪些錢進出、哪一天進出?(個別帳戶 / 個別彙總明細)
- 把全部帳戶合起來看,公司整體的資金結餘到哪一天會見底?(全部銀行帳戶頁籤的折線圖與基準線警示)
資料來源橫跨四塊:應收票據(票據收款)、應付票據(票據付款)、資金預測的人工預估,以及尚未沖完的應收應付帳款。它是一張純查詢報表,不會異動任何單據。
前置需求¶
- 權限:O.銀行票據 →
O-110 資金流量預估表的瀏覽/列印權限。 - 基礎資料:結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 銀行帳戶餘額(銀行每日對帳 / 銀行帳戶查詢) | 各帳戶的現有原幣餘額與「期初」起算點 |
應收票據(票據收款,票況 CA 庫存 / CB 託收) |
明細的存入(票據存入)列 |
應付票據(票據付款,票況 CP 庫存 / CQ 在途) |
明細的提出(票據兌現)列 |
| 資金預估(資金預測) | 明細的預估列(存入/提出) |
| 未沖完應收應付帳款(帳款管理,本幣應收付 > 沖帳本幣) | 「帳款」虛擬帳戶的應收/應付列 |
| 匯率資料(匯率設定) | 帳戶現有本幣餘額的換算匯率;以及條件選「匯率表」時票據/預估的外幣換算匯率 |
「帳款」是虛擬帳戶
未沖完的應收應付帳款不屬於任何一個真實銀行帳戶,系統會用一個名為 帳款 的虛擬帳戶(依幣別各一筆)把它們列進資金流量,讓你連同票據、預估一起估算未來結餘。
操作步驟¶
本表是純查詢,操作集中在左側條件面板(BankflowCondition)與工具列的 查詢/列印。

步驟① 設定查詢條件¶
- 輸入 截止日期:要預估到哪一天。系統會把「今天 ~ 截止日期」之間所有預期進出都算進來。預設為今天 +2 個月。
- 選擇 匯率別(外幣換算用):
立帳日期:用票據/預估單據建立當下的立帳匯率(預設)。匯率表:改用匯率設定裡「3.其他」類別、截止日期當天的買入匯率重新換算。
- 輸入 基準線(資金警戒線):設一個本幣金額當作安全水位,預設 0(代表不警示)。設定後,全部銀行帳戶頁籤裡結餘金額低於這條線的列會以紅底標示,折線圖也會畫一條紅色水平警示線。詳見欄位連動與附加功能。
步驟② 執行查詢¶
按工具列的 查詢,結果分成三個頁籤:
- 個別銀行帳戶:上半部是各帳戶的餘額與預估彙總(現有原幣餘額/現有本幣餘額/預估金額/差異金額);點選上半部某一帳戶,下半部會帶出該帳戶的逐筆資金進出明細(含每筆的結餘原幣/結餘金額),以「期初」起算往後累計。
- 個別銀行匯總:同樣上半部選帳戶、下半部看明細,差別在下半部是同帳戶同日合併成一列的彙總(同一天的票據存入/票據兌現/預估會併成一列、說明欄標示性質)。
- 全部銀行帳戶:把所有帳戶合計成一張公司整體的逐日資金流量,左邊是明細格線、右邊是結餘金額折線圖+基準線紅色警示線。

切換帳戶不必重查
「個別銀行帳戶」與「個別銀行匯總」頁籤上半部點不同帳戶,下半部明細是即時連動的,不需要重新按 查詢。只有改了截止日期、匯率別才需要重查;只改基準線則折線圖/紅底會即時更新。
步驟③ 列印 / 匯出 Excel¶
工具列 列印 提供三張報表(依當前資料即時帶入):
| 報表編號 | 報表抬頭 | 對應頁籤 |
|---|---|---|
| O110-1 | 個別帳戶資金預估表 | 個別銀行帳戶(逐筆明細) |
| O110-2 | 個別帳戶資金彙總預估表 | 個別銀行匯總(同日合併) |
| O110-3 | 全部帳戶資金預估表 | 全部銀行帳戶 |
各頁籤的格線都可在格線上按右鍵 → 匯出 Excel。
欄位說明¶
查詢條件(BankflowCondition)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 截止日期 | ✔ | 預估的最後一天;格式 YYYY/MM/DD。預設 = 今天 +2 個月(DateTime.Now.AddMonths(2)) |
| 匯率別 | ✔ | 立帳日期(預設,用單據立帳匯率)或 匯率表(用匯率表「3.其他/買入」重算)。只影響外幣的本幣換算 |
| 基準線 | — | 本幣資金警戒線,預設 0(=不警示);> 0 才會啟用全部帳戶頁的紅底與折線警示 |
帳戶彙總列(個別銀行帳戶 / 個別銀行匯總 上半部)¶
| 欄位 | 說明 |
|---|---|
| 帳戶代號 / 帳戶簡稱 | 各銀行帳戶;應收應付帳款顯示為虛擬帳戶 帳款 |
| 幣別 | 帳戶幣別 |
| 現有原幣餘額 | 截止日期當下該帳戶的原幣餘額(來自銀行對帳資料) |
| 匯率 | 截止日期當天該幣別的「3.其他/買入」匯率(U_Blrate);本幣帳戶通常為 1。「帳款」虛擬帳戶無餘額,此欄為 0 |
| 現有本幣餘額 | = 現有原幣餘額 × 匯率(四捨五入到本幣小數位) |
| 預估金額(帳戶預估金額) | = 現有原幣餘額 + 該帳戶截止日期前所有明細的(存入原幣 − 提出原幣) |
| 差異金額 | = 預估金額 − 現有原幣餘額(即這段期間的淨進出) |
明細列(下半部 / 全部銀行帳戶)¶
| 欄位 | 說明 |
|---|---|
| 日期 | 該筆預期進出的日期(票據用預兌日、帳款用到期日、預估用預估日期) |
| 說明 | 來源性質+對象,如「應收票據,客戶簡稱,票號」「(應收帳款),客廠部簡稱,財務單號,備註」「預估,…」、首列為「期初」 |
| 存入原幣 / 提出原幣 / 結餘原幣 | 該帳戶以原幣計的逐筆累計結餘(自期初列起算) |
| 幣別 / 匯率 | 該筆所用幣別與匯率 |
| 存入金額 / 提出金額 / 結餘金額 | 換算本幣後的逐筆累計結餘 |
全部銀行帳戶頁籤只有本幣欄位
全部帳戶頁是把所有幣別帳戶換算本幣後才合計的,所以只保留存入金額/提出金額/結餘金額(本幣)三欄,沒有原幣欄。折線圖畫的就是這條 結餘金額。
欄位連動與附加功能¶
本節彙整「輸入某欄位 / 按某動作後,系統會做什麼」,是本頁最需要留意的部分。
截止日期決定整張表的抓取範圍¶
當你輸入 截止日期 並按 查詢,系統用它當所有資料來源的上界,分五段抓資料(對應後端 DARB_QRY_BANKFLOW 的五種查詢別):
- 帳戶餘額:抓截止日期當下各帳戶的現有原幣餘額,並用匯率設定的「其他/買入」匯率算出現有本幣餘額。
- 應收票據:抓今天 ~ 截止日期之間、票況為
CA(庫存)或CB(託收)的票據收款,列為存入。 - 應付票據:抓今天 ~ 截止日期之間、票況為
CP(庫存)或CQ(在途)的票據付款,列為提出。 - 資金預估:抓今天 ~ 截止日期之間的資金預測,依其存入/提出金額列入。
- 應收應付帳款:抓到期日 ≤ 截止日期且本幣應收付 > 沖帳本幣(即還沒沖完)的 AR/AP 帳款,掛到虛擬帳戶「帳款」,AR 類列存入、AP 類列提出。
票據與預估只抓「今天以後」
票據(存入/提出)與資金預估這三段的起點是今天,不是截止日期往前推。已經過了預兌日/預估日的資料不會再列入;只有未沖完帳款是用「到期日 ≤ 截止日期」整段抓。
匯率別切換會改變外幣換算¶
選 匯率別=立帳日期 時,票據(票據收款/票據付款)與資金預測的本幣金額用單據建立時的立帳匯率換算;選 匯率表 時,改用截止日期當天匯率設定「3.其他」類別的買入匯率重算存入/提出金額。帳款列固定用其原單匯率、不受此選項影響。切換後要重新按 查詢 才會重算。
點選帳戶 → 下半部明細即時連動¶
「個別銀行帳戶」「個別銀行匯總」上半部的帳戶格線,點選某一列(SelectedItem / GroupSelectedItem)時:
- 個別銀行帳戶 下半部立即帶出該「帳戶代號+幣別」的逐筆明細(Bankflow02)。
- 個別銀行匯總 下半部帶出該帳戶的同日合併明細(Bankflow01)。
查詢完成時系統會自動選取第一個帳戶,所以一查完就先看到第一個帳戶的明細,不必再手動點。
期初列與逐筆結餘的算法¶
每個帳戶明細的第一列固定是 期初列(說明欄顯示「期初」),等於該帳戶的現有餘額;之後每一筆往下,結餘 = 上一列結餘 + 本列存入 − 本列提出,原幣與本幣各算一條(SetBalanceAmount)。這就是明細裡 結餘原幣 / 結餘金額 的來源;全部銀行帳戶頁的結餘金額則由 SetOrder 把每日淨額累加而得,也是折線圖那條線的資料。
同日多筆會被合併(個別銀行匯總 / 全部銀行帳戶)¶
同一帳戶同一天若有多筆進出,「個別銀行匯總」會把它們併成一列:金額相加,說明欄則依性質標上「票據存入」「票據兌現」「預估」等字樣(對應 VFP 的同日彙總邏輯)。「全部銀行帳戶」再把所有帳戶同一天的本幣金額合計成公司整體的單日進出。
基準線資金警戒線(新版特色)¶
這是新版相對 VFP 增加的視覺化功能,集中在全部銀行帳戶頁籤:
- 紅底警示:當你在條件面板把 基準線(BaseLine)設成大於 0 的金額,明細格線中結餘金額 < 基準線的列會套上半透明紅底(由
BankflowBaseLineRowBackgroundConverter即時判斷)。基準線 = 0 時不警示、維持原色。 - 折線圖:右側
RadCartesianChart以日期為 X 軸、結餘金額為 Y 軸畫出公司整體資金結餘走勢;同一天有多筆時,圖上只取當日最後一筆(收盤結餘)(Bankflow03Chart依日期 GroupBy 後取 Last)。 - 紅色警示線:圖上會畫一條對應基準線值的紅色水平線(
CartesianGridLineAnnotation),一眼就能看出折線在哪一天跌破安全水位。
紅底只在全部銀行帳戶頁
紅底警示只套在全部銀行帳戶頁的格線(bankflow03DataGrid 的 RowStyle);「個別銀行帳戶」「個別銀行匯總」兩頁的明細格線沒有套用基準線紅底。
改基準線不必重查
基準線是純前端比較,改完數值,紅底與紅色警示線會即時更新,不需要重新按 查詢。
列印與 Excel 匯出¶
- 工具列
列印(GetReports)提供 O110-1~O110-3 三張報表(見步驟③),列印資料即時取自目前查詢結果(GetReportParameters把三個來源各自轉成報表 POCO)。 - 每個頁籤的格線都支援右鍵匯出 Excel。
- 報表來源說明若含票據號碼,列印時會把票號從說明中移除、改放票據號碼欄,避免重複顯示。
常見問題¶
按查詢後三個頁籤都是空的?
最常見原因是截止日期太近——票據、預估只抓「今天 ~ 截止日期」之間的資料,若這段期間沒有任何預兌票據/預估/到期帳款,明細自然是空的。請把截止日期往後拉(預設是今天 +2 個月),並確認區間內確實有對應的票據收付、資金預估或未沖完帳款。
外幣帳戶的本幣金額看起來怪怪的 / 跟總帳對不起來?
本表的本幣換算是估算值:現有本幣餘額用截止日期當天「3.其他/買入」匯率換算,票據/預估則依「匯率別」選擇用立帳匯率或匯率表換算。它的用途是預估未來結餘,不等於總帳的入帳金額。若想換一組匯率,把匯率別改成 匯率表 再重查。
基準線設了卻沒看到紅底或警示線?
請確認三點:(1) 基準線必須大於 0,設 0 代表停用警示;(2) 紅底與折線警示線只出現在全部銀行帳戶頁籤,個別帳戶/匯總兩頁的明細不會變紅;(3) 要有結餘金額低於基準線的列才會變紅。若整段期間結餘都在水位以上,就不會有紅色。
預估金額和差異金額是怎麼算的?
預估金額 = 該帳戶現有原幣餘額 + 截止日期前所有明細的(存入原幣 − 提出原幣);差異金額 = 預估金額 − 現有原幣餘額,也就是這段期間的淨進出。若某帳戶在區間內完全沒有票據/預估/帳款,預估金額會等於現有餘額、差異為 0。
為什麼有些票據沒被列進來?
票據只抓特定票況:應收票據限 CA(庫存)、CB(託收);應付票據限 CP(庫存)、CQ(在途)。已兌現、退票、作廢等其他票況不會列入資金流量。可到票據查詢(收款)/票據查詢(付款)確認票況。
相關功能¶
- 票據收款 — 應收票據來源
- 票據付款 — 應付票據來源
- 資金預測 — 人工資金預估來源
- 銀行每日對帳 — 帳戶餘額來源
- 銀行帳戶查詢 — 查單一帳戶餘額明細
- 匯率設定 — 外幣換算匯率
- 票據查詢(收款) / 票據查詢(付款) — 確認票況
- 帳款管理 — 應收應付帳款明細
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/O-Check/images/):
bankflow-step1.png— 條件面板(截止日期 / 匯率別 / 基準線)bankflow-step2.png— 查詢結果三頁籤,建議以「全部銀行帳戶」頁為主畫面,呈現結餘折線圖、基準線紅色警示線與跌破水位的紅底列