T3_3_包裝物量.vb 詳細說明書

1. 概述

本程式為用以計算及管理出貨包裝物量所開發的 Visual Basic 表單應用程式。透過使用 EPPlus 函式庫與 Excel 檔案進行資料整合,並根據出貨資料計算各種包裝形態(箱裝出貨、貨櫃出貨、紙箱包裝)的容積與數量。

檔案名稱: T3_3_包裝物量.vb
類別名稱: T3_3出貨包裝物量From
主要函式庫: OfficeOpenXml (EPPlus)

2. 程式結構

2.1 使用函式庫

2.2 主要元件

元件 說明
表單 T3_3出貨包裝物量From
DataGridView 多個資料格顯示控制項
資料庫 Access Database (資料表: T200, TC10, TC20, TC30等)
Excel 出貨空間計算.xlsx, 出貨貨櫃規格.xlsx

3. 主要功能

3.1 出貨包裝計算功能

3.2 資料顯示功能

3.3 Excel 連動功能

4. 方法詳細說明

4.1 初始化・事件處理常式

方法名稱 說明 處理內容
空間計畫2A出貨包裝物量_Load 表單載入時 ・檔案確認
・版權、有效期限顯示
・設定指定出貨日
・各項資料顯示初始化
・讀取貨櫃規格與紙箱尺寸
出貨包裝物量計算Bt_Click_1 點擊計算按鈕時 ・以指定出貨日重新計算
・執行 TC10~TC30 處理程序
・更新資料網格
儲存Excel並關閉Bt_Click 儲存 Excel 並關閉時 將計算結果儲存至 Excel 檔案後結束表單

4.2 主要計算方法

方法名稱 輸入 處理內容 輸出
TC10_箱裝單位出貨容積 指定出貨日 ・自 T200 資料表擷取箱裝出貨資料
・依出貨地彙總
・算出總容積
TC10_箱裝單位出貨容積資料表
DataGridView 顯示
TC20_散裝單位出貨貨櫃容積 指定出貨日
貨櫃型號
裝填率
・擷取散裝出貨資料
・核對貨櫃規格
・計算所需貨櫃數
・算出貨櫃容積
TC20_散裝單位出貨貨櫃容積資料表
DataGridView 顯示
TC30_散裝單位全紙箱包裝數 指定出貨日 ・將散裝出貨容積分配至紙箱
・依紙箱尺寸計算數量
・考量裝填率並選定最佳尺寸
・支援複數紙箱計算
TC30_散裝單位全紙箱包裝數資料表
DataGridView 顯示
複數紙箱計算 容積(DD)
列號(i)
・算出 200 尺寸的紙箱個數
・將剩餘容積分配至適當尺寸
更新 DataGridView

4.3 資料顯示方法

方法名稱 處理內容
出貨資料容積換算Dgv顯示 ・箱裝出貨與散裝出貨的彙總顯示
・顯示包裝數量與容積
・3行×5列的網格配置
出貨包裝總計後容積Dgv顯示 ・顯示包裝後的最終容積
・貨櫃數、面積計算
・紙箱數彙總顯示
散裝出貨單位_紙箱彙總 ・依紙箱尺寸彙總
・橫計、容積計算顯示
・各尺寸容積計算(從郵局小包~200尺寸)
出貨包裝總計後出貨貨櫃計算 ・依貨櫃型號彙總
・貨櫃外部容積計算
・依據出貨資料區分進行處理分支

4.4 Excel 處理方法

方法名稱 處理內容
出貨貨櫃規格Dgv顯示 ・從 "出貨空間計算.xlsx" 讀取 "出貨貨櫃規格" 工作表
・顯示 31型、40型、51型、60型 的規格
紙箱尺寸表Dgv顯示 ・從 "出貨空間計算.xlsx" 讀取 "紙箱規格" 工作表
・顯示從郵局小包~200尺寸的規格
TC00_出貨貨櫃規格匯入 ・將 "出貨貨櫃規格.xlsx" 匯入至 Access 資料庫
・建立 TC00 資料表
Exsel建立 ・將 DataGridView 資料匯出至 Excel 檔案
・使用 EPPlus 函式庫
Excel匯入 ・將 Excel 檔案匯入至 Access 資料庫
・使用 Access.Application 物件

5. 資料流程

5.1 處理流程圖

主處理流程:
  1. 表單載入 → 讀取初始資料
  2. 設定指定出貨日
  3. TC10: 箱裝單位出貨容積計算
  4. TC20: 散裝單位貨櫃容積計算
  5. TC30: 紙箱包裝數計算
  6. 容積計算與彙總
  7. 更新 DataGridView 顯示
  8. 儲存為 Excel (選用)

5.2 資料來源

資料來源 格式 用途
T200資料表 Access Database 出貨資料(箱裝・散裝出貨資訊)
T210_指定出貨日 Access Database 出貨日資訊
TC00_出貨貨櫃規格 Access Database 貨櫃規格主檔
出貨空間計算.xlsx Excel 紙箱・貨櫃規格

6. 資料庫處理

6.1 使用資料表

