程式資訊
- 程式 ID:
FLOWCAST - 所屬子系統:M.主管資訊
- 狀態:stable
金流預測¶
功能簡介¶
「金流預測」把票據、帳款、訂單採購單三種來源的未來現金事件彙整到一條時間軸上,畫出每月的收(流入)/付(流出)堆疊柱與累計淨額折線,讓財務/經營主管一眼看出未來各月的現金部位、最低點落在哪個月、會不會跌破資金警戒線。
三種來源各自代表現金確定性由高到低:
- 票據(已開立、未兌現的應收/應付票)——可信度最高。
- 帳款(已立帳、未沖銷的應收/應付)——可信度高。
- 訂單採購單(已接單/已下單、尚未交貨的部分)——屬推估。
與生產計劃查詢內金流分頁的差異
生產計劃查詢 內也有一個金流分頁,但那是綁生產計畫的口徑(含在途採購、計劃預測缺口)。本程式是獨立、口徑乾淨重寫的版本:三來源用票況/單據分類/已交數量三條清楚分界,互不重疊。
前置需求¶
- 權限:M.主管資訊 →
金流預測的瀏覽權限。 - 資料庫物件:需先部署 SP
TWORK_QRY_FLOWCAST(部署腳本sql/TWORK_QRY_FLOWCAST_<db>.sql,含proc_param登錄)。未部署時按查詢會跳出提示且結果為空。 - 基礎資料:預測完整度取決於下列資料的維護狀況——
| 資料 | 影響的來源 |
|---|---|
| 應收/應付票據(含票況、預兌日/到期日) | 票據層 |
| 應收/應付帳款(rp_m,含收付條件、到期日) | 帳款層 |
| 客戶/廠商收付條件 | 帳款層與訂單採購層的到期日推算 |
| 銷售訂單明細(含已交數量、預訂交期/回覆日) | 訂單層 |
| 採購單明細(含已交數量、預訂交期/回覆日) | 採購層 |
操作步驟¶
步驟① 設定條件¶

- 設定預測顯示區間(起~迄):圖表與明細只顯示現金日落在此區間的項目,預設今天~一年後。
- 設定帳款立帳起日:只納入立帳日在此日(含)之後的未沖帳款,預設近一年——用來濾掉多年未沖的殘留舊帳,避免累計線被灌爆。留空=不過濾。
- 視需要輸入資金警戒線:圖上會畫一條紅色水平線,方便判斷累計淨額是否跌破。
步驟② 執行查詢¶
按工具列的 查詢,畫面顯示:

