程式資訊
- 程式 ID:
Accl - 所屬子系統:N.總帳管理
- 狀態:stable
會計科目設定¶
功能簡介¶
「會計科目設定」維護整套會計科目主檔(Chart of Accounts):每一筆科目記錄它的科目代號、科目名稱、借貸別、大/中/小分類,以及一組「傳票輸入控制」開關,用來規範這個科目在傳票輸入時哪些欄位必填、是否允許輸入。它是總帳模組所有功能的基礎主檔——傳票、立帳、明細帳、試算表、損益表都從這裡讀取科目資訊。
會計人員在導入系統或調整科目架構時使用。設定一次之後,輸入傳票時系統會依據各科目掛的控制開關,自動要求或擋下對應的明細欄位。
與「會計科目分類參數」的分工
本表單維護的是單一科目的內容;科目要歸到哪個大/中/小分類,其分類項目本身(C21541/C21542/C21543)由 會計科目分類參數 與分類代碼維護。在本頁的大/中/小分類欄位輸入時,是從那些已建好的分類清單裡挑選。
前置需求¶
- 權限:N.總帳 →
N-020 會計科目設定的瀏覽權限;列印需列印權限。 - 必須先維護的主檔/參數:
| 資料 | 影響什麼 |
|---|---|
| 大/中/小分類項目(C21541/C21542/C21543) | 大分類、中分類、小分類三個下拉清單的可選項;對應英文分類隨之帶出 |
| 會計科目分類參數 | 科目歸類規則、分類索引的定義 |
| 項目分類代碼(C227) | 「傳票輸入控制」中項目分類下拉清單的內容 |
| 客戶/廠商主檔、部門、員工、專案、產品群組主檔 | 這些是「傳票輸入控制」各開關控制的對象;開關設為必填後,輸入傳票時才會要求填入對應主檔代號 |
操作步驟¶
本表單為標準的主檔單筆維護畫面,透過上方工具列的 新增/修改/刪除/列印 操作,並用 第一筆/上一筆/下一筆/最後一筆 或 尋找 在科目之間移動。

新增一筆科目¶
- 按工具列
新增。系統自動把建檔日期帶為今天,並套用預設值(借貸別=D、科目性質=F、輸入傳票=Y、是否立沖=N)。 - 在 科目代號 輸入此科目的代號(必填、最長 20 字)。輸入後系統會依代號自動帶出對應的大/中/小分類(見欄位連動與附加功能)。
- 填入 科目名稱(必填)與選填的 英文名稱。
- 選擇 借貸別(
D借/C貸)與 輸入傳票(Y/N)。 - 視需要設定 常用摘要(輸入傳票時帶出的預設摘要文字)。
- 確認或挑選 大分類/中分類/小分類。
- 在下方 傳票輸入控制 區設定各欄位的必填/可輸入開關(見欄位說明)。
- 按
儲存。系統會檢核大分類、中分類不可空白等規則(見常見問題)。
修改與刪除¶
- 用工具列移動到要處理的科目,或用
尋找依科目代號查找。 - 按
修改進入編輯狀態,調整欄位後儲存。 - 按
刪除可刪除目前科目。
注意
科目主檔被傳票、明細帳等大量功能引用。刪改已在使用中的科目前,請先確認沒有未結轉的傳票仍掛在此科目下,避免帳務參照失效。
列印科目表¶
- 按工具列
列印,選擇報表會計科目表(報表編號 N020-1,A4)。 - 列印條件預設提供 全部科目代號(Print All Account Code) 一種,可在條件面板調整科目代號起訖範圍後輸出。

