跳轉到

程式資訊

  • 程式 IDCUINVE
  • 所屬子系統:E.營業收款
  • 狀態:stable

客戶產品表

功能簡介

「客戶產品表」是維護「客戶 ↔ 品號」對應關係的客戶層主檔。它以客戶代號為主鍵,在底下的明細格列出該客戶常用、約定的品號,並記錄每個品號對該客戶的客戶品號、客戶機種、包裝、重量、紙箱尺寸、生效/失效/停售日期、銷售區域、業務員等資訊。

業務人員與客服在維護客戶資料、製作銷售訂單時會用到它:當一張訂單輸入客戶與品號後,系統可由本表帶出該客戶專屬的客戶品號、包裝量、重量與業務員等預設值,省去逐筆查詢。本頁屬於基礎資料維護性質,先建好客戶產品表,後續的訂單、出貨、標籤作業才會有正確的對應來源。

與客戶報價單的區別

客戶產品表記錄的是「品號對應與物流屬性(包裝/重量/尺寸)」,不含售價。售價請維護於客戶報價單(CUPDMA)。本表明細雖有保留單價欄位,但僅供參考、不是報價來源。

前置需求

  • 權限:E.銷售訂單 → E-040 客戶產品表 的瀏覽與修改權限。
  • 基礎資料:本表的下拉/帶值功能依賴下列主檔先維護好——
資料 影響什麼
客戶基本資料(CUDATA) 主檔客戶代號的查詢與客戶簡稱/全名帶出;客戶不存在無法存檔
品號主檔(SK_INVENT) 明細品號查詢、帶出品名,以及輸入品號時自動回填的包裝/重量/尺寸來源
業務員主檔(SK_SALESMEN) 明細業務員編號查詢與姓名顯示

操作步驟

本表為「客戶層主檔 + 品號明細」的版面:上方一行是客戶與整批備註,下方是該客戶的品號明細格。

新增一個客戶的產品對應

  1. 從主選單開啟 E.銷售訂單 → 客戶產品表
  2. 點工具列 新增
  3. Customer Code(客戶代號) 欄輸入或查詢客戶代號,系統右側自動顯示客戶名稱。
  4. 視需要在 Notes(備註) 填整批說明。
  5. 在下方明細格逐列輸入品號(見欄位連動與附加功能,輸入品號會自動帶出包裝、重量、尺寸與業務員)。
  6. 儲存

    小技巧

    可用 Ctrl+S 快速儲存。

修改 / 刪除

  1. 用工具列的查詢(放大鏡)或上下筆按鈕找到要維護的客戶。
  2. 修改 進入編輯狀態,直接在明細格調整欄位,或新增/刪除明細列。
  3. 要移除某個品號,把該列的 品號 清空即可——存檔時該列會被視為刪除(見欄位連動與附加功能)。
  4. 儲存

列印

  1. 在工具列點 列印,開啟「客戶產品表」報表條件視窗。
  2. Customer Code(客戶代號) 的起~訖兩欄輸入要列印的客戶區間。
    • 由本表進入列印時,系統會把目前這筆客戶代號自動帶到起訖兩欄,預設只印目前這一家。
  3. 確認後產出報表。

    起訖須有值才印得出來

    報表的客戶代號起、訖兩欄至少要有一邊填值才會有資料;兩邊都留空會被視為「無資料」而不產出。

欄位說明

主檔(上方客戶區)

欄位 必填 說明/格式/預設
Customer Code(客戶代號) 主鍵。輸入後右側帶出客戶名稱;同一客戶代號不可重複建立
Notes(備註) 整筆客戶層備註,最多 120 字

明細(下方品號格)

