程式資訊
- 程式 ID:
PK - 所屬子系統:E.營業收款
- 狀態:stable
裝箱單(Packing List)¶
功能簡介¶
「裝箱單」用來建立外銷出貨的 Packing List,記錄每筆出口品項要裝幾箱、每箱的數量/淨重/毛重/材積,並自動推算每筆明細的起訖箱號。它通常接在 CI(商業發票 / Commercial Invoice) 之後製作:先有 CI,再以 CI 為來源把出貨品項一次帶進裝箱單,由出口承辦人員補上裝箱資訊後印出隨貨文件。
整張單據由「表頭」(一筆 CI 對應一張裝箱單)與「明細」(每個品項一列或多列)組成,最後彙總出整張單的總金額/總箱數/總淨重/總毛重/總材積/總數量供核對。
與 CI、PI 的關係
裝箱單的 CIDocument No 對應一張 商業發票 CI,PIDocument No 對應 預估發票 PI。裝箱單只負責「怎麼裝箱」,金額與客戶資訊都是從 CI 帶過來的。
前置需求¶
- 權限:E.銷貨 →
E-100 裝箱單的瀏覽/新增/修改/刪除權限。 - 基礎資料:下列資料會直接影響帶入與計算結果——
| 資料 | 影響的結果 |
|---|---|
商業發票 CI(同 cino) |
按 Import 時帶入的表頭與明細品項(SKU、單價、單箱數量、箱重、箱材積) |
| 客戶主檔 | 輸入客戶代號後自動帶出客戶簡稱與幣別 |
| 品號(庫存)主檔 | 輸入 SKU 後自動帶出產品描述與單位 |
| 幣別/匯率資料 | 幣別 控件依製表日期取買入匯率;金額小數位數依幣別設定 |
操作步驟¶
新增裝箱單(以 CI 帶入最常用)¶
- 從主選單開啟 E.銷貨 → 裝箱單。
- 點選工具列
新增。系統自動帶入:- 製表日期=今天。
- 幣別=本位幣(之後輸入客戶代號會改成客戶幣別)。
- 在 CIDocument No 輸入或查詢要裝箱的商業發票單號。
- 按欄位旁的
Import按鈕,系統依該 CI 把表頭欄位(CI 日期、客戶代號、幣別、商品名稱、頁首/頁尾備註、正嘜)與明細品項一次帶入(詳見欄位連動與附加功能)。 - 視需要調整 BeginningBoxNo(起始箱號,預設 1)、Prefix(前置文字)、Suffix(後置文字),讓系統依序編排箱號與箱號文字。
- 逐列補齊或修正明細的箱數、單箱淨重/毛重、箱長寬高等。
- 按
Order By Line No依序號重排每列的起始箱號/截止箱號。 -
點選
儲存。小技巧
即使沒有對應的 CI,也可以直接
新增後手動逐列輸入品項建立裝箱單,Import只是把 CI 明細一次帶進來的捷徑。
修改 / 刪除¶
- 用工具列的上一筆/下一筆或 CIDocument No 查詢功能切換到要處理的單據。
-
點
修改後調整欄位,或點刪除移除整張單,最後儲存。已轉退稅的單據不可修改
若表頭 轉退稅註記 為
Y(已產生轉退稅出口報單),系統會擋下修改並提示「請刪除轉退稅出口報單資料後,再行修改」。需先處理出口報單,才能回頭改裝箱單。
欄位說明¶
表頭¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| CIDocument No(cino) | ✔ | 商業發票單號,本單主鍵;Import 來源 |
| CIDocument Date(ci日期) | ✔ | CI 日期;Import 時由 CI 帶入 |
| Customer Code(客戶代號) | ✔ | 輸入後自動帶客戶簡稱與幣別 |
| Customer Name(客戶簡稱) | — | 唯讀,依客戶代號自動帶出 |
| Document Date(製表日期) | ✔ | 製單日期,新增時預設今天 |
| PIDocument No(pino) | — | 對應的預估發票 PI 單號 |
| Item Name(商品名稱) | — | 商品名稱,Import 時由 CI 帶入 |
| Currency(幣別) | — | 新增預設本位幣;輸入客戶後帶客戶幣別 |
| PageHeaderNotes(頁首備註) | — | 列印於 Packing List 頁首的多行文字 |
| PageFooterNotes(頁尾備註) | — | 列印於頁尾的多行文字 |
| Shipping Mark(正嘜) | — | 嘜頭(外箱標示),多行文字 |
| 轉退稅註記 | — | Y/N;為 Y 時鎖定修改 |
| Total Amount/Box Quantity/NetWeight/GrossWeight/Volume/Quantity | — | 全為系統彙總(唯讀),由明細加總 |
明細(每列一品項)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 不足箱 | — | Y 表示這列是 Import 拆出來的尾數(不滿一整箱)列 |
| Line No(序號) | — | 流水序號,Order By Line No 或 Import 自動編 |
| 前置文字/後置文字 | — | 由表頭 Prefix/Suffix 統一帶入,可逐列調整 |
| 起始箱號/截止箱號 | — | 改任一個會回算箱數;Order By Line No 會重排 |
| Box Quantity(箱數) | — | 改值會回算毛重/淨重/材積(=單箱值 × 箱數) |
| SKU(品號) | — | 輸入後自動帶產品描述與單位 |
| Customer SKU(客戶品號) | — | 客戶端的品號 |
| Quantity(數量) | — | 改值會回算金額 |
| Unit Price(單價) | — | 改值會回算金額;Import 由 CI 帶入 |
| Quantity Per Carton(單箱數量) | — | 每箱裝幾個 |
| Net/Gross Weight Per Carton(單箱淨重/毛重) | — | 改值會回算整列淨重/毛重 |
| Net/Gross Weight(淨重/毛重) | — | 系統算出(單箱值 × 箱數) |
| Box Height/Length/Width(箱高/長/寬) | — | 改任一個會回算單箱材積與 meas |
| VolumePerCarton/Volume(單箱材積/材積) | — | 系統算出 |
| meas | — | 箱長×寬×高字串,系統組出 |
| 棧板毛重/pl meas/起訖棧板號/棧板數 | — | 棧板(pallet)相關資訊 |
| 結關日期 | — | 該品項結關日 |
| Vendor Code(廠商代號) | — | 供應廠商 |
| Customer Order No(客戶訂單號) | — | 客戶訂單編號 |
| pk備註 | — | 該列備註 |
欄位連動與附加功能¶
這是裝箱單最關鍵的一節。以下「當你⋯,系統會⋯」全部來自實際程式行為。
表頭欄位連動¶
- 新增時的預設值:按
新增後,系統把製表日期設為今天、幣別設為本位幣。 - 輸入客戶代號 → 帶幣別:在 Customer Code 輸入或選取客戶後,系統查客戶主檔,把表頭幣別改成該客戶設定的幣別。客戶簡稱(Customer Name)也會在切換單據時自動補上。
- 幣別 → 金額小數位數:明細金額的四捨五入位數依表頭幣別的小數設定計算,所以
Import或改幣別後金額顯示位數會跟著變。
Import:以 CI 帶入表頭與明細¶
當你輸入 CIDocument No 後按 Import(僅在新增狀態可用):
- 系統以該
cino查 CI 資料(呼叫TWORK_QRY_PK)。查無資料則不動作。 - 清空現有明細,重新依 CI 帶入,並把表頭欄位(製表日期=今天、CI 日期、客戶代號、公司代碼、幣別、商品名稱、頁首備註、頁尾備註、正嘜)一次填好。
- 明細以「SKU+單箱數量+箱重材積」等條件分組彙總後逐列建立,並自動:
- 依單箱數量算出整箱數(總數量 ÷ 每箱數量取整),帶入箱高/寬/長、單箱淨重/毛重,並算出單箱材積與 meas。
- 不滿一整箱的尾數會另外拆成一列,序號加
A前綴、不足箱標Y,並按比例換算這箱的淨重/毛重。 - 從 BeginningBoxNo 開始,依序排好每列的起始箱號/截止箱號。
- 單位為
ZZZ(非實體品項)的列不展開箱資訊。
- 帶入後,每列的前置文字/後置文字會套上目前表頭的 Prefix/Suffix。
Import 只在新增可用
Import 按鈕只有在新增狀態才作用;修改既有單據時不會出現重新帶入的效果。要重新帶入請另開新單。
Order By Line No:依序號重排箱號¶
按 Order By Line No(編輯狀態可用)時,系統把有品號的明細依序號排序,從 BeginningBoxNo 起算,逐列接力填起始箱號/截止箱號:
- 每列截止箱號=起始箱號+箱數-1(箱數為 0 時起訖相同)。
- 排到第二箱以後的列會先呼叫
SetBoxQuantity把該列的箱數、單箱淨/毛重、箱高寬、單箱材積、meas 歸零再重排——避免沿用前一列殘值。
起訖箱號 ↔ 箱數 互算¶
- 改起始箱號或截止箱號:只要截止箱號 ≥ 起始箱號,系統自動把箱數設為「截止 − 起始 + 1」。
- 改箱數(Box Quantity):系統依「單箱值 × 箱數」回算整列毛重/淨重/材積。
箱重、箱材積連動¶
- 改單箱淨重 / 單箱毛重:系統立即回算整列淨重 / 毛重(=單箱值 × 箱數)。
- 改箱高 / 箱長 / 箱寬:系統用「高 × 長 × 寬 × 35.3147」算出單箱材積(材積=單箱材積 × 箱數),並把 meas 組成「長寬高」字串。
金額連動¶
- 改數量或單價:系統把「單價 × 數量」依幣別小數位數四捨五入後寫入該列金額;表頭 Total Amount 會同步重算(其餘總箱數/淨重/毛重/材積/總數量也由明細彙總)。
- 總數量(Total Quantity) 是依單位分組後的合計字串(例如「1200 PCS, 30 SET」),同一張單可同時呈現多種單位的合計。
Prefix / Suffix 批次套用¶
- 在工具列輸入 Prefix(前置,最多 2 碼)或 Suffix(後置,最多 2 碼)並離開欄位後,系統會把所有明細列的前置文字 / 後置文字一次更新成該值。
SKU 帶值¶
- 在明細 SKU 欄輸入品號後,系統查品號主檔:若產品描述為空則帶入品號的描述,並帶入該品號的單位。
存檔前處理與驗證¶
- 存檔前:系統會把沒有填品號的明細列標記為刪除(不會存入空列)。
- 存檔驗證(任一不過就擋存):CIDocument No、CI 日期、製表日期、客戶代號皆不可為空。
尚未提供的延伸功能
目前 C# 版裝箱單的視窗本身沒有轉傳票、簽核工作流程或附件上傳按鈕。表頭雖保留「工作流程/審核人員/審核日期/已審核」等欄位,但本表單未提供對應的操作介面;列印則由系統共用的報表機制處理,本頁不另列印鈕。
常見問題¶
按了 Import 卻沒有任何明細帶進來?
請確認 CIDocument No 是有效的 CI 單號,且該 CI 確實有出貨明細。Import 查無資料時不會動作、也不會清空你已輸入的內容。另外 Import 只有在新增狀態才有效。
改了單價或數量,但 Total Amount 沒變?
金額由「單價 × 數量」算出並依幣別小數位數四捨五入。請確認該列的單價與數量都已輸入;若幣別尚未帶入(例如客戶代號還沒填),位數可能與預期不同。表頭總額會在明細金額變動時同步重算。
起始 / 截止箱號排得很亂?
箱號是依序號接力排的。請先確認各列序號正確、BeginningBoxNo(起始箱號)設好,再按 Order By Line No 讓系統從頭重排。手動改某列的起訖箱號只會影響該列的箱數,不會自動順延後面各列。
明明改了箱高寬長,材積(Volume)還是 0?
單箱材積=高 × 長 × 寬 × 35.3147,整列材積=單箱材積 × 箱數。若箱數為 0,整列材積就會是 0。請確認該列已有箱數。
想修改單據卻被擋下來,提示要刪除轉退稅出口報單?
表示這張裝箱單的轉退稅註記為 Y,已產生轉退稅出口報單。需先處理(刪除)對應的出口報單資料,才能回頭修改裝箱單。
為什麼會多出一列序號開頭是 A、標了「不足箱」?
那是 Import 時自動拆出的尾數列:當總數量無法剛好裝滿整數箱,系統把不滿一箱的剩餘量另立一列(序號加 A、不足箱=Y),並按比例換算這一箱的淨重/毛重,方便正確計箱與計重。
相關功能¶
- 商業發票 CI — 裝箱單的明細來源(同
cino) - 預估發票 PI — 對應的 PIDocument No
- 銷售訂單 ORMAST — 出貨流程上游
- 銷貨模組首頁
- 庫存模組 — 品號/單位主檔
- 跳到本頁 欄位連動與附加功能
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
pk-step1.png— 新增後的表頭與工具列(含 CIDocument No 與Import按鈕)pk-step2.png— 按Import帶入後的明細格線(含不足箱列)pk-step3.png— 調整 BeginningBoxNo / Prefix / Suffix 後按Order By Line No的箱號排列結果