重新產生大、中、小分類(延伸功能)¶
- 按延伸功能鈕,系統跳出「重新產生大、中、小分類」確認框。
- 按
Yes後,系統執行TWORK_UPT_ACCL重算所有科目的分類掛載,完成後自動重新整理畫面。詳見欄位連動與附加功能。
欄位說明¶
基本資料¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 科目代號 | ✔ | 最長 20 字;主鍵;不可空白或為 +++ |
| 科目名稱 | ✔ | 最長 120 字 |
| 英文名稱 | — | 最長 120 字 |
| 借貸別 | ✔ | D=借、C=貸;新增預設 D |
| 輸入傳票 | ✔ | Y/N;新增預設 Y;N 表示此科目不可用於傳票輸入 |
| 常用摘要 | — | 輸入傳票時帶出的預設摘要 |
| 科目性質 | — | Y=固定(Fixed)/N=變動(Variance);Source 新增預設 F。VFP 原版有此欄位,目前 C# 版畫面未提供輸入控制項(見下方說明) |
| 是否立沖 | — | Y/N;Source 新增預設 N。目前 C# 版畫面未提供輸入控制項(見下方說明) |
| 大分類 | ✔ | 從 C21541 清單挑選;存檔時不可空白 |
| 中分類 | ✔ | 從 C21542 清單挑選;存檔時不可空白 |
| 小分類 | — | 從 C21543 清單挑選 |
| 英文大/中/小分類 | — | 隨對應分類自動帶出,亦可手動覆寫 |
| 建檔日期 | — | 新增時自動帶今天 |
傳票輸入控制¶
這一區的每個開關決定該科目用於傳票時,對應的明細欄位是「必填/可輸入/不可輸入」。除特別標註者外,皆為 Y/N(Y=必須輸入、N 及空白=不檢查)。