欄位 必填 說明/格式/預設
LineNo_(序號) 自動 系統自動編號
SKU(品號) 對應品號主檔;輸入後自動回填多個物流欄位(見下節)。空白列存檔時自動刪除
SKU Description(品名) 自動 唯讀;由資料表檢視依品號帶出,於該筆資料載入/重新整理時顯示(非輸入品號當下)
Customer SKU(客戶品號) 客戶端對此品號的編號。同一客戶內不可重複
Sales Rep Code(業務員編號) 對應業務員主檔;輸入品號時可帶出建議值,亦可手改
Sales Region(銷售區域) 文字,最多 15 字
Unit Price(單價) 參考用單價(非報價來源)
Unit Weight(單重) 由品號帶出,可改
Box Height/Box Length/Box Width(箱高/箱長/箱寬) 紙箱尺寸(公分,1 位小數);輸入品號時帶出,存檔時據此重算材積
Volume(材積) 自動 =ROUND(箱長 × 箱寬 × 箱高 ÷ 28317, 2),唯讀;於輸入品號與存檔時自動算
Gross Weight/Net Weight(毛重/淨重) 由品號帶出,可改
Customer Model(客戶機種) 客戶端機種名稱
Model(機種) 本廠機種
Delivery Address(交貨地點) 由品號帶出,可改
Change Date(變動日期) yyyy/MM/dd
Effective Date(生效日期) yyyy/MM/dd;存檔時若空白自動補今天
Expiration Date(失效日期) yyyy/MM/dd
Halt Sales Date(停售日期) yyyy/MM/dd
Quantity Per Carton(包裝量_箱) 由品號帶出,可改
Label Count(標籤數) 整數
Minimum Package Quantity(包裝量) 由品號帶出(VFP 原版隱藏,標示「暫不開放使用」)
Revision No(改訂編號) 文字,最多 10 字
Notes(備註) 明細列備註,最多 60 字

欄位連動與附加功能

