跳轉到

程式資訊

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

報表公式設定

功能簡介

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

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

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

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

與「報表列印」的差異

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

前置需求

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

小技巧

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

操作步驟

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

報表公式設定主畫面

新增一張報表公式

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

科目名稱不可重複

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

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

修改/刪除

  1. 用工具列查出(或輸入報表編號叫出)要編輯的報表公式。
  2. 直接在主檔欄位或明細格線上修改。
  3. 刪除整列明細:選取該列後刪除;科目名稱留白的列在存檔時會被視為刪除(系統判定為空列)。
  4. 儲存

列印公式定義

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

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

欄位說明

主檔(報表抬頭)

欄位 必填 說明/格式/預設
報表編號 主鍵,最長 10 碼。一張報表的唯一識別。
報表名稱 報表抬頭文字,最長 80 字。
報表性質 最長 2 碼,標示報表類別性質(自由輸入碼)。
包含傳票種類 最長 10 碼,控制本報表納入計算的傳票種類。
資料別 下拉選單:1 標準(Standard)/2 完整(Full)。新增時系統帶入內部預設值 012(見欄位連動與附加功能)。
建檔日期 新增時自動帶當日日期,不需手動輸入。

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

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

格線中的品號/品名欄

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

欄位連動與附加功能

這一節說明「輸入某欄位或按某動作後,系統會做什麼」,全部依程式碼實際行為整理。

新增時的預設值(AfterAddNew)

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

  • 建檔日期 = 今天(yyyy/MM/dd)。
  • 資料別 = 內部值 012

資料別預設值的說明

資料別下拉選單的可選代碼為 1(標準)與 2(完整);新增時程式帶入的內部預設 012 並不等於這兩個顯示選項。若新增後下拉看起來未對應到「標準/完整」,請直接從下拉重新選取所需的資料別再存檔。

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

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

公式欄可用的取數函式

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

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

存檔檢核(科目名稱不可重複)

  • 儲存 時,系統會掃描所有未標記刪除的明細列,以科目名稱為鍵檢查重複。
  • 一旦發現重複,存檔中止並提示「(序號):(科目名稱) 資料重複」——前綴是該列序號欄的值(非實體列號),後接重複的科目名稱。
  • 科目名稱留白的明細列會被視為空列/刪除處理(NeedDeleteFunction 以科目名稱是否空白判定),不納入重複檢查。

列印(GetPrintViewModel / GetReports)

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

常見問題

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

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

新增後「資料別」下拉沒有顯示「標準」或「完整」?

新增時程式帶入的內部預設值(012)與下拉可選的 1(標準)/2(完整)不一致,因此下拉可能顯示為空。直接從下拉重新選取所需資料別再存檔即可。

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

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

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

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

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

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

相關功能