程式資訊
- 程式 ID:
GINVENT - 所屬子系統:C.總務管理
- 狀態:stable
雜項庫存品號主檔(SKU 主檔)¶
功能簡介¶
「雜項庫存品號主檔」維護雜項庫存(General Affairs / 一般庶務性庫存)的品號 SKU 基本資料——品號、品名、品別、單位、群組、庫存管制、圖檔等,並提供多個查詢頁籤,讓你在同一張表單上一邊看品號設定、一邊查該品號的統計、客戶出貨、廠商報價、採購、進貨歷史。
它對應 VFP 舊版的 ginvent(程式別名「G庫存主檔」),由總務人員或物料管理人員維護。建立好品號後,雜項庫存的暫收、入庫、調撥、盤點等單據才能引用這支品號。
與 D.BOM 品號主檔的關係
本頁是 General Affairs 模組的品號主檔(雜項庫存)。它與 D.BOM 模組的品號主檔共用同一批查詢子頁籤(出貨/報價/採購/進貨),但本頁的這些子頁籤是以 IsGeneralAffair() 模式建立,查的是雜項庫存相關資料。兩支是不同 ProgramClass,請勿混用。
前置需求¶
- 權限:C.總務 →
C-010 雜項庫存品號主檔。瀏覽/新增/修改/刪除依使用者權限而定;報價、採購、進貨等含金額的查詢頁籤另受檢視價格權限控制(見下)。 - 基礎資料:下列主檔/參數會影響本表單欄位的下拉內容與自動帶值——
| 資料 | 影響什麼 |
|---|---|
| 群組主檔(SK_GRPM1) | 群組代號搜尋、群組說明自動帶入、Setting 鈕展開的 Self-Defined 分類清單 |
| 品別代碼(C204)、來源別代碼(C205) | 品別/來源別下拉選項 |
| 單位代碼(C104) | 單位下拉選項 |
| 科目代號(會計科目) | 科目代號搜尋帶入 |
| 業務員主檔 | 業務員編號搜尋(隱藏區塊) |
檢視價格權限(GetViewPricePermission) |
是否顯示含金額的報價/採購/進貨頁籤 |
操作步驟¶
本表單是標準的主檔維護模式(新增/修改/刪除/瀏覽),左上工具列提供移動筆數、新增、修改、刪除、列印等按鈕。
新增品號¶
- 按工具列
新增。系統自動帶入兩個預設值:庫存管制 =Y、新增日期 = 當天(見欄位連動與附加功能)。 - 在 Basic 頁切到「品號」欄,輸入品號(主鍵,必填,最長 30 字)。
- 依序填寫品名(必填)、品別(必填,下拉)、單位(必填,下拉)。這四欄是存檔必填欄。
- 視需要填寫英文描述/來源別/群組代號/品階/abc 分類/模具型別/模具尺寸/庫存管制/科目代號/規格/中文描述/備註等欄位。
- 設定 Self-Defined(自訂分類):按
Setting鈕,系統依群組代號展開分類清單,逐列在分類內容選填;也可按產生品名鈕由群組與分類內容自動組出品名(見下節)。 - (選填)在圖檔名稱欄選擇品號圖檔,下方會即時預覽圖片。
- 按工具列
存檔。存檔前系統會檢核必填欄、補停用日期、清掉空白的分類列,並把圖檔複製進系統目錄。
修改/刪除品號¶
- 用工具列的移動鈕或
快速查詢找到品號。 - 按
修改,調整欄位後存檔;或按刪除移除整筆品號。 - 進入修改狀態時,系統會依群組代號重新載入各分類列可選的分類內容清單。
查詢該品號的歷史¶
切到下列頁籤即可查目前品號的相關歷史,切換頁籤時會自動帶入目前品號為查詢條件並執行查詢:
- Statistics:品號統計(庫存/數量等彙總指標),可點列內按鈕導覽或顯示明細。
- Shipping:客戶出貨查詢。
- Vendor Quote:廠商報價查詢(含金額,受檢視價格權限控制)。
- Purchasing:採購查詢。
- Receiving:進貨查詢。
小技巧
主鍵(品號)定位列只在 Basic 頁顯示;切到任一查詢頁籤時會自動隱藏(由 PkidVisibility 控制)。各查詢頁籤的格線支援匯出 Excel(格線右鍵)。
欄位說明¶
Basic 頁主要欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 品號 | ✔ | 主鍵,最長 30 字;不可為空或 +++ |
| 新增日期 | — | 唯讀;新增時自動帶當天(VFP addagain) |
| 停用 | — | Y/N,控制品號是否停用 |
| 停用日期 | — | 唯讀;存檔時依「停用」自動補上或清空(見下節) |
| 品名 | ✔ | 最長 200 字;可由 產生品名 鈕自動產生 |
| 品別 | ✔ | 下拉(C204);存檔時須 > 0 |
| 英文描述 | — | 最長 999 字 |
| 來源別 | — | 下拉(C205) |
| 群組代號 | — | 搜尋(SK_GRPM1);帶出群組說明,並決定 Self-Defined 分類 |
| 品階 | — | 數字輸入(最長 2 位) |
| abc 分類 | — | 下拉,可選空白/A/B/C |
| 單位 | ✔ | 下拉(C104) |
| 模具型別/模具尺寸 | — | 文字 |
| 庫存管制 | — | Y/N;新增時預設 Y |
| 科目代號 | — | 會計科目搜尋 |
| 規格/中文描述/備註 | — | 文字(規格最長 120,描述/備註最長 999) |
| 圖檔名稱 | — | 圖檔路徑;填了會即時預覽,存檔時複製進系統影像目錄 |
Self-Defined(自訂分類)明細¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 分類 | — | 由群組代號展開的分類項目名稱 |
| 分類內容 | ✔(修改狀態) | 由該分類的可選清單(ContentList)挑選 |
隱藏欄位
XAML 中尚有一整區 Visibility="Collapsed" 的隱藏欄位:UPC、I 2 OF 5、HTS、UnitPackage(P002)、ShipPackage(P003)、BudgetCategory(P004)、業務員編號。這些目前在畫面上不顯示,屬保留欄位,本頁不列入操作流程。
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某按鈕後系統會做什麼」,全部來自實際程式碼(GinventViewModel、Twork_gen_vw_ginventSource、GinventSave)。
新增時的預設值(SetNewData)¶
當你按 新增 建立空白品號時,系統自動帶:
- 庫存管制 =
Y。 - 新增日期 = 當天(
DateTimeWrapper.TodayYYYYMMDD(),對應 VFPginvent.addagain)。
其餘欄位皆為空白,待你手動填寫。
群組代號 → 群組說明 + Self-Defined 分類¶
- 在群組代號欄選定群組後,群組說明會自動帶入該群組名稱(SK_GRPM1)。
- 群組說明還是
產生品名鈕的來源之一(見下)。 - 進入修改狀態時(
AdeViewModel.Status == Edit),系統會依目前群組代號呼叫GrpmBll.GetSelfDefined,逐列重新載入 Self-Defined 明細各列可選的分類內容清單,確保下拉內容與群組設定一致。
Setting 鈕(Self-Defined)¶
當你在非瀏覽狀態下按 Setting:
- 系統先把現有的分類明細全部標記為刪除(
增刪修 = D)。 - 依目前群組代號呼叫
GrpmBll.GetSelfDefined,把該群組定義的每一個分類重建成一列(分類 = 選項名稱)。 - 每列的分類內容預設帶入該分類可選清單的第一個值。
換句話說,Setting 是「依群組重建自訂分類列」的動作;改了群組代號要重按一次才會反映新群組的分類。
產生品名 鈕(GenerateSKUDescription)¶
對應 VFP ginvent 的「產生品名」鈕。當你在非瀏覽狀態下按它:
- 取群組說明,去掉第一個空格之前的代號段(只保留族群名稱本體)。
- 把所有未刪除、分類內容非空白的 Self-Defined 列的分類內容用空白串接。
- 組成「族群名稱 + 各分類內容」寫入品名;超過 120 字會截斷。
所以正確流程是:先選好群組代號 → 按 Setting 展開分類並填好各分類內容 → 再按 產生品名,品名就會自動拼好。
圖檔名稱 → 即時預覽+存檔複製¶
- 在圖檔名稱欄選定圖檔後,下方
Image會用完整路徑(圖檔完整路徑Binding)即時顯示預覽。 - 存檔時若圖檔尚未在系統影像目錄中,
GinventSave.AllowSave會把它複製進處理目錄(ProcessingDirectory)並改寫圖檔名稱為新路徑;複製失敗會擋存檔並提示影像儲存錯誤。
停用 → 停用日期(存檔時補算)¶
對應 VFP「停用」鈕。存檔(HandleDataBeforeEndEdit)時呼叫 SetDisabledDate:
- 停用 ≠
Y→ 清空停用日期。 - 停用 =
Y且停用日期為空 → 補上今天為停用日期。
與 VFP 的差異
VFP 是在按「停用」鈕當下就改停用日期;新版改成存檔時統一補算(與 D.BOM 品號主檔的 SetDisabledDate 一致)。畫面上的停用日期欄為唯讀,由系統維護。
存檔檢核(AllowSave)¶
按 存檔 時,GinventSave.AllowSave 依序檢查(對應 VFP ginvent.allowsave):
- 品號不可為空、不可為
+++。 - 品別須 > 0。
- 品名不可為空。
- 單位不可為空。
- 任一未通過會跳出「請輸入○○」提示並擋下存檔。
同時 HandleDataBeforeEndEdit 會把分類與分類內容皆為空白的 Self-Defined 列標記為刪除,避免存進空白分類列。
查詢頁籤的連動(AfterMoverRecord / 切換頁籤)¶
- 每次移動筆數(換到另一個品號)後,系統把目前品號(
MasterData.FirstItem.品號)同時塞進所有查詢子 VM 的「起/訖 SKU」條件;若目前在 Statistics 頁,會立即重查統計。 - 切換頁籤時,若該頁籤的 VM 實作
ITabQuery,會自動執行Query()(例如 Statistics 第一次切入即查詢一次)。 - 進入維護狀態(非 Normal)時,所有查詢頁籤會被停用(
IsEnabledByAdeStatus = false),離開維護狀態恢復;報價/採購/進貨等含金額頁籤另受檢視價格權限控制是否顯示。
規劃中/尚未提供
XAML 工具列在 VFP 版另有「工作流程」「快速查詢」「設變修改」等延伸鈕。新版 GinventViewModel 目前實作的延伸動作為 Setting(Self-Defined)與 產生品名 兩鈕;其餘 VFP 延伸鈕在新版尚未對應,請勿當成已可用功能。
常見問題¶
按了存檔卻一直跳「請輸入○○」?
品號主檔有四個必填欄:品號、品別、品名、單位。任一空白(或品號是 +++、品別未選=0)都會被擋下。請補齊這四欄再存。
Self-Defined(自訂分類)清單是空的?
分類清單來自群組主檔。請先在群組代號欄選定群組,再按 Setting 鈕展開;若該群組沒有定義任何 Self-Defined 分類,清單就會是空的——這要回群組主檔(SK_GRPM1)維護。
按了「產生品名」卻沒反應或品名怪怪的?
產生品名 是把群組說明(去掉開頭代號段)加上各列分類內容串接而成。若群組說明為空、或 Self-Defined 各列分類內容沒填,組出來的品名就會殘缺。請先選好群組、按 Setting 展開並填妥分類內容,再按 產生品名。另外此鈕在瀏覽狀態下不作用,需先進入新增/修改狀態。
停用日期不能手動改?
停用日期是唯讀欄,由系統在存檔時依「停用」自動維護:停用設 Y 補今天、設為非 Y 清空。要調整請改「停用」欄,存檔後日期會跟著更新。
報價/採購/進貨頁籤看不到金額或整個頁籤不見?
含金額的查詢頁籤受檢視價格權限(GetViewPricePermission)控制。沒有該權限時相關頁籤不顯示,請洽系統管理員調整權限。
圖檔預覽是空白或存檔報影像錯誤?
預覽用圖檔名稱的完整路徑載入,路徑錯誤或檔案不存在就不會顯示。存檔時系統會把圖檔複製進系統影像目錄,若來源檔案無法讀取/複製會擋存檔並提示影像儲存錯誤——請確認圖檔路徑正確且檔案存在。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
ginvent-step1.png— Basic 頁全貌(品號/品名/群組等欄位 + 圖檔預覽)ginvent-step2.png— Self-Defined 明細(按Setting展開的分類列)ginvent-step3.png— 查詢頁籤(建議以 Statistics 或 Shipping 為主畫面)