程式資訊
- 程式 ID:
Accitem - 所屬子系統:N.總帳管理
- 狀態:stable
項目編號表(會計項目主檔)¶
功能簡介¶
「項目編號表」維護總帳系統的項目(Job/專案維度)主檔。在 TsERP 中,傳票、預算、應收應付等單據除了記到會計科目之外,還可以再掛一個「項目編號」當作分析維度(可視為專案/成本中心/工程案別)。本表單就是用來建立、修改與管理這份項目清單,並設定每個項目的項目分類、預設借貸別、對應科目代號等屬性。
會用到這支表單的多半是會計/成本人員:先把公司要追蹤的項目(例如某個專案、某條產線、某個費用歸屬)在這裡建好,之後傳票輸入、預算編列等單據在輸入項目欄位時,就能用 項目編號 查到對應的 項目名稱 並帶出設定。
項目 vs 科目
本表單維護的是「項目」(ACCITEM),不是「會計科目主檔」(會計科目表 ACCL)。一筆傳票分錄通常同時掛「科目代號」與「項目編號」兩個維度——科目決定借貸科目,項目決定這筆金額歸屬到哪個專案/案別。
前置需求¶
- 權限:N.總帳 →
N-060 項目編號表的對應權限(新增/修改/刪除/瀏覽/列印)。 - 基礎資料:建立項目前,建議先確認下列資料已維護,才能讓欄位帶值完整——
| 資料 | 影響什麼 |
|---|---|
| 項目分類代碼表(C227) | 項目分類 下拉選單的可選清單,來源是環境設定的 C227 組合表 |
| 會計科目表 ACCL | 科目代號 欄位要填的對應總帳科目;填入不存在的科目雖不會擋存,但傳票端對帳會對不上 |
操作步驟¶
本表單是標準的主檔維護畫面(單筆建檔),透過上方工具列的 新增/修改/刪除/查詢/列印 操作。

新增一筆項目¶
- 按工具列
新增,畫面清空進入新增模式,焦點自動落在 項目編號 欄位(系統會自動把 建檔日期 設為今天)。 - 輸入 項目編號(必填、最長 10 碼,主鍵,不可重複)。
- 選擇 項目分類(必填,從 C227 下拉清單挑選)。
- 輸入 項目名稱(必填,最長 80 字)。
- 視需要設定 是否結算(
是/否下拉)、所屬分類碼、借貸別(D 或 C)、編碼、科目代號。 - 按工具列
存檔。
必填欄位請自行確認
VFP 原版在存檔時會檢核 項目編號、項目分類、項目名稱 三個必填欄位並擋下空值,但目前新版 C# 的 AccitemViewModel 尚未移植這段存檔檢核(VM 只實作 IAdd/IPrintSource)。請在存檔前自行確認這三欄都已正確填寫,避免存進空白主檔。

修改 / 刪除¶
- 用
查詢或工具列上一筆/下一筆/到底/到頭按鈕,把要處理的項目顯示在畫面上。 - 按
修改進入編輯,調整欄位後存檔。項目編號為主鍵,修改時不建議更動(會影響已引用此項目的單據)。 - 按
刪除可刪除目前這筆項目。
刪除前先確認沒有單據引用
若已有傳票、預算等單據引用了某個項目編號,刪除後那些單據的項目欄位會找不到對應名稱。刪除前請先確認此項目未被使用。
列印項目編號表¶
按工具列 列印,套用報表 N060-1 項目編號表(A4、台灣區域),輸出目前維護的項目清單。
欄位說明¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 項目編號 | ✔* | 主鍵,最長 10 碼,不可重複。不應為空、+++ 或 #(VFP 原版有檢核,新版尚未移植) |
| 項目分類 | ✔* | 從 C227 下拉清單挑選;對應 TsComboBoxBySql TableAlias="C227" |
| 項目名稱 | ✔* | 最長 80 字,項目的中文描述 |
| 是否結算 | — | 是/否 下拉(YesNoComboBox),標示此項目是否參與結算 |
| 所屬分類碼 | — | 最長 10 碼,項目所屬的上層分類代碼 |
| 借貸別 | — | 單一字元,建議只填 D(借)或 C(貸);空白允許(VFP 原版有 D/C 檢核,新版尚未移植) |
| 編碼 | — | 最長 20 碼,項目自訂編碼 |
| 科目代號 | — | 最長 20 碼,此項目對應的總帳會計科目(參照 ACCL 會計科目表) |
| 建檔日期 | 自動 | 新增時自動帶入今天日期(AfterAddNew),不需手動輸入 |
✔*:VFP 原版視為必填並在存檔時擋空值,但新版 C# 尚未移植此存檔檢核;建議仍當作必填填寫,以免下游單據出現空白項目。
預設值來源
新增時 ViewModel 的 AfterAddNew 會把 建檔日期 設成今天(DateTimeWrapper.TodayYYYYMMDD)。底層 Model 另含 增刪修(預設 A)、輸入時間/人員/地點、審核人員/審核日期/已審核、工作流程等系統欄位,由存檔流程自動維護,畫面上不直接編輯。

