程式資訊
- 程式 ID:
PDTSAL - 所屬子系統:E.營業收款
- 狀態:stable
產銷表¶
功能簡介¶
「產銷表」(E-940)是一張以「年度+月份+版次」為週期、逐月人工維護的銷售與生產對照表單。每一張單據彙整一份明細清單,逐列記錄各客戶、各品號當期的庫存、計劃與實績——把銷售面(原銷售計劃、實際訂單、銷售實績、預售計劃)與生產面(計劃生產、生產實績)並列在同一列,方便業務與生管在同一張表上對照計畫達成度。
本表單由 VFP 舊版 PDTSAL(scx_ord.vcx)還原而來,採主檔+明細的標準交易單據結構:上方主檔記錄單號/年度/月份/版次/產銷備註,下方明細格線可逐列輸入客戶、品號與各項數量。資料純由使用者手動填寫,不自動由訂單或生產資料帶入,定位為「人工編製的產銷對照表」而非系統自動統計報表。
前置需求¶
- 權限:E.銷貨訂單 →
E-940 產銷表的瀏覽與修改權限(permissions: [瀏覽, 修改])。 - 基礎資料:明細列要正確顯示需先維護下列主檔——
| 資料 | 影響什麼 |
|---|---|
| 客戶基本資料(客戶資料) | 明細客戶代號欄的放大鏡查詢與帶值 |
| 品號基本資料(invent / SKU 主檔) | 明細品號輸入後帶出的品名;查無品號會跳「查無品號 !!!」 |
本表單不需審核
pdtsal_m 主檔沒有任何審核欄位,因此產銷表不掛集中式簽核/審核流程,存檔後即生效,沒有「待審核」狀態。
操作步驟¶
產銷表走 TsERP 標準的「新增/修改/刪除/儲存」單據作業流程。
新增一張產銷表¶
- 從主選單開啟 E.銷貨訂單 → 產銷表(E-940)。
- 點工具列
新增。 - 在主檔區填寫:
- 單號(紅色重點欄,必填,由使用者自行輸入)。
- 年度、月份、版次(三欄皆為必填,且只有新增時可編輯,詳見欄位連動與附加功能)。
- 產銷備註(選填,最多 30 字)。
- 在下方明細格線逐列輸入資料:
- 在客戶代號欄用放大鏡挑客戶,或直接輸入代號。
- 在品號欄輸入或挑選品號,離開欄位後系統自動帶出品名。
- 依當期實況填入各數量欄(上月庫存、原銷售計劃、實際訂單、銷售實績、計劃生產、生產實績、例出、預售計劃1~4、單價)。
- 視需要填備註。
-
點
儲存。小技巧
可用 Ctrl+S 快速儲存。
-
系統檢核通過後寫入,顯示儲存成功。檢核失敗時會逐項提示(見常見問題)。
修改既有產銷表¶
- 用瀏覽/導覽(前一筆/後一筆)找到要修改的單據。
- 點
修改。 - 年度/月份/版次 在修改模式下為唯讀(灰色不可改);其餘主檔欄位與明細皆可調整。
- 改完點
儲存。
刪除明細列/整張單據¶
- 刪除單一明細列:在格線選取該列後刪除即可;存檔時系統也會把品號空白的明細列自動標記刪除(不會留下空列)。
- 刪除整張單據:在瀏覽模式下點工具列
刪除,確認後移除主檔與所有明細。
報表列印尚未提供
VFP 舊版的產銷表報表程式 PDTSAL_P(SCX_ORDP)目前尚未移植到 TsERP V2,因此本表單暫無對應的列印格式。此功能規劃中,未提供。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 單號 | ✔ | 鍵值欄,由使用者自行輸入(無自動編碼),最長 20 字。空白不可存、且不可與既有單號重複 |
| 年度 | ✔ | 4 碼。僅新增時可改,修改模式唯讀 |
| 月份 | ✔ | 2 碼。僅新增時可改,修改模式唯讀 |
| 版次 | ✔ | 1 碼。僅新增時可改,修改模式唯讀 |
| 產銷備註 | — | 自由文字,最長 30 字 |
| 輸入日期 | — | 系統自動產生(唯讀),格式 yyyy/MM/dd HH:mm |
明細欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 客戶代號 | — | 可用客戶放大鏡查詢挑選,最長 10 字 |
| 品號 | — | 輸入後離開欄位會驗證並帶出品名;查無會提示,最長 30 字 |
| 品名 | — | 唯讀,依品號自動帶出(不可手改) |
| 客戶品號 | — | 自由輸入,最長 30 字 |
| 上月庫存 | — | 數量,小數 2 位 |
| 原銷售計劃 | — | 數量,小數 2 位 |
| 實際訂單 | — | 數量,小數 2 位 |
| 銷售實績 | — | 數量,小數 2 位 |
| 計劃生產 | — | 數量,小數 2 位 |
| 生產實績 | — | 數量,小數 2 位 |
| 例出 | — | 數量,小數 2 位 |
| 預售計劃1~4 | — | 四欄數量,各小數 2 位 |
| 單價 | — | 小數 6 位(格式 9,999,999,999.999999) |
| 備註 | — | 自由文字,最長 30 字 |
數量欄無系統預設值
明細各數量欄不會由訂單或生產資料自動帶入,新增時皆為 0,需逐欄人工填寫。
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某動作後系統會做什麼」,全部依實際程式碼行為描述。
主檔:年度/月份/版次「僅新增可改」¶
- 當你在新增(或複製新增)模式時,年度、月份、版次三欄可以編輯。
- 當你切到修改模式時,這三欄會自動變成唯讀(灰色),無法更動。這是還原 VFP 的
changeopmode——這三欄是單據的「週期識別」,建檔後不應再改,避免一張單據的歸屬期被改掉。 - 對應實作:XAML 的
AddOnlyTextBox樣式,依AdeViewModel.Status是否為Add/Copy切換唯讀。
主檔:單號的重複檢查¶
- 當你存檔時,系統會把你輸入的單號拿去
pdtsal_m資料表比對(排除目前這筆 pkid)。 - 若已有相同單號的其他單據,擋下存檔並提示單號重複。
- 由於單號是手動輸入而非自動編碼,這道重複檢查是避免兩張單據撞號的關鍵防線。
明細:品號輸入後自動帶品名¶
- 當你在明細「品號」欄輸入完並離開欄位時,系統會以該品號到
invent(品號主檔)查詢:- 查得到 → 自動把品名填到同列的品名欄(唯讀)。
- 查不到 → 彈出提示「查無品號 !!!」,並把品名清空。
- 對應 VFP grid 的
sql_mno1(dovalid=1)+U_SEEKNM帶名邏輯。導覽既有單據時,品名是由vw_pdtsalview(pdtsal LEFT JOIN vwseek_invent)直接帶出,載入即有;只有在你重新編輯品號時才會重新查一次。
明細:客戶代號放大鏡¶
- 客戶代號欄是客戶查詢欄,可按放大鏡叫出客戶清單挑選,挑選後把客戶代號填入。
存檔:空白品號列自動刪除¶
- 當你存檔時,系統會掃描所有明細列,把品號為空白的列自動標記為刪除(增刪修=D)。
- 這還原 VFP 的
REPLACE 增刪修 WITH 'D' FOR EMPTY(品號):避免使用者新增後留下沒填品號的空列被寫進資料庫。所以你不需要手動清掉沒用到的空白列,存檔時會幫你濾掉。
存檔:必填檢核順序¶
存檔時系統依序檢查(任一項不過就擋下並提示):
- 單號不可空白 → 提示請輸入單號。
- 單號不可重複(見上)。
- 年度不可空白 → 提示請輸入年度。
- 月份不可空白 → 提示請輸入月份。
- 版次不可空白 → 提示請輸入版次。
VFP 有、新版未還原的兩項
- VFP Init 中「單價欄是否顯示」會依站台參數(
'單價'$IS_備註)決定;新版固定顯示單價欄,沒有這個站台開關。 - VFP 註解掉的格線動態色彩(刪除列紅字、單價≤0 綠底)為原本就停用的 dead code,新版未還原。
常見問題¶
存檔時被擋,提示「請輸入年度/月份/版次」?
年度、月份、版次是主檔必填欄位。請確認三欄都有填值再存。注意這三欄只有在新增模式才能輸入,若你是修改既有單據,它們應已有值;若發現是空的,代表這張單據當初建檔資料不完整。
存檔時提示「單號重複」?
產銷表的單號是手動輸入、不自動編號,且不允許與既有單據撞號。請改用一個尚未使用過的單號。建議用「年度+月份+版次」的固定規則命名,避免重複。
明細品號輸入後跳出「查無品號 !!!」?
代表該品號在品號主檔(invent)裡查不到。請確認品號正確、或該品號是否已建檔。查無時品名會被清空,該列等於沒有有效品號——若就此存檔,這列會被當成空白品號列自動刪除。
為什麼明細的數量欄一開始都是 0?
產銷表是人工編製的對照表,各數量欄(上月庫存、實際訂單、生產實績等)不會自動由訂單或生產系統帶入,需要使用者逐欄手動填寫。
年度/月份/版次在修改時為什麼改不了(灰色)?
這是設計行為。這三欄是單據的週期識別,建檔後鎖定為唯讀,避免一張單據的歸屬期被誤改。若真的填錯,請刪除整張單據後重新新增。
找不到列印/報表按鈕?
產銷表的報表(VFP PDTSAL_P)目前尚未移植到 TsERP V2,暫不提供列印格式。詳見操作步驟中的提醒。
相關功能¶
- 銷售產品預估表(ESTSAL) — 本表單的範本來源,週期式銷售預估
- 預示單(PREORD) — 客戶預示需求來源
- 銷售訂單(ORMAST) — 實際訂單來源
- 客戶資料 — 明細客戶代號的來源主檔
- E.銷貨訂單模組總覽
- B.基本資料(品號主檔)
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
images/pdtsal-step1.png— 新增模式主檔區(單號/年度/月份/版次/產銷備註,三欄可編輯)images/pdtsal-step2.png— 明細格線(含品號帶品名、客戶放大鏡)images/pdtsal-step3.png— 修改模式(年度/月份/版次 灰色唯讀的對照)