跳轉到

程式資訊

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

報表公式設定

功能簡介

「報表公式設定」用來設計自定財務報表的版型與計算公式。一張報表由一筆主檔(報表編號/報表名稱/報表性質等抬頭)搭配多筆明細列(每一列代表報表上的一行:要顯示什麼科目名稱、用什麼公式取金額、印在哪裡)組成。

設定好的報表公式,會被自定財務報表(ACC_SELFRPT)讀取後套用到當期的傳票資料,產生實際數字的報表。換句話說:

  • 在本表單裡定義的是「報表長什麼樣子、每行怎麼算」——這是一份範本,不含任何金額。
  • 真正帶入金額、產生可看的報表,是在自定財務報表執行。

適合會計主管或系統管理者在導入階段或調整報表格式時使用,屬於總帳模組的基礎設定性質。

與「報表列印」的差異

本頁工具列上的列印(報表公式)印的是這份公式定義本身(公式表),方便核對設定,不是帶金額的財務報表。帶金額的報表請到自定財務報表產生與列印。

前置需求

  • 權限:N.總帳 → N-040 報表公式設定,視操作需要的新增/修改/刪除/瀏覽/列印權限。
  • 基礎資料:公式內容會引用下列主檔,設定前請先維護妥當——
資料 影響什麼
會計科目(ACCL) 明細列的起始科目/截止科目、ACC_BS("科目代號") 公式所引用的科目
科目分類(ACCL,大/中/小分類) ACC_BSC("階,分類名")、ACC_BSCE(...)、ACC_BSAUTO() 自動展開分類時所依據的分類結構
部門主檔 明細列的起始部門/截止部門(限定該行只統計某部門區間)

小技巧

若希望系統依科目分類自動產生整套明細列,可在公式欄使用 ACC_BSAUTO() 或 ACC_BSCE(...)。實際展開動作是在自定財務報表套用公式時進行,本表單只負責把這些公式存進明細。詳見欄位連動與附加功能。

操作步驟

本表單為「主檔+明細」的標準維護畫面:上半部是報表抬頭,下半部的資料表格是報表的每一行公式。

報表公式設定主畫面

新增一張報表公式

  1. 按工具列的 新增。系統會帶入預設值(建檔日期=今天、資料別=標準、包含傳票種類=012)。
  2. 在上半部輸入:
    • 報表編號(主鍵,必填,最長 10 碼)。
    • 報表名稱(這份報表的抬頭文字,最長 80 字)。
    • 視需要設定報表性質、包含傳票種類、資料別。
  3. 在下半部資料表格逐列輸入報表的每一行(一列=報表上的一行),常用欄位:
    • 科目名稱:這一行要顯示的文字(同一張報表內不可重複,見下方注意)。
    • 公式:這一行金額的算法(例如 ACC_BS("1101"))。留空則該行不取數,可當作標題行或空白行。
    • 起始科目/截止科目、起始部門/截止部門:限定取數的科目/部門區間。
    • 列印碼/加減別/合計階數/空行數/空格數 等版面控制欄位。
  4. 按 儲存。

科目名稱不可重複

同一張報表的明細列中,科目名稱會被當作識別鍵。若有兩列(未刪除的)科目名稱相同,存檔時會擋下並提示「(序號):(科目名稱) 資料重複」(以該列的序號欄值+科目名稱標示)。需要兩行同名時,請在名稱前後加空白或調整文字使其相異。

明細資料表格:每一列的公式、起始/截止科目與列印控制欄位

修改/刪除

  1. 用工具列查出(或輸入報表編號叫出)要編輯的報表公式。
  2. 直接在主檔欄位或明細資料表格上修改。
  3. 刪除整列明細:選取該列後刪除;科目名稱留白、或計算順序為 0(空白)的列,存檔時會被刪除。
  4. 按 儲存。

列印公式定義

  1. 在已開啟的報表公式上按工具列的 列印。
  2. 系統開啟報表公式列印條件頁,報表編號的起訖已自動帶入目前這張報表的編號。
  3. 確認起訖後產生報表(報表抬頭「報表公式表」)。

列印條件頁:報表編號起訖已自動帶入目前報表編號

欄位說明

