程式資訊
- 程式 ID:
PREORD - 所屬子系統:E.營業收款
- 狀態:stable
預示單¶
功能簡介¶
「預示單」是客戶提前告知未來各月份預估需求量的單據。它不是正式訂單,不會扣庫存、不算應收,純粹把客戶的「預估出貨計畫」登錄進系統,供生產計劃查詢、請購建議(PPUR_SUG)等下游機制把預估量納入需求來源,及早備料、排產。
使用者通常是業務助理或業務窗口:收到客戶的月需求預估(常以 Excel 提供)後,以「年度+月份+版次+客戶代號」開立一張預示單,逐列填入品號、預訂交期與數量。一個客戶在同一年月可有多個版次,用來保留每次更新的歷史。
預示 vs 訂單
預示單只記錄「客戶說會買多少」,沒有出貨、沖帳概念。明細的扣減數量欄位是讓使用者手動向下調整預估的工具(例如客戶已先下了部分正式訂單),系統不會自動互抵。
前置需求¶
- 權限:E.銷售 →
E-110 預示單的新增/修改/刪除權限(瀏覽僅供查閱)。 - 基礎資料:下列主檔會直接影響本單能不能正確帶值——
| 資料 | 影響的結果 |
|---|---|
| 客戶主檔(客戶基本資料) | 主檔客戶代號搜尋與客戶簡稱帶出;客戶代號是組單號與明細連動的基準 |
| 品號主檔 | 明細輸入 SKU 後帶出品名/單位;查不到的品號明細會以「品名」空白提示 |
| 客戶品號對應 | 明細客戶 SKU 與 SKU 互相反查(輸入其一帶出另一個) |
| 客戶報價(銷售最新單價) | 明細輸入 SKU/客戶 SKU 後自動帶最新銷售單價 |
| 工作日曆 | 樞紐輸入帶出的預訂交期取「該月第一個工作日」;批數拆解的交期逐批往後推工作日 |
| 幣別/匯率 | 主檔幣別預設本位幣、匯率 1,可改外幣 |
操作步驟¶
新增一張預示單¶
- 從主選單開啟 E.銷售 → 預示單。
- 點選工具列
新增。系統自動帶入預設值(見欄位連動與附加功能):月份=當月、版次=1、幣別=本位幣、匯率=1。 -
填寫主檔抬頭:
- Year(年度)、Month(月份)、Version(版次):三者加上客戶代號決定這張單的唯一單號。
- Customer Code(客戶代號):輸入或用放大鏡查詢客戶;離開欄位後自動帶出客戶簡稱。
- 視需要調整 Currency(幣別)/匯率、填寫 Notes(預示備註)、Notice(注意事項)。
-
點選
儲存。系統會在存檔前組出單號=年度+月份(補零)+版次+客戶代號,並對年度、月份、客戶與明細做檢核(見存檔檢核)。小技巧
可用 Ctrl+S 快速儲存。
輸入明細¶
- 在明細格線輸入 SKU 或 Customer SKU(兩者互相反查),系統帶出品名/單位/單價。
- 填 Original Quantity(原始數量);若要往下調整,填 Minus Quantity(扣減數量),系統即時算出 Adjusted Quantity(修正後數量=原始-扣減)。
- 填 ETA(預訂交期)。按
新增時,系統會把當下已存在的明細列預訂交期一律設為今天 +10 天(之後手動新增的列不會自動帶,需自行填寫)。若存檔時仍空白,系統會以該列的原預訂交期回填。 - Quantity(數量) 是實際送往下游的需求量;可手動填,或用控制面板的
Replace Quantity with Revised Quantity一次把所有列的數量蓋成修正後數量。
明細空白列會自動刪除
存檔時品號空白的明細列會被自動標記刪除,不必手動清空。
修改與刪除¶
- 用工具列瀏覽鈕或查詢找到要修改的預示單。
-
按
修改,調整主檔或明細後儲存。注意
年度、月份在修改模式不再重新驗證,且「不得有更新版本」的擋存檢查只在新增時生效——修改舊單不會被擋。
-
要整張刪除時按
刪除,確認後該單主檔與明細一併移除。
列印¶
工具列 列印 走系統共用的報表機制,依登錄的報表樣板輸出這張預示單。
報表樣板
預示單未在程式內寫死專屬報表,列印內容取決於系統實際掛載的 FastReport 樣板;若清單為空表示尚未掛載樣板。
欄位說明¶
主檔(抬頭)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Year(年度) | 是 | 4 碼西元年。新增模式驗證須為數字且 ≥ 2010 |
| Month(月份) | 是 | 1~12。預設當月;存檔時補零成 2 碼(3→03) |
| Version(版次) | 是 | 1 碼。預設 1,同一客戶同年月可多版 |
| Customer Code(客戶代號) | 是 | 最長 10 碼;用放大鏡查客戶,離開欄位帶出客戶簡稱 |
| Customer(客戶簡稱) | 自動 | 唯讀,依客戶代號帶出 |
| Currency(幣別) | — | 預設本位幣;改幣別會連動匯率 |
| 匯率(FX Rate) | — | 預設 1;幣別為本位幣時固定 1 |
| Forecast Document No(單號) | 自動 | 唯讀,存檔時組成=年度+月份+版次+客戶代號 |
| Created Date(建檔日期) | 自動 | 唯讀,系統帶入 |
| Notes(預示備註) | 否 | 最長 60 字 |
| Notice(注意事項) | 否 | 多行文字,最長 999 字 |
明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Line No(序號) | 自動 | 系統依輸入順序編號 |
| Original ETA(原預訂交期) | 是 | 原始交期;存檔時若預訂交期空白會回填為原預訂交期。非空白列必填 |
| ETA(預訂交期) | — | 實際預訂交期;按 新增 時已存在的明細列會帶今天 +10 天;存檔時空白會回填原預訂交期 |
| DateType | 自動 | 唯讀的日期類別說明 |
| Customer SKU(客戶品號) | — | 與 SKU 互相反查 |
| SKU(品號) | — | 輸入後帶品名/單位/單價;空白列存檔時自動刪除 |
| SKUDescription(品名) | 自動 | 唯讀,依 SKU 帶出 |
| Is Disabled/Disable Description | 自動 | 唯讀,品號停用狀態與說明 |
| Original Quantity(原始數量) | — | 客戶原始預估量 |
| Minus Quantity(扣減數量) | — | 手動向下調整量 |
| Adjusted Quantity(修正後數量) | 自動 | 唯讀=原始數量 − 扣減數量 |
| Quantity(數量) | — | 實際下游需求量;可按 Replace Quantity… 一鍵蓋成修正後數量 |
| Unit Of Measurement(單位) | — | 下拉選單,依 SKU 帶預設 |
| Unit Price(單價) | 自動 | 依客戶最新銷售報價帶入,可改 |
| Notes(備註) | 否 | 最長 30 字 |
| Delivery Address(交貨地點) | 否 | 最長 10 碼 |
控制面板(右側 Control Panel)¶
| 欄位/按鈕 | 說明/預設 |
|---|---|
Import + EDI 路徑 |
從指定 Excel 匯入明細,預設路徑 C:\temps\edi\forecast.xlsx |
Export + 匯出路徑 |
把明細匯出成 Excel,預設 C:\temps\edi\forecast_export.xlsx |
Replace Quantity with Revised Quantity |
把每列數量蓋成(原始−扣減) |
| Split Lot No / Interval Of Days | 批數拆解的批數(預設 1)與每批間隔工作日(預設 1) |
Split |
依設定把每列拆成多批 |
Sales Quantity Query |
查詢選取明細品號的庫存/需求分析 |
| Auto Query After Input SKU | 預設勾選;輸入 SKU 後自動觸發上述查詢 |
欄位連動與附加功能¶
這一節說明「輸入某欄位/按某按鈕後系統會做什麼」,全部來自實際程式行為。
新增時的預設值¶
當你按 新增,系統(AfterAddNew)會自動:
- 把主檔 月份 設為當月、版次 設為
1、幣別 設為本位幣、匯率 設為1。 - 把目前明細所有列的預訂交期設為今天 +10 天。
主檔客戶代號 → 連動明細¶
- 當你在主檔輸入/變更客戶代號,系統會把這個客戶代號同步寫進所有明細列的內部 CustomerCode(明細的 SKU/客戶 SKU 反查、帶單價都依賴它)。
- 之後新增的明細列也會自動繼承主檔目前的客戶代號。
先填客戶代號再填明細
SKU 與客戶 SKU 的互相反查、帶單價都以「客戶代號」為基準。若先填明細才填客戶代號,已填的明細可能反查不到客戶品號或帶不到單價,建議先選好客戶再輸入明細。
明細 SKU ⇄ 客戶 SKU 互相反查、自動帶單價¶
明細的 SKU 與 Customer SKU 是雙向連動:
- 輸入 SKU:系統帶出品名/單位,並依「客戶代號+SKU」反查出對應的客戶 SKU;同時抓該客戶+品號的最新銷售單價填入單價。
- 輸入 Customer SKU:系統反查出對應的 SKU,再帶品名、單位與最新單價。
數量三欄的即時連動¶
- 修正後數量(Adjusted Quantity) 永遠等於「原始數量 − 扣減數量」,改動原始或扣減任一欄,修正後數量即時重算。
- 控制面板的
Replace Quantity with Revised Quantity會把每一列的「數量」一次蓋成各自的「修正後數量」(原始−扣減),方便先調好扣減後一鍵套用。
輸入 SKU 自動跑「銷售數量查詢」¶
- 明細輸入 SKU 後,若控制面板的 Auto Query After Input SKU 為勾選(預設),系統會自動對目前選取的明細品號執行
Sales Quantity Query。 - 查詢結果顯示在畫面下半部兩個唯讀格線:
- Combine(基本資料):該品號的安全庫存、現有量、未交訂單量、可用量、在途量、預估可用量、近期進貨/出貨、主要供應廠商與報價、建議採購量等。
- Demand(需求 C1~C12):以該明細預訂交期的前一個月為基準回推 12 期(C1=需求月、C12=前 11 月,由新到舊)的歷史需求量與合計,欄標題會隨之顯示對應年月。
手動重查
若關掉自動查詢,或想換一筆明細看,選取該明細列再按 Sales Quantity Query 即可。
樞紐輸入(一次帶整年)¶
主畫面工具列的匯入鈕會開啟 Pivot Input 視窗(PreordPivotInputViewModel),讓你用「一品號一列、12 個月各一欄」的橫式格子一次輸入整年預估:
- 視窗預先給 100 個空白列;上方可直接輸入,或按
From Excel從 Excel(預設C:\Temps\EDI\Forecast.xlsx,讀Sheet1)讀入。 - 從 Excel 讀入時系統會:依客戶品號反查 SKU、帶品名、帶該客戶+品號的最新銷售單價;找不到的品號會在該列 Notes 標「<品號> not exist」。
- 按確定(
Return)回主畫面前會再檢查一次,任何一列 Notes 非空白就會跳訊息擋下,請先修正該品號。 - 回到主畫面後,系統把每個品號的 12 個月數量展開成明細列——某月數量 > 0 才產生一列,預訂交期取該月的第一個工作日,數量同時填入原始數量與數量,序號自動接續編號。
從 Excel 匯入明細(控制面板 Import)¶
- 控制面板的
Import只在新增模式可按。它讀 EDI 路徑指定的 Excel:第 1 欄=客戶品號、第 2 欄=交期、第 3 欄=數量(第 1 列為標題)。 - 匯入會先清空現有明細再逐列建立;交期解析失敗時以今天代入;序號依系統設定的長度補零。
匯出明細到 Excel(控制面板 Export)¶
Export把目前明細中數量 > 0 的列匯出成 Excel(工作表名Forecast),輸出到系統 EDI 目錄。欄位含序號、預訂交期、客戶品號、SKU、原始數量、扣減數量、數量。
批數拆解(控制面板 Split)¶
把一筆大數量拆成多批、交期錯開,常用於分批出貨的預估:
- 設定 Split Lot No(要拆成幾批)與 Interval Of Days(每批間隔幾個工作日),兩者都必須 > 0,否則跳提示。
- 按
Split(僅編輯中可按)。系統對每一筆序號尾碼不是英文字母(代表還沒拆過)的列:- 把原列數量改成「總量 − (批數−1)×每批量」(餘數留在原列)。
- 另外複製出(批數−1)筆獨立明細,序號=原序號 +
A/B/C…,每批交期依間隔工作日往後推,原始數量/扣減數量歸零,數量=每批量。
拆過的列不會再被拆
序號尾碼已是英文字母的列視為「已拆解」,再按 Split 不會重複拆。
存檔檢核與擋存¶
按 儲存 時(PreordSave.AllowSave / HandleDataBeforeEndEdit)系統會:
- 必填檢查:年度、月份、版次、客戶代號任一空白即擋存並提示該欄。
- 新增模式額外檢查:
- 年度須為數字且 ≥ 2010;月份須為 1~12。
- 不得已有更新版本:若系統內同客戶已存在「年度月份大於本單」的預示,會以「系統內已有最新單據」訊息擋下(避免覆寫較新的預估)。此檢查只在新增時做。
- 明細檢查:非刪除、且品號非空白的列,原預訂交期不可空白。
- 存檔前自動處理:幣別空白時補本位幣+匯率 1;新增時月份補零並組單號;品號空白列標記刪除;預訂交期空白時回填原預訂交期。
常見問題¶
明細輸入 SKU 後,品名/單價是空白?
請確認:(1) 主檔的客戶代號已先填好——SKU 反查與帶單價都依賴它;(2) 該品號存在於品號主檔;(3) 該客戶+品號有銷售報價,否則單價帶不出來(仍可手動輸入)。
存檔時跳「系統內已有最新單據」,無法儲存?
這是新增模式的版本保護:系統發現同客戶已有「年月大於本單」的預示,為避免覆寫較新的預估而擋下。若你是要更新舊月份,請改用較新的年月/版次;若確定要修,改用 修改 既有單據而非新增。
用樞紐輸入按確定卻被擋住,跳出某個品號訊息?
樞紐輸入視窗有些列的 Notes 是「<品號> not exist」——表示那個客戶品號反查不到 SKU。請先把該列品號修正或清空,再按確定。
為什麼修正後數量改不了?
修正後數量是唯讀計算欄(原始數量 − 扣減數量),不能直接編輯。要調整就改原始數量或扣減數量;若要把它套進實際送出的「數量」,按控制面板 Replace Quantity with Revised Quantity。
按 Split 沒有反應或沒拆出新列?
請確認:(1) 目前在編輯中(新增或修改),瀏覽狀態下 Split 不可按;(2) Split Lot No 與 Interval Of Days 都 > 0;(3) 要拆的列序號尾碼不是英文字母(尾碼是字母代表已拆過,不會再拆)。
存檔說某列「原預訂交期」必填,但我看不到該列?
凡是有品號、非刪除的明細列都要求原預訂交期。品號空白的列存檔時會自動刪除、不檢查;但若某列有品號卻漏了原預訂交期就會被擋。請補上該列的 Original ETA。
相關功能¶
- 銷售訂單 — 預示之後轉為正式訂單的單據
- 客戶基本資料 — 維護客戶與客戶品號對應
- 生產計劃查詢 — 把預示量納入生產需求來源
- 採購/請購建議(PPUR_SUG) — 共用本單的庫存/需求查詢邏輯
- 本頁內快速跳轉:欄位連動與附加功能、存檔檢核與擋存
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
preord-step1.png— 預示單主畫面(抬頭+明細格線+下方查詢結果)preord-step2.png— 樞紐輸入(Pivot Input)視窗:12 月橫式輸入preord-step3.png— 右側控制面板(Import/Export/Replace/Split/Sales Quantity Query)preord-step4.png— 批數拆解前後的明細序號對照(001 → 001、001A、001B…)