- 月堆疊柱:每月一柱,依四來源堆疊——收(票據/帳款/訂單)向上、付(票據/帳款/採購)向下。
- 累計淨額折線:逐月把(應收−應付)累加,呈現現金部位走勢;搭配零軸與紅色警戒線判讀。
- 金流明細:下方格線列出每一筆現金事件,收為綠底、付為紅底。
步驟③ 過濾與聚焦¶
- 上方來源勾選(票據/帳款/訂單/採購)可即時開關任一來源,圖與明細同步重算。
- 點圖表的某一柱段 → 明細立即過濾到「該月 × 該來源 × 該收付」;再點同一段、或點圖表空白處 → 取消過濾。
小技巧
想看「6 月的應付票據是哪幾張」,直接點 6 月那根柱子裡的票據(付)色塊,下方明細就只剩那群。明細格線可右鍵匯出 Excel。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明 |
|---|---|---|
| 預測顯示區間(起/迄) | — | 只顯示現金日落在此區間者;預設今天~一年後 |
| 帳款立帳起日 | — | 只納入立帳日在此日(含)後的未沖帳款;預設近一年,留空=不過濾 |
| 資金警戒線 | — | 圖上紅色水平線的金額位置;UI 用途,不影響取數 |
金流明細¶
| 欄位 | 說明 |
|---|---|
| 層級 | 來源:票據/帳款/訂單/採購 |
| 收付 | 收(流入,綠底)/付(流出,紅底) |
| 預計現金日 | 推算出的現金實際進出日(推算規則見下) |
| 年月 | 現金日的年月,圖表分組鍵 |
| 本幣金額 | 該筆現金的本幣金額(恆正,方向由收付表示) |
| 來源單號/對象代號/對象簡稱 | 來源單據與往來對象 |
| 可信度 | 高(票據/帳款)/中(訂單/採購) |
| 備註 | 票據顯示票況、帳款顯示類別、訂單採購顯示品號 |
口徑說明¶
三來源用不同分界欄位確保不重複計算:
票據¶
- 應收票只納票況
CA 庫存/CB 託收/CF 延期;應付票只納CP 庫存/CQ 在途。已兌現/退票/作廢等已了結狀態一律排除。 - 質押(CC)/票貼(CD)不納入:這類融資的現金在質押/貼現當下就已先收到,再算未來流入會與銀行餘額重複。
- 現金日:預兌日優先,沒有預兌日才用到期日。
帳款¶
- 取 rp_m 的未沖餘額,方向以 rpdef 的單據分類判定:
AR+為收、AP+為付(比只看程式類別準,能正確處理退貨/折讓的方向)。 - 費用申請特別處理避免雙算:屬「費用支出」的會轉成「其他應付費用(9B)」,所以只在 9B 計算;費用申請單身只納進銷分類「6.直接沖帳」(直接付掉、不會變 9B)那種。
- 排除:預收/暫收、預付/暫付/待抵、純內部沖轉與科目對應類。
- 現金日:到期日優先;沒有到期日則用收付條件推算;再不行退回立帳日期。
訂單/採購單¶
- 只算未交部分:未交數量=訂單(採購)數量 − 已交數量,大於 0 才納入;金額按未交比例攤計本幣含稅金額。
- 去重關鍵:已交數量代表已出貨/已進貨 → 之後會開發票轉成帳款(rp_m),由帳款層計算;未交部分留在訂單採購層。兩邊以「已交數量」分界,零重疊。
- 只排除已結案的單身;不限定是否已審核。
- 現金日:回覆日期優先、預訂交期次之,再加收付條件推算到期日。
常見問題¶
按查詢結果全空、或跳出「SP 執行失敗」?
金流預測需要 SP TWORK_QRY_FLOWCAST。請確認該 SP 已部署到目前連線的資料庫,且 proc_param 已登錄(用部署腳本 sql/TWORK_QRY_FLOWCAST_<db>.sql 一次完成)。
為什麼累計淨額一開始就很低(或很高)的舊帳很多?
多年未沖的殘留帳款會灌爆累計線。請用帳款立帳起日(預設近一年)把太舊的未沖帳款濾掉。
質押/票貼的票為什麼沒算進來?
質押(CC)、票貼(CD)的現金在融資當下就已先收到,屬於已發生的現金,不是未來流入;若再算一次會與銀行餘額重複,故刻意排除。
費用申請金額很大,怎麼沒看到對應的流出?
費用申請(程式類別 A、財務類別 83)會轉成「其他應付費用(9B)」後才付款,所以金流以 9B 計算;費用申請本身只有「6.直接沖帳」那種才直接計入,其餘不重複計算。
訂單金額為什麼比訂單總額小?
訂單層只算未交部分(數量 − 已交數量)。已交的部分已轉成帳款,由帳款層計算,避免重複。
現金日跟單據上的日期對不起來?
現金日是用收付條件從基準日(票據預兌日、帳款到期日、訂單採購的回覆日/預訂交期)推算出來的預計兌現/收付日,並非單據原始日期。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/M-EIS/images/):
flowcast-step1.png— 條件面板(預測區間/帳款立帳起日/資金警戒線)flowcast-step2.png— 查詢結果(月堆疊柱+累計淨額線+警戒線+明細)
選單代號
code 待登錄程式時由 sql/flowcast_register_program_<db>.sql 自動配發未使用的 M-NN,配發後回填本頁 front-matter。