| 編號 | 欄位(控制對象) | 屬性 | 說明 |
|---|---|---|---|
| 1 | 索引分類1(控制方式1) | Y/N | 分類索引 1 是否必填 |
| 2 | 索引分類2(控制方式2) | Y/N | 分類索引 2 是否必填 |
| 3 | 索引分類3(控制方式3) | Y/N | 分類索引 3 是否必填 |
| 4 | 索引分類4(控制方式b) | Y/N | 分類索引 4 是否必填 |
| 5 | 項目編號(控制方式4) | Y/N | 設 Y 時必須一併指定下方 項目分類 |
| — | 項目分類 | C227 | 搭配「項目編號」使用,從項目分類代碼清單挑選 |
| 6 | 部門代號(控制方式5) | Y/N | 傳票是否必填部門 |
| 7 | 客戶廠商部門代號(控制方式6) | C/S/B/N | C=輸入客戶、S=輸入廠商、B=兩者皆可、N 及空白=不可輸入 |
| 8 | 員工編號(控制方式7) | Y/N | 傳票是否必填員工 |
| 9 | 專案代號(控制方式8) | Y/N | 傳票是否必填專案 |
| 10 | 產品群組代號(控制方式9) | Y/N | 傳票是否必填產品群組 |
| — | A.品號(控制方式a) | Y/N | 傳票是否必填品號 |
| — | 按品號抓群組(品號抓群組) | Y/N | 設 Y 時,輸入品號後自動帶出其產品群組代號 |
| — | 單號2(控制方式c) | Y/N | 第二單號欄位是否必填 |
目前畫面未提供輸入控制項的欄位
下列欄位在 Source(資料模型)中存在並帶有預設值,但目前 C# 版 Accl.xaml 畫面尚未放上對應的輸入控制項,因此實務上維持預設值、無法於本表單直接編輯:
- 科目性質(VFP 原版有此欄位,預設
F) - 是否立沖(預設
N) - 英文簡稱(Source 欄位,畫面未呈現)
- 關帳日期(VFP 原版用來鎖定某科目至某日為止不可再異動)
這些屬規劃中/資料層保留欄位,待後續補上畫面控制項後才會於本表單操作。
欄位連動與附加功能¶
下列為輸入欄位或按下按鈕後,系統實際會做的動作(皆對應程式碼真實行為):
- 輸入「科目代號」後自動帶出三層分類:當你修改 科目代號,系統會立即依代號去查 GL 科目對應的分類,分別把 大分類/中分類/小分類 與對應的 英文大/中/小分類 一次帶入畫面(
Context.DescriptionHelper.GetTier1/2/3ByGLAccountCode)。分類名稱取冒號(:)後的描述,英文則取分類的英文敘述。 - 手動改「大/中/小分類」會重帶英文名稱:當你直接挑選或修改 大分類,系統會重新查該層分類、把對應的 英文大分類 帶入;中分類、小分類同理連動各自的英文欄位。
- 按
新增自動帶建檔日期:新增一筆後,系統把 建檔日期 設為今天(AfterAddNew)。 - 新增的內建預設值:新建一筆 Source 時即帶入 借貸別=
D、科目性質=F、輸入傳票=Y、是否立沖=N(建構式預設),你可再覆寫。 - 延伸功能:重新產生大、中、小分類:按下後系統先以「重新產生大、中、小分類」訊息框向你確認;選
Yes即呼叫TWORK_UPT_ACCL預存程序重算所有科目的分類掛載,再自動Renew重新整理目前畫面(ExtendedFunction1)。當你大量調整分類項目後,可用此功能一次把全部科目的分類重新對齊。 - 存檔檢核(AllowSave):按
儲存時系統會擋下以下情況——- 大分類 空白 → 提示輸入大分類。
- 中分類 空白 → 提示輸入中分類。
(此為 C# 版
AcclSave的檢核;VFP 原版另檢核科目代號、借貸別不可空白、項目編號=Y時項目分類必填、品號=N但「按品號抓群組」=Y的矛盾組合等。)
- 存檔後重整暫存表:存檔成功後,系統會重新載入
Sk_accl暫存表並清掉 Accl 快取(AfterEndEdit),讓其他功能立刻讀到最新的科目主檔。 - 大/中/小分類標籤可導航:畫面上大分類、中分類、小分類三個欄位的標籤是導航標籤,會連到分類維護程式(
NavigateProgramClass="SMEMS",KeyFieldValue 分別為 C21541/C21542/C21543),方便直接跳去維護分類項目。 - 借貸別影響金額符號:Source 提供
GetDebitsCreditsSymbol()——借(D)回傳空字串、貸(C)回傳-,供報表/彙總時依借貸別決定金額正負呈現。 - 列印來源(IPrintSource / GetReports):本表單實作列印來源介面,報表清單僅一筆「會計科目表」(N020-1,A4,sqlite
rpt_n020_accl_report1),列印條件Print1預設帶全部科目代號範圍。
常見問題¶
按儲存時跳出要我輸入大分類/中分類,可是我覺得不需要?
C# 版的存檔檢核(AcclSave.AllowSave)規定 大分類 與 中分類 不可空白。請先在科目代號帶出分類後確認這兩欄有值,或手動從清單挑選;小分類則非必填。
輸入科目代號後,大/中/小分類沒有自動帶出?
自動帶分類靠 DescriptionHelper.GetTier1/2/3ByGLAccountCode 依科目代號比對。若帶不出來,通常是:分類項目(C21541/C21542/C21543)尚未在分類清單建好、或科目代號不符合分類對照規則。請先到分類維護(大/中/小分類標籤可直接跳轉)補齊項目,再用延伸功能 重新產生大、中、小分類 一次對齊。
「傳票輸入控制」設了 Y,但輸入傳票時沒被要求填?
傳票輸入控制的開關是由傳票輸入在輸入該科目時讀取套用。請確認:傳票用的科目正是這裡設定的科目、且該科目的對應控制方式確實存成 Y。其中「客戶廠商部門代號」要用 C/S/B 而非 Y/N。
「項目編號」設成 Y,要記得補哪一欄?
當 項目編號(控制方式4) 設為 Y,VFP 原版會要求一併指定 項目分類(C227 清單)才放行(C# 版目前未強制檢核此項)。為避免傳票輸入時缺漏,建議設 Y 時就先把項目分類選好。
「按品號抓群組」設 Y 但品號不允許輸入會怎樣?
若 A.品號(控制方式a) 設為 N(不可輸入品號),卻又把 按品號抓群組 設為 Y,邏輯互相矛盾——沒有品號就無法自動抓群組。VFP 原版會在存檔時擋下此組合(C# 版目前未強制檢核)。建議把品號改為可輸入,或把「按品號抓群組」改回 N。
改了分類項目後,舊科目的分類沒跟著變?
單筆科目的分類是存檔當下帶入的快照。大量調整分類項目後,請用延伸功能 重新產生大、中、小分類(呼叫 TWORK_UPT_ACCL)把所有科目的分類重新對齊一次。