主檔(報表抬頭)

欄位 必填 說明/格式/預設
報表編號 ✔ 主鍵,最長 10 碼。一張報表的唯一識別。
報表名稱 — 報表抬頭文字,最長 80 字。
報表性質 — 最長 2 碼,標示報表類別性質(自由輸入碼)。
包含傳票種類 — 最長 10 碼,控制本報表納入計算的傳票種類。新增時預設 012。
資料別 — 下拉選單:1 標準(Standard)/2 完整(Full)。新增時預設 1(標準)。報表有部門別的行或用到現金流量公式時要選 2,差別見標準與完整差在哪裡。
建檔日期 — 新增時自動帶當日日期,不需手動輸入。

明細(報表每一行的公式)

欄位 必填 說明/格式/預設
序號 — 該明細列的序號(最長 6 碼)。
計算順序 — 數字,控制各行公式的計算先後,從 1 開始;數字小的先算,同一順序依序號先後計算。新增列預設 1;填 0 或清成空白的列,存檔時會被刪除。
科目名稱 ✔ 這一行顯示的文字,最長 80 字;同張報表內不可重複(識別鍵)。
額外名稱 — 補充說明文字,最長 80 字。
公式 — 取數公式,最長 168 字;支援 ACC_BS/ACC_BSC/ACC_BSCE/ACC_BSAUTO 等函式(見下節)。留空=不取數。
起始科目/截止科目 — 取數的科目區間(最長 20 碼),對應會計科目。
起始部門/截止部門 — 取數的部門區間(最長 10 碼)。
小數位數 — 該行金額顯示的小數位數(byte,預設 0)。
加印文字 — 額外印出的文字,最長 30 字。
加減別 — 1 碼,控制該行金額在合計時的加/減符號。
列印碼 — 最長 6 碼,控制該行的列印樣式(公式自動產生時常見 L1/L2)。
合計階數 — 1 碼,標示該行屬於哪一階合計。
百分比基準 — 1 碼,標示百分比計算的基準行。
空行數/空格數 — byte,控制該行前後的空白行數與縮排空格數。
型態 — 最長 2 碼,行型態。
計算別 — 1 碼,計算方式別。
借貸別 — 1 碼,限定取借方或貸方金額。
特殊控制 — 最長 30 字,特殊處理控制碼。
健康值 — 數值(19,4),財務健康指標數值。
健康值符號/健康值樣板 — 健康值的顯示符號(2 碼)與套用樣板(最長 30 字)。

資料表格中的品號/品名欄

資料表格版面上雖保留了「起始品號/截止品號/起始品名」等帶查欄位,但這些欄位在報表公式資料中並無對應欄位,目前不會存取任何值、亦不參與取數,操作時可忽略。實際限定取數範圍請用起始科目/截止科目與起始部門/截止部門。

欄位連動與附加功能

這一節說明「輸入某欄位或按某動作後,系統會做什麼」。

新增時的預設值

當你按 新增,系統會在主檔自動帶入:

  • 建檔日期 = 今天(yyyy/MM/dd)。
  • 資料別 = 1(標準)。
  • 包含傳票種類 = 012。

資料別下拉(標準/完整)

  • 下拉選項固定兩筆:
    • 1 → 標準(Standard)
    • 2 → 完整(Full)
  • 顯示文字會依使用者語言自動翻譯(中文顯示「標準/完整」,英文顯示「Standard/Full」),翻譯來源為語言檔,不需另行維護。

標準與完整差在哪裡

資料別決定自定財務報表執行這份報表時,從傳票撈金額要不要保留部門、客廠、項目等明細欄位。報表的公式是拿撈回來的資料計算,所以這個設定會直接影響某些公式算不算得出來。

資料別 1(標準) 資料別 2(完整)
年度開帳金額 只按「科目+年度」加總 按「科目+年度」再加上項目編號、部門、客廠、員工、專案、產品群組分開加總
當期傳票金額 只按「科目+傳票種類+年月」加總,明細欄位一律留空 按「科目+傳票種類+年月」再加上上述六個明細欄位分開加總
撈回的資料量 少,算得快 多,分得越細筆數越多
預算金額 兩者相同,一律帶完整明細欄位 (同左)
查詢條件的「部門代號」 兩者相同,都會先依部門篩選 (同左)

