■概要 01
・ボタン、「北陸」013370「首都圏」013371 に対応したデータを作成。
private void CreateNounyuuCode_And_Hinbann() {
GlOpenHelper helper_select = new GlOpenHelper(getApplicationContext());
SQLiteDatabase db_select = helper_select.getReadableDatabase();
String[] arr_item = new String[3];
//---- リストを空にする
NounyuuSakiCode_And_Hinbann_HashMap.clear();
int num = 0;
//------------- スピナー アイテム取得
try {
Cursor cursor = db_select.rawQuery("SELECT Master_column_01,Master_column_10,Master_column_06 " +
"FROM Master_table WHERE Master_column_01 = '013370' OR " +
"Master_column_01 = '013371' ORDER BY Master_column_01;", null);
int index = 1;
while (cursor.moveToNext()) {
//------- 9
int idx = cursor.getColumnIndex("Master_column_01");
arr_item[0] = cursor.getString(idx);
idx = cursor.getColumnIndex("Master_column_10");
arr_item[1] = cursor.getString(idx);
idx = cursor.getColumnIndex("Master_column_06");
arr_item[2] = cursor.getString(idx);
System.out.println("ハッシュマップテスト:::" + String.valueOf(index) + arr_item[0] + ":" + arr_item[1] + ":" + arr_item[2]);
// 比較用にハッシュマップに挿入
if (!NounyuuSakiCode_And_Hinbann_HashMap.containsKey(arr_item[0])) {
// キーが存在しない場合は新しいリストを作成
NounyuuSakiCode_And_Hinbann_HashMap.put(arr_item[0], new ArrayList<>());
}
// リストに品番を追加
NounyuuSakiCode_And_Hinbann_HashMap.get(arr_item[0]).add(arr_item[1]);
NounyuuSakiCode_And_Hinbann_HashMap.get(arr_item[0]).add(arr_item[2]);
num++;
index++;
} //-------- while END
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (db_select != null) {
db_select.close();
}
}
} // ================== CreateNounyuuCode_And_Hinbann END
■ 概要 02
・QR の読取りで、「北陸」013370「首都圏」013371 番号と照合を掛けて、その中で一致したものを、 NounyuuSakiCode_And_Hinbann_HashMap.get(arr_item[0]).add(arr_item[1]);で照合をかけ、一致したデータの、
NounyuuSakiCode_And_Hinbann_HashMap.get(arr_item[0]).add(arr_item[2]);を表示させる。
private void HanteiHinbanHashMap(HashMap<String, List<String>> map, String NounyuuSakiCode,String HinBan) {
boolean ErrFlg = false;
String firstElement = "";
String secondElement = "";
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
String key = entry.getKey();
// === 納入先コードの指定
if (key.equals(NounyuuSakiCode)) {
List<String> values = entry.getValue();
// 品番が一致するか確認
for (int i = 0; i < values.size(); i += 2) {
String hinban = values.get(i); // 1つ目の品番
String suuryou = (i + 1 < values.size()) ? values.get(i + 1) : ""; // 2つ目の数量
if (hinban.equals(HinBan)) {
// ラベルスキャン表示
laveru_scan_text.setText(HinBan);
HinbanInit = HinBan;
System.out.println("比較OK 含まれている:::key:::" + key + ":::val:::" + hinban);
// === 数量(arr_item[2])を出力
System.out.println("対応する数量(arr_item[2]): " + suuryou);
syukka_suuryou_text.setText(suuryou);
ErrFlg = true;
break;
} else {
System.out.println("比較NG 含まれていない:::key:::" + key + ":::品番:::" + hinban);
ErrFlg = false;
}
}
}
}
// ========= エラー判定 =========
if(ErrFlg ) {
} else {
// エラーで戻す ***(エラー処理クラスでここ用の functionを作った方が良い)
CustomDialog Erro_dialog_data_ScanData = new CustomDialog(SecondActivity.this);
Erro_dialog_data_ScanData.showDialog_Error(
"品番エラー",
"品番の商品がありません。",
"閉じる"
);
}
} // =============================== HanteiHinbanHashMap END