本節整理「輸入某欄位 / 按某動作後系統會做什麼」,全部對應實際程式碼(C# CuinveViewModelCuinveSaveTwork_ord_vw_cuinveSource 與 VFP cuinve class)。

輸入客戶代號 → 帶出客戶名稱

  1. 當你在 Customer Code(客戶代號) 輸入或查到一個客戶,系統會即時帶出該客戶名稱顯示在右側唯讀欄。
  2. 切換到另一筆客戶資料時,系統會重新依客戶代號刷新名稱顯示,確保畫面上看到的名稱與目前這筆客戶相符。

輸入品號(SKU)→ 自動回填整列物流屬性

當你在明細列輸入 SKU(品號) 並離開該欄,系統會以該品號去查品號主檔(Darb_qry_cuinve_sku),自動回填下列欄位(你仍可逐欄手動覆寫):

  • 包裝量(Minimum Package Quantity)、包裝量_箱(Quantity Per Carton)
  • 淨重(Net Weight)、毛重(Gross Weight)、單重(Unit Weight)
  • 箱高 / 箱長 / 箱寬(Box Height / Length / Width)與材積(Volume)
  • 備註(明細 Notes)、交貨地點(Delivery Address)
  • 業務員編號(Sales Rep Code)

品名不會在輸入品號當下帶出

品名(SKU Description)為唯讀,但不是在你輸入品號的瞬間帶出;它由資料表檢視(Twork_ord_vw_cuinve)在載入/重新整理該筆資料時隨品號顯示。輸入新品號後,品名要等該筆資料下次載入才會對應顯示。

為何輸入品號後欄位會被覆蓋

這是設計上「以品號主檔為預設來源」的行為——目的是讓你少打字。若某客戶的包裝/重量與品號主檔不同,請在帶出之後再手動修改該列即可,存檔會以你修改後的值為準。

箱高 / 箱長 / 箱寬 → 自動算材積

  1. 材積(Volume) 由系統用公式 ROUND(箱長 × 箱寬 × 箱高 ÷ 28317, 2) 自動算出,唯讀、不可直接輸入;要改材積只能改三邊尺寸。
  2. 材積會在兩個時機被重算:
    • 輸入品號時:以品號主檔帶出的箱尺寸一併帶出對應材積。
    • 存檔時:按 儲存 時系統會逐列重算每一筆(只要該列箱長/箱寬/箱高任一大於 0),確保最終材積與你手改後的三邊尺寸一致。
  3. 因此,若你在格中手動改了箱長/箱寬/箱高,材積不會在離開儲存格的當下立即更新,要等存檔才會跟著重算。

與 VFP 舊版的差異

VFP 舊版是在離開箱尺寸欄位的當下(text1.Valid)即時重算材積;新版改為在存檔時統一重算(HandleDataBeforeEndEdit),計算公式相同,最終存進資料庫的材積值一致。

28317 是什麼

28317 立方公分 ≈ 1 才(30cm × 30cm × 30cm 的材積單位),因此材積欄算出來的是「才數」。

生效日期自動補今天

新增明細或存檔時,系統會檢查每一列:若 Effective Date(生效日期) 為空,就自動填入今天。對應 VFP 的 addagain / addsonitem(新增明細時補生效日期)與存檔前處理。

存檔前的整理與檢核

儲存 時,系統會:

  1. 把主檔客戶代號回寫到每一列明細,確保所有明細列都掛在同一個客戶下。
  2. 品號空白的列自動標記為刪除(不會存成空白列)。
  3. 重算每列材積並補生效日期(如上)。
  4. 進行下列檢核,任何一項不過就擋下存檔並提示:
    • 主檔 客戶代號 不可為空。
    • 同一客戶內 客戶品號 不可重複。
    • 同一客戶內 品號 不可重複。

列印帶值

由本表工具列點 列印 時,系統會把目前這筆的客戶代號同時帶入報表條件的「起」與「訖」兩欄,並帶出客戶名稱,預設就是列印目前這一家客戶。你也可以把訖欄改成別家,列印一段客戶區間。

尚未提供的功能

主檔資料表雖保留工作流程 / 審核人員 / 審核日期 / 已審核等欄位,但目前畫面並未提供簽核或工作流程操作,本表以一般主檔的新增/修改/刪除方式維護即可。VFP 舊版另有一個「單筆表單版」版面(每次只顯示一個品號、含「送貨地點」多行欄位),新版統一改用上方客戶 + 下方品號明細格的格狀版面呈現,功能等價。

常見問題

輸入品號後,包裝量 / 重量 / 尺寸自己變了,是 bug 嗎?

不是。輸入 SKU(品號) 時系統會以品號主檔的資料自動回填該列的包裝量、重量、箱高箱長箱寬、材積、業務員等欄位,目的是帶預設值。若該客戶的實際資料不同,帶出後再手動覆寫即可,存檔會以你改後的值為準。詳見欄位連動與附加功能

材積(Volume)欄打不進去 / 數字不對?

材積為唯讀、不能直接輸入,它由系統用「箱長 × 箱寬 × 箱高 ÷ 28317,四捨五入 2 位」自動算出。要改材積,請改三邊尺寸欄,材積會跟著重算。

存檔時出現「客戶代號不可空白 / 客戶品號重複 / 品號重複」?
  • 客戶代號為主鍵,主檔客戶代號必填
  • 同一客戶內,同一個客戶品號或同一個品號只能出現一次。請檢查明細格是否有重複列;要保留哪一筆就把另一筆的品號清空(清空列存檔時會自動刪除)。
想刪掉某個品號對應,但找不到刪除鍵?

把該明細列的 SKU(品號) 清空即可——存檔時品號空白的列會被自動標記刪除,不需要另外按刪除。

品名 / 業務員姓名欄是空的?

品名來自品號主檔、業務員姓名來自業務員主檔。若品號或業務員編號在主檔中查不到,名稱欄就會空白。請先確認對應主檔已建檔,或重新查一次該品號/業務員編號。

列印時印不出任何資料?

報表以客戶代號區間取數。請確認條件視窗的客戶代號「起」「訖」至少一邊有填——兩邊都空白會被視為無資料而不產出。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):

  1. cuinve-step1.png — 客戶產品表主畫面(上方客戶區 + 下方品號明細格)
  2. cuinve-step2.png — 輸入品號後自動帶出包裝/重量/尺寸的明細列
  3. cuinve-step3.png — 列印條件視窗(客戶代號起訖)