選 1 時明細欄位是空的,公式若要靠這些欄位篩選,結果會是 0:

  • 只寫科目範圍的公式(ACC_IS、ACC_BS、ACC_ISA、ACC_SC 等,不設部門):選 1 和選 2 算出來一樣,選 1 比較快。
  • 報表那一行有設「起始部門/截止部門」:選 1 時部門欄全是空的,比不到範圍,結果是 0。
  • 現金流量公式 ACC_CF(依項目編號篩選):選 1 時項目編號全是空的,結果是 0。

怎麼選

  • 報表只按科目加總(一般損益表、資產負債表)→ 選 1(標準),執行比較快。
  • 報表有部門別的行,或用到現金流量公式 ACC_CF → 一定要選 2(完整)。

公式欄可用的取數函式

公式欄填的是取數運算式,常用函式如下(這些公式會在自定財務報表執行時被解析並套用到傳票資料):

公式寫法 作用
ACC_BS("科目代號") 取單一會計科目的金額(借方金額-貸方金額)。
ACC_BSC("階,分類名") 取某一階分類(1=大分類、2=中分類、3=小分類)下、指定分類名稱的合計。
ACC_BSCE("階,分類名") 把指定分類自動展開成大/中/小分類及其下科目的多行明細。
ACC_BSAUTO() 依科目分類自動展開全部分類與科目,產生整套明細行。
  • 公式前可加 - 號表示該段取負值(例:-ACC_BSC("1,負債"))。
  • 使用 ACC_BSCE / ACC_BSAUTO 時,真正的「展開成多列」是在自定財務報表套用公式時進行;本表單存的是公式字串本身。展開所依據的分類結構,請先在科目分類維護好。

存檔檢核(科目名稱不可重複、計算順序為 0 的列刪除)

  • 按 儲存 時,系統會掃描所有未標記刪除的明細列,以科目名稱為鍵檢查重複。
  • 一旦發現重複,存檔中止並提示「(序號):(科目名稱) 資料重複」——前綴是該列序號欄的值(非實體列號),後接重複的科目名稱。
  • 科目名稱留白的明細列會被視為空列/刪除處理,不納入重複檢查。
  • 計算順序為 0(畫面顯示空白)的明細列,存檔時一併刪除。計算順序從 1 開始,要保留的列請務必填 1 以上的數字。

列印

  • 按工具列 列印,系統開啟報表公式列印,並把報表編號的起訖都預先帶成「目前這張報表的編號」,等於預設只印當前這一張。
  • 報表來源固定為公式表報表(報表編號 N040-1、抬頭「報表公式表」、A4、TW 區)。

常見問題

存檔時跳出「資料重複」,但我看起來每行都不一樣?

重複檢查比對的是科目名稱這一欄,不是公式或序號(提示文字前綴的數字是該列的序號欄值,僅供定位)。請檢查是否有兩行科目名稱完全相同(包含看不見的尾端空白)。需要兩行同名時,在文字前後加空白或微調文字使其相異即可。

存檔後有幾行明細不見了?

存檔時會刪除科目名稱空白或計算順序為 0(空白)的明細列。請確認要保留的每一行都有填科目名稱,且計算順序是 1 以上的數字。

我在這裡設好公式,為什麼看不到金額?

本表單只負責定義報表版型與公式,不含任何金額。要看帶數字的報表,請到自定財務報表選擇這份報表編號並執行;那裡才會把公式套到當期傳票算出金額。

用 ACC_BSAUTO() 後,這裡的明細卻沒有自動長出很多行?

ACC_BSAUTO() / ACC_BSCE(...) 的展開是在自定財務報表套用公式的當下進行,本表單儲存的是公式字串本身。請確認科目分類的大/中/小分類已維護完整,再到自定財務報表執行展開。

公式裡的 ACC_BS("xxxx") 取不到數?

請確認括號內的科目代號確實存在於會計科目主檔,且該科目在當期有傳票異動。科目區間(起始科目/截止科目)與部門區間若設得太窄,也可能把資料過濾掉。

相關功能