ファイル名: Tera計算_EIQ.vb
行数: 約2,479行
クラス名: tera計算4_参考EIQF
継承: Form (Windows Forms)
実装インターフェース: IDisposable(メモリー開放対応)
目的: 物流倉庫のEIQ分析(Entry-Item-Quantity分析)の詳細機能を提供
更新履歴: 2022年6月1日に「SQL によるEIQ分析VBNet」から「従来計算とEIQ詳細分析」へ名称変更
7つのタブ画面の切り替えと初期化を制御
分析設定データの更新・読込(ランク設定、単位設定など)
DataGridView表示、データ整形などの共通処理
Excelデータのインポートと基礎集計テーブルの作成
時系列グラフの描画と表示
Entry×Item の散布図可視化とランク分析
集計結果を表形式で詳細表示
出荷先×商品のクロス集計表示
特定条件でのデータフィルタリングと再分析
バラ出荷をコンテナ単位に換算
System.Data.OleDb - Access データベース接続System.Windows.Forms.DataVisualization.Charting - グラフ描画| メソッド名 | 説明 | 処理内容 |
|---|---|---|
tera計算EIQ_Load |
フォーム読込時の初期処理 |
・ファイル確認 ・全集計データの表示 ・EIQ散布図ランクデータの表示 ・Tera推奨設定の適用 |
| メソッド名 | タブIndex | 処理内容 |
|---|---|---|
EIQTc_SelectedIndexChanged |
Case 0 | EIQデータ作成タブ - データ作成済チェック |
| Case 1 | EIQ曲線図タブ - 曲線図描画済チェック | |
| Case 2 | EIQ散布図タブ - 散布図初期画面表示 | |
| Case 3 | EIQ表タブ - 表初期画面設定 | |
| Case 4 | EIQマトリクスタブ - マトリクス描画済チェック | |
| Case 5 | 条件抽出タブ - 抽出条件再設定 | |
| Case 6 | バラ出荷コンテナ換算タブ |
| メソッド名 | 種類 | 説明 |
|---|---|---|
My_DATA更新() |
Sub | 分析設定パラメータをMy_DATA1テーブルに保存 - データベース名、Excel名 - ランク設定(A1/A2/B/C/D) - ケース/バラ出荷対象設定 - 分析日指定 |
My_DATA読込() |
Sub | My_DATA1テーブルから設定を読込み、変数に格納 |
| メソッド名 | パラメータ | 説明 |
|---|---|---|
EIQ_Dgv表示 |
Dgv名, MySQL, MyTable | SQLクエリ結果をDataGridViewに表示 - OleDbDataAdapterでデータ取得 - 列幅、行高さの自動調整 - 数値フォーマット自動設定 |
Dgv整形 |
Dgv名 | DataGridViewの書式設定 - 数値の桁数判定と右揃え - 小数点以下の桁数自動調整(n0~n6) - 文字列は左揃え |
DGV列行確保 |
Dgv名, 列数Max, 行数Max | 大量データ表示用の列・行確保 ※FillWeight制限対応(65535上限) |
| テーブル名 | 説明 | データ元 |
|---|---|---|
T000_出荷データ |
Excelからインポートした生データ | 出荷データ.xlsx / Sheet1 |
My_DATA1 |
分析設定パラメータテーブル | ユーザー設定 |
| テーブル名 | 説明 | 集計内容 |
|---|---|---|
T130_全出荷集計 |
全期間の総合集計 | 全データの合計値 |
T230_日別集計 |
日別集計データ | 出荷日ごとの集計 |
T610_EIQ表ケース単位出荷 |
ケース出荷のEIQ表データ | Entry × Item のマトリクス |
T620_EIQ表バラ単位出荷 |
バラ出荷のEIQ表データ | Entry × Item のマトリクス |
T670_EIQ散布図ランクData |
散布図用ランク付けデータ | A1/A2/B/C/Dランク分類 |
ファイル確認() - Tera計算Dataフォルダの存在確認
My_DATA読込() - 前回の分析設定を復元
EIQ_tera推奨設定() - ランク比率などの初期値設定
EIQデータ作成() - Access マクロ実行でテーブル作成
| 出荷分類 | UI制御 | 変数値 | CRK/BRK記号 | 説明 |
|---|---|---|---|---|
| ケース出荷 | EIQ_ケース出荷行数Rb |
C行 | C行 | ケース出荷の伝票行数 |
EIQ_ケース出荷バラ数Rb |
Cバ | Cバ | ケースをバラに換算した個数 | |
EIQ_ケース出荷ケース数Rb |
Cケ | Cケ | ケース出荷のケース数 | |
EIQ_ケース出荷PL数Rb |
CPL | CPL | ケースをパレット換算 | |
EIQ_ケース出荷容積Rb |
C容 | C容 | ケース出荷の総容積(m³) | |
EIQ_ケース出荷重量Rb |
C重 | C重 | ケース出荷の総重量(kg) | |
| バラ出荷 | EIQ_バラ出荷行数Rb |
B行 | B行 | バラ出荷の伝票行数 |
EIQ_バラ出荷バラ数Rb |
Bバ | Bバ | バラ個数 | |
EIQ_バラ出荷ケース数Rb |
Bケ | Bケ | バラをケース換算 | |
EIQ_バラ出荷PL数Rb |
BPL | BPL | バラをパレット換算 | |
EIQ_バラ出荷容積Rb |
B容 | B容 | バラ出荷の総容積(m³) |
Public Class tera計算4_参考EIQF Implements IDisposableGC.Collect() および GC.WaitForPendingFinalizers() により、大量DataGridView描画後のメモリーリークを防止。Provider=Microsoft.ACE.OLEDB.12.0;Data Source={MyDB}| エラー症状 | 原因 | 対処法 |
|---|---|---|
| FillWeight 65535超過 | DataGridViewの列が多すぎる | FillWeight=10に固定設定 |
| ランク設定確認エラー | ランク合計が100%でない | 設定値を100%に修正してから実行 |
| データベース接続エラー | accdbファイルが開いている | Accessを閉じてから実行 |
| メモリー不足 | 大量データの連続処理 | GC.Collect()でメモリー解放 |