資料表名稱 說明 主要欄位
T200 出貨基礎資料 出貨日, 出貨區分, 出貨地, C列, C容, B列, B容, G列, G容
T210_指定出貨日 指定出貨日 出貨日, 全出貨天數
TC00_出貨貨櫃規格 貨櫃規格 型號, 外寸W/D/H, 外寸容積/面積, 內寸W/D/H, 內寸容積
TC10_箱裝單位出貨容積 箱裝出貨彙總 出貨日, 出貨區分, 出貨地數, C箱, C容
TC20_散裝單位出貨貨櫃容積 貨櫃出貨彙總 出貨日, 出貨區分, 型號, 貨櫃數, 出貨貨櫃容積
TC30_散裝單位全紙箱包裝數 紙箱包裝彙總 出貨日, 出貨區分, B箱, B容, 紙箱裝填率, 郵局小包~200尺寸
TC40_散裝單位全出貨紙箱容積 紙箱容積中繼 建立 TC30 時所使用的中繼資料表
TB10系列資料表 彙總資料表群 依出貨日與出貨區分彙總的箱裝/散裝/全量資料

6.2 SQL 處理

主要的 SQL 處理模式:
  • CREATE VIEW - 建立查詢檢視(QC10*, QC20*, QC40*)
  • SELECT ... INTO - 建立彙總資料表(TC10, TC20, TB10*)
  • GROUP BY - 依出貨日、出貨區分、出貨地進行彙總
  • LEFT JOIN - 與貨櫃規格進行關聯(Join)
  • HAVING 子句 - 根據條件進行篩選

7. 計算邏輯

7.1 紙箱尺寸分配邏輯

紙箱裝填率: 0.9 (90%)
計算公式: DD = B容 ÷ 紙箱裝填率
紙箱尺寸 容積(m³) 分配條件
郵局小包 0.0018 DD ≤ 0.0018
60尺寸 0.008 0.0018 < DD ≤ 0.008
80尺寸 0.0189 0.008 < DD ≤ 0.0189
100尺寸 0.037 0.0189 < DD ≤ 0.037
120尺寸 0.064 0.037 < DD ≤ 0.064
140尺寸 0.1016 0.064 < DD ≤ 0.1016
160尺寸 0.1517 0.1016 < DD ≤ 0.1517
180尺寸 0.216 0.1517 < DD ≤ 0.216
200尺寸 0.2963 DD > 0.216 (複數個計算)

7.2 貨櫃計算邏輯

貨櫃數計算公式:
貨櫃數 = Int(B容 ÷ (貨櫃內寸容積 × 貨櫃裝填率) + 0.5)

貨櫃容積計算公式:
出貨貨櫃容積 = 貨櫃數 × 貨櫃外寸容積
貨櫃型號 外寸容積(m³) 備註
31型 0.043 小型貨櫃
40型 0.049 中型貨櫃
51型 0.063 大型貨櫃
60型 0.077 特大型貨櫃

7.3 複數紙箱計算

超過 200 尺寸時的處理方式:
  1. AA = Int(DD ÷ 0.2963) → 200 尺寸紙箱個數
  2. BB = DD - AA × 0.2963 → 剩餘容積
  3. 針對剩餘容積 BB 分配適當的紙箱尺寸

8. Excel 連動

8.1 讀取檔案

檔案名稱 工作表名稱 用途
出貨空間計算.xlsx 紙箱規格 紙箱尺寸主檔(9種類)
出貨空間計算.xlsx 出貨貨櫃規格 貨櫃型號主檔(4種類)
出貨貨櫃規格.xlsx 出貨貨櫃規格 用於資料庫匯入

8.2 輸出檔案

檔案名稱 工作表名稱 內容
空間計算.xlsx 出貨包裝物量 ・出貨包裝數量/容積
・全出貨天數、指定出貨日
・出貨包裝方式
・貨櫃型號、裝填率、數量、容積
・紙箱裝填率、數量
TC30_散裝單位全紙箱包裝數.xlsx Sheet1 紙箱包裝數的中繼資料

8.3 EPPlus 使用範例

' Excel 讀取
Dim fi As New IO.FileInfo(Dat儲存Path & "\SoftData\出貨空間計算.xlsx")
Using pkg As New ExcelPackage(fi)
    Dim sheet1 As ExcelWorksheet = pkg.Workbook.Worksheets("紙箱規格")
    For j = 1 To 10
        For i = 2 To 10
            MyDgv.Item(j - 1, i - 2).Value = sheet1.Cells(i, j).Value
        Next
    Next
End Using

' Excel 寫入
Dim MYFile As String = Dat儲存Path & "\SoftData\" & myExcel & ".xlsx"
Dim fi As IO.FileInfo = New IO.FileInfo(MYFile)
Using pkg As New ExcelPackage(fi)
    Dim sheet1 As ExcelWorksheet = pkg.Workbook.Worksheets.Add("Sheet1")
    For j = 0 To Maxj
        For i = 0 To Maxi
            sheet1.Cells(i + 2, j + 1).Value = MyDgv.Item(j, i).Value
        Next
    Next
    pkg.Save()
End Using

9. 補充資訊

9.1 出貨區分

9.2 畫面項目

9.3 注意事項

  • 紙箱裝填率固定設定為 0.9 (90%)
  • 貨櫃裝填率可由使用者設定
  • 處理流程會根據出貨區分而改變
  • Excel 處理需要使用 EPPlus 函式庫
  • 與 Access 連動需要 Access.Application 物件
  • 具備版權與有效期限的顯示功能

10. 總結

本程式是為自動化複雜出貨包裝計算所設計的全面性解決方案。具備以下特色:

目標使用者: 物流與出貨管理人員
預期用途: 每日出貨計畫、包裝耗材管理、空間最佳化