欄位連動與附加功能¶
這一節說明「輸入某欄位/按某動作後系統會做什麼」。內容對照新版 AccitemViewModel、Accitem.xaml 與 VFP 原始 accitem class。
新版尚未移植 VFP 的存檔/欄位驗證
VFP 原版 accitem 有 allowsave(必填檢核)與 借貸別.Valid(D/C 檢核)兩段驗證。目前新版 C# 並未移植這些驗證——AccitemViewModel 只實作了 IAdd(新增帶建檔日期)與 IPrintSource(列印),沒有對應的存檔擋值邏輯。下文凡標示「VFP 原版」者,皆為舊版行為、僅供對照,不代表新版會擋下存檔。
新增時自動帶建檔日期¶
當你按 新增,ViewModel 的 AfterAddNew 會檢查目前第一筆資料,並把 建檔日期 自動填成今天(格式 YYYYMMDD)。你不需要、也不應手動改這個欄位。
項目編號(主鍵、不可重複)¶
- 項目編號 是這份主檔的主鍵(XAML 為
TsPrimaryKeyTextBox),新增模式下焦點預設停在這個欄位(FocusExtension.IsFocused綁 ViewModel 的IsFocused)。 - VFP 原版在存檔時會檢核:項目編號不可為空、不可等於
+++、不可等於#,否則跳「請輸入正確之項目編號」並擋下存檔(allowsave)。新版 C# 尚未移植這段檢核,請自行確認填入正確值。 - VFP 原版設定
is_noduplicate="accitem",代表項目編號在此主檔內不可重複;新版以主鍵約束防止重複。
項目分類(C227 下拉)¶
- 畫面上的 項目分類 下拉用
TsComboBoxBySql TableAlias="C227",由控件自行讀取環境設定的 C227 組合表 帶出可選值。(ViewModel 另有從Cmb_C227的field1建好的JobCategorySource清單,但目前未綁定到畫面控件。) - 項目分類的標籤是超連結:滑鼠雙擊「項目分類」四個字,會跳轉到摘要檔(SMEMS)並定位到
C227類別,可直接維護下拉選單的可選項目,維護完回本表單重新開窗即可看到新選項。 - VFP 原版在存檔時會檢核 項目分類不可為空,否則跳「請輸入正確之項目分類」並擋下存檔;新版 C# 尚未移植此檢核。
項目名稱(會被其他單據引用)¶
- VFP 原版在存檔時會檢核 項目名稱不可為空,否則跳「請輸入正確之項目名稱」;新版 C# 尚未移植此檢核,建議自行確認已填寫。
- 這個名稱是其他單據查項目時要帶出的描述:傳票等單據用
TsAccJobSeekColumn(seek 條件=項目編號、帶出欄=項目名稱)查到本表的項目後,會把 項目名稱 顯示在該單據上。換言之,這裡的項目名稱維護得正確,下游單據才看得到正確說明。
借貸別(只允許 D 或 C)¶
- 借貸別 在 VFP 原版有
借貸別.Valid驗證:若有輸入只接受D(借)或C(貸),輸入其他字元跳「請輸入 D 或 C」並擋下(且只在新增/修改/複製模式檢核)。新版 C# 此欄為單純TsTextBox,尚未移植此驗證,輸入時不會即時擋下非 D/C 的值,請自行確認填入 D 或 C。 - 此欄允許留空(不強制每個項目都指定預設借貸別)。
是否結算¶
- 以
YesNoComboBox呈現(是/否),標示該項目是否納入結算流程。屬性別與用途依貴公司會計流程設定,本欄不觸發其他連動。
科目代號(對應總帳科目)¶
-
科目代號 用來把此項目綁到一個總帳會計科目。
與 VFP 的差異
VFP 原版
科目代號用的是sql_acclno科目查詢控件(可即時 seek 會計科目表);目前新版 C# 為單純文字輸入框(TsTextBox),輸入時不會即時驗證科目是否存在,請自行確認填入的科目代號在 ACCL 中已建立。
列印(GetReports / IPrintSource)¶
- 本 ViewModel 實作
IPrintSource,GetReports回傳一份報表定義:報表編號N060-1、抬頭「項目編號表」、A4、台灣(TW)。按工具列列印即套用此報表輸出。
被哪些單據引用(下游連動)¶
維護好的項目編號會被下列單據當作「項目/專案維度」引用(透過 TsAccJobSeekColumn/TsAccJobSeekGridViewColumn 以項目編號 seek、帶出項目名稱):
- 傳票輸入 SLIY、總帳合併傳票 GSLIY、年度傳票 SLIYYEAR
- 預算編列 BUDGET
- 會計日記帳 SLIYBROWD
- 應收單(I-ARAP 模組)、現金 / 結帳相關單據(O-Check 模組)
常見問題¶
項目編號、項目分類、項目名稱應該填什麼?必填嗎?
這三欄在 VFP 原版是存檔必填(會擋下空值)。新版 C# 目前尚未移植這段存檔檢核,理論上即使留空也存得進去,但建議當作必填處理:項目編號 是主鍵(不可為空、不可等於 +++ 或 #、不可重複),項目分類 從 C227 下拉挑選,項目名稱 是下游單據要帶出的描述。三欄都填正確,下游傳票/預算才不會出現空白項目。
項目分類下拉是空的,沒有任何選項?
項目分類的選單來自環境設定的 C227 組合表。若清單為空,表示 C227 尚未維護分類代碼;請先在系統的組合代碼設定維護 C227 後,再回來建立項目。
借貸別應該填什麼?
借貸別 設計上只用 D(借)或 C(貸),也可以留空。VFP 原版會在存檔時擋下非 D/C 的值,但新版 C# 尚未移植此驗證,輸入時不會被擋下,請自行確認填入 D、C 或留空。
在傳票上查項目編號,帶不出項目名稱?
傳票端是用 項目編號 去本表查 項目名稱。若帶不出名稱,請確認該項目編號確實已在本表建立,且 項目名稱 欄位有填值。
科目代號填了不存在的科目,會擋存檔嗎?
目前新版的 科目代號 是純文字欄位,不會即時驗證該科目是否存在於 會計科目表。請自行確認填入的科目代號正確,否則下游傳票對帳會對不上。