跳轉到

程式資訊

  • 程式 IDBUDGET
  • 所屬子系統:N.總帳管理
  • 狀態:stable

預算編列

功能簡介

「預算編列」用一張與傳票格式完全相同的單據來登錄各會計科目的年度預算金額。畫面結構為「主檔(單頭)+ 明細(分錄列)」,每一列填一個科目的借方/貸方預算數,系統會像一般傳票一樣即時換算原幣 → 本幣 → 功能幣 → 集團幣並累計四種幣別的借貸合計。

主要使用者是財務規劃/會計人員。登錄完成的預算單,會被損益表等報表的「預算比較欄」引用,用來和實際發生數對照。它在流程中的位置是:先在會計科目表建好科目,(可選)在常用分錄維護好範本,再到本表單逐筆編列預算金額。

本表單不是一般傳票,也不會過帳

本表單沿用傳票的輸入畫面與借貸結構,方便沿用同一套科目/幣別/分類索引邏輯,但它存的是預算數而非實際分錄;資料供報表的預算欄引用。請勿與傳票輸入(實際分錄、會過帳)混淆。

前置需求

  • 權限:總帳 → N-120 預算編列 的新增/修改/刪除/查詢/列印權限(依工具列可用按鈕對應)。
  • 基礎資料:明細各欄能否正確帶出名稱、能否通過存檔檢核,取決於下列主檔是否已維護:
資料 影響的結果
會計科目表(科目代號、可輸入傳票、各項控制方式) 明細科目代號的檢核(離格時擋下「不可輸入傳票」的科目)與科目名稱帶出;科目的「控制方式」規範該列哪些輔助欄(部門/客廠/員工/專案/產品群組等)應填或不可填
常用分錄 範本 常用分錄(分錄編號)匯入功能要帶入的整組分錄列
幣別/匯率主檔 明細幣別選擇、原幣換本幣的匯率預設值與各幣別小數位數
部門 / 客戶廠商 / 員工 / 專案 / 項目 主檔 明細對應 Seek 欄位的代號檢核與簡稱帶出(部門簡稱、客廠部簡稱、姓名、專案簡稱、項目名稱等)
環境設定(本位幣、功能幣、集團幣及其小數位) 本幣 / 功能幣 / 集團幣金額的四捨五入位數

操作步驟

預算編列主畫面

新增一張預算單

  1. 從主選單開啟 總帳 → 預算編列
  2. 點工具列 新增。系統建立一張空白主檔,並帶入下列預設值(見欄位說明):傳票號碼 +++(存檔時由系統編號)、傳票日期 今天、帳別 B傳票種類 0功能幣匯率/集團幣匯率 皆 1。
  3. 視需要調整單頭:傳票日期(年、月日分兩格輸入)、傳票種類專案代號
  4. 在明細區逐列輸入分錄:
    1. 科目代號 欄輸入或以 Seek(放大鏡)挑科目,系統自動帶出 科目名稱
    2. 幣別,輸入 原幣借方原幣貸方(兩者擇一,輸入一邊另一邊會自動歸 0)。
    3. 系統依 匯率 自動換算 本幣借方/貸方,再依 功能幣匯率/集團幣匯率 換算功能幣與集團幣金額。
    4. 視該科目的控制方式,補填 部門 / 客廠 / 員工 / 專案 / 項目 / 品號 / 分類索引 等輔助欄。
  5. (可選)用 常用分錄 匯入一次帶入整組分錄,再逐列改金額。
  6. 確認畫面下方四幣別的借貸合計符合預期後,點工具列 儲存

修改 / 刪除

  1. 以工具列的查詢或移動(第一筆/上一筆/下一筆/最後一筆)功能定位到要修改的預算單。
  2. 修改 進入編輯狀態,調整單頭或明細欄位後 儲存
  3. 要刪除整列分錄,於明細列叫出該列的刪除動作;要刪整張單,使用工具列 刪除

刪空白列

明細列只有在 科目代號為空白 時才會被視為可直接移除的空列(程式以 NeedDeleteFunction 判定)。已填科目的列請用正規刪除流程。

列印

  1. 點工具列 列印,開啟預算傳票列印頁。
  2. 該頁預設以傳票號碼起訖查詢,並把目前這張單的傳票號碼自動帶入起訖兩格(見欄位連動與附加功能)。
  3. 按查詢後勾選要印的單,套用報表 預算表(N120-1)預覽 / 列印。

欄位說明

主檔(單頭)

欄位 必填 說明 / 格式 / 預設
傳票號碼 系統 唯讀。新增時為 +++,存檔時由系統依帳別與日期編號
傳票種類 下拉(傳票種類列舉),預設 0
傳票日期 分「年」與「月日」兩格輸入;預設今天。受禁修日期管控(見下方連動)
帳別 下拉(帳套列舉),預設 B畫面上設為唯讀
專案代號 Seek 專案主檔;變更後會連動帶到所有明細列(見下方連動)
輸入人員 系統 唯讀,系統帶入
轉入類別 系統 唯讀;滑鼠停留顯示各代碼說明(ToolTip)
轉入備註 系統 唯讀
是否過帳 系統 唯讀(預算單不走實際過帳)
過帳備註 可輸入
常用分錄 輸入常用分錄範本的分錄編號,搭配 匯入 鈕帶入整組明細

