跳轉到

程式資訊

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

項目編號表(會計項目主檔)

功能簡介

「項目編號表」維護總帳系統的項目(Job/專案維度)主檔。在 TsERP 中,傳票、預算、應收應付等單據除了記到會計科目之外,還可以再掛一個「項目編號」當作分析維度(可視為專案/成本中心/工程案別)。本表單就是用來建立、修改與管理這份項目清單,並設定每個項目的項目分類、預設借貸別、對應科目代號等屬性。

會用到這支表單的多半是會計/成本人員:先把公司要追蹤的項目(例如某個專案、某條產線、某個費用歸屬)在這裡建好,之後傳票輸入預算編列等單據在輸入項目欄位時,就能用 項目編號 查到對應的 項目名稱 並帶出設定。

項目 vs 科目

本表單維護的是「項目」(ACCITEM),不是「會計科目主檔」(會計科目表 ACCL)。一筆傳票分錄通常同時掛「科目代號」與「項目編號」兩個維度——科目決定借貸科目,項目決定這筆金額歸屬到哪個專案/案別。

前置需求

  • 權限:N.總帳 → N-060 項目編號表 的對應權限(新增/修改/刪除/瀏覽/列印)。
  • 基礎資料:建立項目前,建議先確認下列資料已維護,才能讓欄位帶值完整——
資料 影響什麼
項目分類代碼表(C227) 項目分類 下拉選單的可選清單,來源是環境設定的 C227 組合表
會計科目表 ACCL 科目代號 欄位要填的對應總帳科目;填入不存在的科目雖不會擋存,但傳票端對帳會對不上

操作步驟

本表單是標準的主檔維護畫面(單筆建檔),透過上方工具列的 新增修改刪除查詢列印 操作。

項目編號表主畫面

新增一筆項目

  1. 按工具列 新增,畫面清空進入新增模式,焦點自動落在 項目編號 欄位(系統會自動把 建檔日期 設為今天)。
  2. 輸入 項目編號(必填、最長 10 碼,主鍵,不可重複)。
  3. 選擇 項目分類(必填,從 C227 下拉清單挑選)。
  4. 輸入 項目名稱(必填,最長 80 字)。
  5. 視需要設定 是否結算 下拉)、所屬分類碼借貸別(D 或 C)、編碼科目代號
  6. 按工具列 存檔

必填欄位請自行確認

VFP 原版在存檔時會檢核 項目編號項目分類項目名稱 三個必填欄位並擋下空值,但目前新版 C# 的 AccitemViewModel 尚未移植這段存檔檢核(VM 只實作 IAddIPrintSource)。請在存檔前自行確認這三欄都已正確填寫,避免存進空白主檔。

新增模式:焦點停在項目編號,項目分類 C227 下拉展開

修改 / 刪除

  1. 查詢 或工具列上一筆/下一筆/到底/到頭按鈕,把要處理的項目顯示在畫面上。
  2. 修改 進入編輯,調整欄位後 存檔項目編號為主鍵,修改時不建議更動(會影響已引用此項目的單據)。
  3. 刪除 可刪除目前這筆項目。

刪除前先確認沒有單據引用

若已有傳票、預算等單據引用了某個項目編號,刪除後那些單據的項目欄位會找不到對應名稱。刪除前請先確認此項目未被使用。

列印項目編號表

按工具列 列印,套用報表 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)、輸入時間/人員/地點、審核人員/審核日期/已審核、工作流程等系統欄位,由存檔流程自動維護,畫面上不直接編輯。

已建好的項目:含科目代號、借貸別等欄位的填寫範例

欄位連動與附加功能

這一節說明「輸入某欄位/按某動作後系統會做什麼」。內容對照新版 AccitemViewModelAccitem.xaml 與 VFP 原始 accitem class。

新版尚未移植 VFP 的存檔/欄位驗證

VFP 原版 accitemallowsave(必填檢核)與 借貸別.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_C227field1 建好的 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 實作 IPrintSourceGetReports 回傳一份報表定義:報表編號 N060-1、抬頭「項目編號表」、A4、台灣(TW)。按工具列 列印 即套用此報表輸出。

被哪些單據引用(下游連動)

維護好的項目編號會被下列單據當作「項目/專案維度」引用(透過 TsAccJobSeekColumnTsAccJobSeekGridViewColumn 以項目編號 seek、帶出項目名稱):

常見問題

項目編號、項目分類、項目名稱應該填什麼?必填嗎?

這三欄在 VFP 原版是存檔必填(會擋下空值)。新版 C# 目前尚未移植這段存檔檢核,理論上即使留空也存得進去,但建議當作必填處理:項目編號 是主鍵(不可為空、不可等於 +++#、不可重複),項目分類 從 C227 下拉挑選,項目名稱 是下游單據要帶出的描述。三欄都填正確,下游傳票/預算才不會出現空白項目。

項目分類下拉是空的,沒有任何選項?

項目分類的選單來自環境設定的 C227 組合表。若清單為空,表示 C227 尚未維護分類代碼;請先在系統的組合代碼設定維護 C227 後,再回來建立項目。

借貸別應該填什麼?

借貸別 設計上只用 D(借)或 C(貸),也可以留空。VFP 原版會在存檔時擋下非 D/C 的值,但新版 C# 尚未移植此驗證,輸入時不會被擋下,請自行確認填入 D、C 或留空。

在傳票上查項目編號,帶不出項目名稱?

傳票端是用 項目編號 去本表查 項目名稱。若帶不出名稱,請確認該項目編號確實已在本表建立,且 項目名稱 欄位有填值。

科目代號填了不存在的科目,會擋存檔嗎?

目前新版的 科目代號 是純文字欄位,不會即時驗證該科目是否存在於 會計科目表。請自行確認填入的科目代號正確,否則下游傳票對帳會對不上。

相關功能