明細(分錄列)

欄位 必填 說明 / 格式 / 預設
序號 系統 列序
科目代號 Seek 會計科目;自動帶出科目名稱
科目名稱 系統 唯讀,由科目代號帶出
幣別 幣別 Seek;決定匯率與小數位數
原幣借方 / 原幣貸方 擇一 輸入一邊,另一邊自動歸 0,並換算本幣
匯率 原幣換本幣匯率,預設取自幣別主檔
本幣借方 / 本幣貸方 自動 原幣 × 匯率,依本位幣小數位四捨五入
功能幣匯率 / 功能幣借方 / 功能幣貸方 自動 本幣 × 功能幣匯率,依功能幣小數位
集團幣匯率 / 集團幣借方 / 集團幣貸方 自動 本幣 × 集團幣匯率,依集團幣小數位
部門代號 / 部門簡稱 視控制方式 部門 Seek;簡稱唯讀帶出
分類索引 1~4 視控制方式 各自限定索引別 1~4 的 Seek(索引別 = '1'…'4'
客廠代號 / 客廠簡稱 視控制方式 客戶廠商 Seek;簡稱唯讀帶出
員工編號 / 姓名 視控制方式 員工 Seek;姓名唯讀帶出
專案代號 / 專案簡稱 視控制方式 專案 Seek;簡稱唯讀帶出
項目編號 / 項目名稱 視控制方式 會計項目 Seek;名稱唯讀帶出
產品群組 視控制方式 品號群組代號(明細格僅擺出產品群組欄;品號/品名等由共用傳票引擎在內部維護,本畫面未直接擺出品號欄)
單別 1~3 / 單號 1~3 來源單據參照欄
摘要 自動 唯讀;由常用分錄 匯入 帶入(SetValueByGsliy),顯示在明細下方資訊區

欄位連動與附加功能

這是本表單最關鍵的一節。以下「當你⋯,系統會⋯」全部來自實際程式碼(BudgetViewModelTwork_acc_vw_budgetSourceSliyVirtual 基底)。

金額換算與借貸互斥(明細列)

  • 當你在某列輸入「原幣借方」,系統會:把該列「原幣貸方」歸 0;以 原幣借方 × 匯率 算出「本幣借方」(依本位幣小數位四捨五入);並把差額累加到該主檔的原幣借方/本幣借方合計。
  • 當你輸入「原幣貸方」,行為對稱:原幣借方歸 0、換算本幣貸方、累計到貸方合計。
  • 當你改「匯率」,系統會用新匯率同時重算本列的「本幣借方」與「本幣貸方」(依該幣別小數位數)。
  • 當「本幣借方/本幣貸方」變動,系統會接力換算:本幣 × 功能幣匯率 得功能幣金額、本幣 × 集團幣匯率 得集團幣金額;借方有值時貸方自動歸 0(反之亦然)。
  • 當你改「功能幣匯率」或「集團幣匯率」,系統會用該匯率重算對應的功能幣 / 集團幣借貸金額。
  • 上述每次變動都會即時更新畫面下方的四幣別借貸合計(原幣 / 本幣 / 功能幣 / 集團幣 各自的借方、貸方總和)。切換目前列、套用 / 移除明細篩選、或刪除列時,系統也會重新加總(RecalculateAmounts)。

為什麼一邊歸 0

一列分錄只能是借或貸其中一方。輸入借方時系統自動把同列貸方清成 0,避免一列同時掛借貸。

明細分錄列:科目、原幣借貸、匯率與本/功能/集團幣換算

畫面下方四幣別(原幣/本幣/功能幣/集團幣)借貸合計區

科目代號檢核(明細列)

  • 當你填「科目代號」並離開該格,明細格驗證(InjectAcclValidationRuleBehavior 的 CellValidating → AcclValidation.CanInputVoucher)會檢查該科目的「輸入傳票」是否為 Y。若不是(例如統制/標題科目),會跳出「此科目不可輸入傳票」訊息、取消提交並把游標留在科目格內。
  • 科目代號欄本身以 Seek 控件(TsGLAccountSeekGridViewColumn,對應會計科目表)做代號檢核並帶出科目名稱
  • 科目的「控制方式 1~a」等設定(來自會計科目表)規範哪些輔助欄(部門、客廠、員工、專案、產品群組、分類索引等)應填或不可填;對應欄位各以 Seek 控件做代號檢核並帶出簡稱。

整列控制方式檢核以傳票輸入為主

完整的「整列控制方式必填/禁填」檢核(AcclValidation.SliyRowCheckAccl)目前僅對傳票輸入的明細型別生效;預算編列的明細仍受離格時的「輸入傳票=Y」檢核把關,輔助欄則依科目控制方式填寫。

專案代號連動(主檔 → 全明細)

  • 當你變更主檔「專案代號」,系統會把該專案代號與其簡稱串接到目前所有明細列CascadeProjectToAllDetails):專案代號空白時連帶清空各列的專案代號/簡稱。
  • 新增明細列時,若主檔已有專案代號,新列會自動帶入該專案代號與簡稱;主檔無專案時新列維持空白。

傳票日期禁修管控(主檔)

  • 當你輸入或變更「傳票日期」(年或月日任一格),系統會檢查環境參數 _prgpar 2001(禁修日期)。若該日期不為空,且輸入的傳票日期早於或等於禁修日期,會在年、月日兩格標出驗證錯誤「傳票日期不可早於或等於 ⋯」,存檔前需改成合法日期。未設禁修日期時不擋。

常用分錄 匯入(主檔右側工具)

  • 當你在「常用分錄」欄輸入分錄編號並按 匯入,系統會以 GetGsliyTemplate("budget", 分錄編號)常用分錄範本(Gsliy)撈出整組分錄,逐列寫進明細:
    • 範本列數比現有明細多時,會自動新增空白明細列再填值。
    • 每列以 SetValueByGsliy 帶入科目代號、科目名稱、借貸別、幣別、各幣別借貸金額與匯率、摘要、項目/部門/客廠/員工/專案、四組分類索引、三組單別單號等欄位。
    • 匯入完成後「常用分錄」欄會清空。
  • 匯入 鈕只有在表單處於新增或修改狀態時可按(ImportCanExecute)。

品號模式的金額自動算

Source 另有「數量 / 單價 / 折扣」連動:變更任一者時系統以 數量 × 單價 + 折扣 算出金額並依借貸別寫回原幣借/貸方(GetDollarAmountAndSetDebitOrCredit)。此為共用傳票引擎能力;預算編列畫面未直接擺出這三欄,一般以金額直接輸入為主。

「常用分錄」欄與 匯入 鈕,以及匯入後帶入的明細列

列印連動

  • 當你按工具列 列印,系統建立預算傳票列印的 ViewModel,並把目前主檔的傳票號碼同時填入列印頁的「起始 / 結束傳票號碼」兩格(GetPrintViewModel),方便直接印當前這張單。
  • 列印頁查詢後,套用報表 預算表(報表編號 N120-1、A4、TW),資料以傳票號碼起訖(或輸入人員+建檔日期區間)篩選。

常見問題

「傳票號碼」一直顯示 +++,存不了正式單號?

+++ 是新增時的暫時佔位,正式單號在 儲存 時由系統依帳別與傳票日期自動編號。只要明細通過檢核並完成存檔即可取得正式號碼;存檔前看到 +++ 屬正常。

明細的「本幣 / 功能幣 / 集團幣」金額都是 0?

這些金額是由原幣金額乘匯率換算來的。請確認該列已輸入原幣借方或原幣貸方、且匯率不為 0。若只填了原幣金額卻沒帶到匯率(幣別主檔無當日匯率),本幣會算成 0,請手動補匯率。功能幣 / 集團幣再由本幣乘上單頭的功能幣匯率 / 集團幣匯率(預設皆 1)換算。

輸入「科目代號」後被擋住?

科目代號要先在會計科目表建立、且該科目設為可輸入傳票(輸入傳票=Y)。離開科目格時系統會檢查這點(AcclValidation.CanInputVoucher):若是統制/標題等不可輸入傳票的科目,會跳「此科目不可輸入傳票」並把游標留在格內。摘要欄不是由科目檢核帶出,而是在用常用分錄 匯入 時隨範本一起帶入。

改了主檔「專案代號」,但只有部分明細列跟著變?

主檔專案代號變更時系統會串接到目前未刪除的所有明細列。之後再新增的明細列也會自動帶入主檔專案。若某列被標記為刪除(增刪修=D),則不會被連動。

存檔時提示傳票日期不可早於某日期?

這是環境參數 _prgpar 2001(禁修日期)在管控:傳票日期不可早於或等於該禁修日期。請把傳票日期改到禁修日期之後再存。若是系統管理需求,請洽管理員調整禁修日期參數。

匯入 鈕灰掉按不下去?

常用分錄 匯入只有在表單處於新增修改狀態時才可用。請先按 新增修改 進入編輯狀態,再輸入分錄編號並按 匯入。另外要確認該分錄編號確實存在於常用分錄範本中,否則撈不到任何列。

損益表的預算比較欄仍是 0?

請確認預算編列的帳別與損益表查詢時選的帳別一致(本表單帳別預設並鎖定為 B),且預算單的科目、期間與損益表查詢範圍對得上。相關報表設定見損益表

相關功能