通勤認定エクセルツール対応11

This commit is contained in:
guanxiangwei
2026-05-26 19:00:23 +09:00
parent 6af0ff404c
commit 85707853e6
9 changed files with 315 additions and 138 deletions

View File

@@ -1,41 +1,46 @@
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 1, '職員番号', 'CSHAINNO', TRUE, 'CHAR', 8, NULL, FALSE, FALSE, '', TRUE, NULL, '', FALSE, FALSE, 'updsv7'); DELETE FROM sh_csv_item_definition WHERE CODE = 'TUK';
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 2, '事実発生年月日', 'DJJ_HA_DTE', TRUE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 1, '職員番号', '', TRUE, 'CHAR', 8, NULL, FALSE, FALSE, '', TRUE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 3, '提出年月日', 'DTEISHUTU_DTE', FALSE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 2, '事実発生年月日', '', TRUE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 4, '受理年月日', 'DJURI_DTE', FALSE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 3, '提出年月日', '', FALSE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 5, '届出の事由コード', 'TUKIN_TODOKE_CDE', TRUE, 'MASTER', 2, NULL, FALSE, FALSE, '', TRUE, NULL, '220', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 4, '受理年月日', '', FALSE, 'DATE', NULL, NULL, FALSE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 6, '届出の備考', 'TODOKE_BIKO_NME', FALSE, 'VARCHAR', 40, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 5, '届出の事由コード', '', TRUE, 'MASTER', 2, NULL, FALSE, FALSE, '', TRUE, NULL, '220', FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 7, '住所1', 'ADRESS1_NME', FALSE, 'VARCHAR', 60, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 6, '届出の備考', '', FALSE, 'VARCHAR', 40, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 8, '住所', 'ADRESS2_NME', FALSE, 'VARCHAR', 40, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 7, '住所', '', FALSE, 'VARCHAR', 60, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 9, '運賃改正・法改正年月日', 'DKAISEI_DTE', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 8, '住所2', '', FALSE, 'VARCHAR', 40, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 10, '出勤予定日数', 'SYUKIN_DATE_NUM', FALSE, 'NUMBER', 2, NULL, FALSE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 9, '運賃改正・法改正年月日', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 11, '往復区分', 'OUFUKU_KBN', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{1,2}', '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 10, '出勤予定日数', '', FALSE, 'NUMBER', 2, NULL, FALSE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 12, '交替制', 'KOTAISEI_CDE', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{0,1}', '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 11, '往復区分', '', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{1, 2}', NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 13, '算出式', 'SANSYUTU_SIKI', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 12, '交替制', '', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{0, 1}', NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 14, '自動車等使用距離', 'CAR_NUM', FALSE, 'NUMBER', 4, 1, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 13, '算出式', '', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 15, '自動車等支給額', 'CAR_SHIKYU_NUM', FALSE, 'NUMBER', 6, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 14, '自動車等使用距離', '', FALSE, 'NUMBER', 3, 1, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 16, '自動車等駐車場代', '', FALSE, 'NUMBER', 6, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 15, '自動車等支給額', '', FALSE, 'NUMBER', 6, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 17, '区間1区間コード', 'KUKAN', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 16, '自動車等駐車場代', '', FALSE, 'NUMBER', 6, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 18, '区間1券種', 'KENSHU_1', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0,1,2,3}', '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 17, '区間1区間コード', '', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 19, '区間1コード', 'KAN_CDE', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 18, '区間1券種', '', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0, 1, 2, 3}', NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 20, '区間1支給開始年月', 'KUKAN', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 19, '区間1コード', '', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 21, '区間2区間コード', 'KUKAN', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 20, '区間1定期支給期間', '', FALSE, 'NUMBER', 2, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 22, '区間2券種', 'KENSHU_2', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0,1,2,3}', '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 21, '区間1支給開始年月', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 23, '区間2コード', 'KAN_CDE', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 22, '区間2区間コード', '', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 24, '区間2支給開始年月', 'KUKAN', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 23, '区間2券種', '', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0, 1, 2, 3}', NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 25, '区間3区間コード', 'KUKAN', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 24, '区間2コード', '', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 26, '区間3券種', 'KENSHU_3', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0,1,2,3}', '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 25, '区間2定期支給期間', '', FALSE, 'NUMBER', 2, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 27, '区間3コード', 'KAN_CDE', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 26, '区間2支給開始年月', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 28, '区間3支給開始年月', 'KUKAN', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 27, '区間3区間コード', '', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 29, '区間4区間コード', 'KUKAN', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 28, '区間3券種', '', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0, 1, 2, 3}', NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 30, '区間4券種', 'KENSHU_4', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0,1,2,3}', '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 29, '区間3コード', '', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 31, '区間4コード', 'KAN_CDE', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 30, '区間3定期支給期間', '', FALSE, 'NUMBER', 2, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 32, '区間4支給開始年月', 'KUKAN', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, TRUE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 31, '区間3支給開始年月', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 33, '決定事項区分コード', 'KETTEI_CDE', FALSE, 'MASTER', 1, NULL, TRUE, FALSE, '', TRUE, NULL, '223', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 32, '区間4区間コード', '', FALSE, 'NUMBER', 5, NULL, TRUE, FALSE, '', TRUE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 34, '非該当の理由', 'HIGAITO_NME', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 33, '区間4券種', '', FALSE, 'ENUM', 1, NULL, TRUE, FALSE, '', TRUE, '{0, 1, 2, 3}', NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 35, '非該当者認定簿出力区分', 'HIGAITO_KBN', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{1,2}', '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 34, '区間4コード', '', FALSE, 'CHAR', 3, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 36, '手当月額の決定区分コード', 'GETSUGAKU_CDE', FALSE, 'MASTER', 2, NULL, TRUE, FALSE, '', TRUE, NULL, '224', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 35, '区間4定期支給期間', '', FALSE, 'NUMBER', 2, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 37, '支給の始期', 'DNINTEI_DTE', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 36, '区間4支給開始年月', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, TRUE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 38, '備考', 'TSUKIN_BIKO_NME', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 37, '決定事項区分コード', '', FALSE, 'MASTER', 1, NULL, TRUE, FALSE, '', TRUE, NULL, '223', FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 39, '所属コード', 'SZK_CDE', FALSE, 'VARCHAR', 10, NULL, TRUE, TRUE, '', FALSE, NULL, '', FALSE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 38, '非該当の理由', '', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 40, '認定年月日', 'DNINTEI_DTE', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, '', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 39, '非該当者認定簿出力区分', '', FALSE, 'ENUM', 1, NULL, FALSE, FALSE, '', TRUE, '{1, 2}', NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO sh_csv_item_definition (code, item_seq, item_title, item_name, is_duplicate_check_key, data_type, precision, scale, nullable, enable_format_check, format_regex, enable_exist_check, allowed_values, master_sybt, enable_relation_check, json_ignore, cmnuser) VALUES ('TUK', 41, '(各庁の長)官職コード', 'KANSHOKU_CDE', FALSE, 'MASTER', 3, NULL, TRUE, FALSE, '', TRUE, NULL, '507', TRUE, FALSE, 'updsv7'); INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 40, '手当月額の決定区分コード', '', FALSE, 'MASTER', 2, NULL, TRUE, FALSE, '', TRUE, NULL, '224', FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 41, '支給の始期', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 42, '備考', '', FALSE, 'VARCHAR', 80, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 43, '所属コード', '', FALSE, 'VARCHAR', 10, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, FALSE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 44, '認定年月日', '', FALSE, 'DATE', NULL, NULL, TRUE, TRUE, '', FALSE, NULL, NULL, TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);
INSERT INTO SH_CSV_ITEM_DEFINITION VALUES ('TUK', 45, '(各庁の長)官職コード', '', FALSE, 'MASTER', 3, NULL, TRUE, FALSE, '', TRUE, NULL, '507', TRUE, FALSE, 'updsv7', CURRENT_TIMESTAMP);

View File

@@ -162,6 +162,7 @@ Private Function GenerateSqlForRow(ws As Worksheet, rowNum As Long, codePrefix A
nums = Trim(Left(nums, InStr(nums, ")") - 1)) nums = Trim(Left(nums, InStr(nums, ")") - 1))
precision = nums precision = nums
If InStr(UCase(dataType), "NUMBER") > 0 And InStr(nums, ",") > 0 Then If InStr(UCase(dataType), "NUMBER") > 0 And InStr(nums, ",") > 0 Then
precision = Trim(Mid(nums, 1, InStr(nums, ",") - 1))
vScale = Trim(Mid(nums, InStr(nums, ",") + 1)) vScale = Trim(Mid(nums, InStr(nums, ",") + 1))
End If End If
End If End If

View File

@@ -152,11 +152,12 @@ Private Function LookupM2Cache() As Object
Dim r As Long Dim r As Long
For r = startRow To lastRow For r = startRow To lastRow
Dim kukanCode As String: kukanCode = Trim(ws.Cells(r, 3).Value) ' C column Dim kukanCode As String: kukanCode = Trim(ws.Cells(r, 3).Value) ' C column
Dim kanshu As String: kanshu = Trim(ws.Cells(r, 9).Value) ' I column Dim kenshu As String: kenshu = Trim(ws.Cells(r, 9).Value) ' I column
Dim code As String: code = Trim(ws.Cells(r, 10).Value) ' J column Dim code As String: code = Trim(ws.Cells(r, 10).Value) ' J column
Dim name As String: name = Trim(ws.Cells(r, 11).Value) ' K column Dim name As String: name = Trim(ws.Cells(r, 11).Value) ' K column
Dim teikikikanNum As String: teikikikanNum = Trim(ws.Cells(r, 14).Value) ' N column
If kukanCode = "" Or kanshu = "" Or code = "" Then GoTo NextRow If kukanCode = "" Or kenshu = "" Or code = "" Then GoTo NextRow
' Outer level: kukanCode ' Outer level: kukanCode
If Not resultCache.Exists(kukanCode) Then If Not resultCache.Exists(kukanCode) Then
@@ -164,17 +165,28 @@ Private Function LookupM2Cache() As Object
resultCache.Add kukanCode, innerDict resultCache.Add kukanCode, innerDict
End If End If
' Middle level: kanshu ' Middle level: kenshu
Set innerDict = resultCache(kukanCode) Set innerDict = resultCache(kukanCode)
If Not innerDict.Exists(kanshu) Then If Not innerDict.Exists(kenshu) Then
Dim innermostDict As Object: Set innermostDict = CreateObject("Scripting.Dictionary") Dim innermostDict As Object: Set innermostDict = CreateObject("Scripting.Dictionary")
innerDict.Add kanshu, innermostDict innerDict.Add kenshu, innermostDict
End If End If
' Inner level: code -> name ' Inner level: code -> {name, teikikikanNumList}
Set innermostDict = innerDict(kanshu) Set innermostDict = innerDict(kenshu)
Dim infoDict As Object
If Not innermostDict.Exists(code) Then If Not innermostDict.Exists(code) Then
innermostDict.Add code, name Set infoDict = CreateObject("Scripting.Dictionary")
infoDict.Add "name", name
infoDict.Add "teikikikanNum", Array(teikikikanNum)
innermostDict.Add code, infoDict
Else
' Already exists, add teikikikanNum to the list
Set infoDict = innermostDict(code)
Dim oldList As Variant: oldList = infoDict("teikikikanNum")
ReDim Preserve oldList(UBound(oldList) + 1)
oldList(UBound(oldList)) = teikikikanNum
infoDict("teikikikanNum") = oldList
End If End If
NextRow: NextRow:
@@ -274,7 +286,7 @@ Private Sub RefreshSheetDict()
sheetConf("CSV_Encoding") = "shift_jis" sheetConf("CSV_Encoding") = "shift_jis"
sheetConf("HasHeader") = True sheetConf("HasHeader") = True
sheetConf("ExpectedColumnCount") = 41 sheetConf("ExpectedColumnCount") = 41
sheetConf("HeaderColumns") = Array("C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "W", "X", "Y", "Z", "AD", "AE", "AF", "AG", "AK", "AL", "AM", "AN", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC") sheetConf("HeaderColumns") = Array("C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "W", "X", "Y", "Z", "AA", "AE", "AF", "AG", "AH", "AI", "AM", "AN", "AO", "AP", "AQ", "AU", "AV", "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG")
sheetConf("AlwaysQuote") = False sheetConf("AlwaysQuote") = False
sheetConf("FilterRow") = 7 sheetConf("FilterRow") = 7
Set sheetConfDict("C1") = sheetConf Set sheetConfDict("C1") = sheetConf

View File

@@ -10,7 +10,6 @@ Option Explicit
' - BuildKoutaiList ' - BuildKoutaiList
' - BuildKetteiList ' - BuildKetteiList
' - BuildHigaitouList ' - BuildHigaitouList
' - BuildMonthAmountKbnList
' - BuildKanshokuList ' - BuildKanshokuList
' - BuildKenshuList ' - BuildKenshuList
' ============================================================ ' ============================================================
@@ -127,24 +126,6 @@ Public Function BuildHigaitouList()
BuildHigaitouList = dropdownList BuildHigaitouList = dropdownList
End Function End Function
' Create MonthAmountKbn (AX) dropdown
Public Function BuildMonthAmountKbnList()
Dim z3Cache As Object: Set z3Cache = GetCache("Z3")
Dim dropdownList As String
Dim key As Variant
For Each key In z3Cache.Keys
Dim displayText As String
displayText = MakeSelect(key, z3Cache(key)(0))
If dropdownList = "" Then
dropdownList = displayText
Else
dropdownList = dropdownList & "," & displayText
End If
Next key
BuildMonthAmountKbnList = dropdownList
End Function
' Create Kanshoku (BC) dropdown ' Create Kanshoku (BC) dropdown
Public Function BuildKanshokuList() Public Function BuildKanshokuList()
Dim o2Cache As Object: Set o2Cache = GetCache("O2") Dim o2Cache As Object: Set o2Cache = GetCache("O2")

View File

@@ -0,0 +1,51 @@
Attribute VB_Name = "Common_Shape"
Option Explicit
' ================= 通用排版引擎(仅调整位置) =================
Public Sub AlignIconsByCenter(sheetName As String, anchorAddr As String, _
iconArr As Variant, gapPt As Double)
Dim ws As Worksheet
Dim anchor As Range
Dim shp As Shape
Dim i As Long
Dim shapeCount As Long
On Error Resume Next
Set ws = ThisWorkbook.Worksheets(sheetName)
On Error GoTo 0
If ws Is Nothing Then Exit Sub
Set anchor = ws.Range(anchorAddr)
shapeCount = UBound(iconArr) - LBound(iconArr) + 1
' 第一个图标左边对齐B3左边
Dim curX As Double: curX = anchor.Left
Dim prevX As Double: prevX = 0
Dim cy As Double: cy = anchor.Top + anchor.Height / 2
Application.ScreenUpdating = False
For i = LBound(iconArr) To UBound(iconArr)
Set shp = ws.Shapes(iconArr(i))
shp.Placement = xlFreeFloating
shp.Left = curX
shp.Top = cy - shp.Height / 2
If i = LBound(iconArr) Then
Debug.Print iconArr(i) & ": left=" & curX & ", width=" & shp.Width
Else
Debug.Print iconArr(i) & ": left=" & curX & ", gap=" & (curX - prevX) & ", width=" & shp.Width
End If
prevX = curX + shp.Width
curX = curX + shp.Width + gapPt
Next i
Application.ScreenUpdating = True
End Sub
' ================= 你的专属调用入口 =================
Sub RunAlignForMySheet()
AlignIconsByCenter _
sheetName:="M1", _
anchorAddr:="B3", _
iconArr:=Array("input", "check", "output", "sort", "filter", "fit", "load"), _
gapPt:=10
End Sub

View File

@@ -21,37 +21,42 @@
Const CSHAINNO_COL As String = "C" Const CSHAINNO_COL As String = "C"
Const ADDRESS1_COL As String = "I" Const ADDRESS1_COL As String = "I"
Const ADDRESS2_COL As String = "J" Const ADDRESS2_COL As String = "J"
Const MMONTH_AMOUNT_KBN_COL As String = "BB"
Private Function KUKAN_CODE_COLS() As Variant Private Function KUKAN_CODE_COLS() As Variant
KUKAN_CODE_COLS = Array(19, 26, 33, 40) ' S, Z, AG, AN KUKAN_CODE_COLS = Array(19, 27, 35, 43) ' S, AA, AI, AQ
End Function End Function
Private Function KUKAN_TRANSPORT_COLS() As Variant Private Function KUKAN_TRANSPORT_COLS() As Variant
KUKAN_TRANSPORT_COLS = Array(20, 27, 34, 41) ' T, AA, AH, AO KUKAN_TRANSPORT_COLS = Array(20, 28, 36, 44) ' T, AB, AJ, AR
End Function End Function
Private Function KUKAN_STATION_COLS() As Variant Private Function KUKAN_STATION_COLS() As Variant
KUKAN_STATION_COLS = Array(21, 28, 35, 42) ' U, AB, AI, AP KUKAN_STATION_COLS = Array(21, 29, 37, 45) ' U, AC, AK, AS
End Function End Function
Private Function KUKAN_ARRIVAL_COLS() As Variant Private Function KUKAN_ARRIVAL_COLS() As Variant
KUKAN_ARRIVAL_COLS = Array(22, 29, 36, 43) ' V, AC, AJ, AQ KUKAN_ARRIVAL_COLS = Array(22, 30, 38, 46) ' V, AD, AL, AT
End Function End Function
Private Function KUKAN_TICKET_COLS() As Variant Private Function KUKAN_TICKET_COLS() As Variant
KUKAN_TICKET_COLS = Array(23, 30, 37, 44) ' W, AD, AK, AR KUKAN_TICKET_COLS = Array(23, 31, 39, 47) ' W, AE, AM, AU
End Function End Function
Private Function KUKAN_CODE2_COLS() As Variant Private Function KUKAN_CODE2_COLS() As Variant
KUKAN_CODE2_COLS = Array(24, 31, 38, 45) ' X, AE, AL, AS KUKAN_CODE2_COLS = Array(24, 32, 40, 48) ' X, AF, AN, AV
End Function
Private Function KUKAN_TEIKI_COLS() As Variant
KUKAN_TEIKI_COLS = Array(25, 33, 41, 49) ' Y, AG, AO, AW
End Function End Function
Private Function KUKAN_START_DAY_COLS() As Variant Private Function KUKAN_START_DAY_COLS() As Variant
KUKAN_START_DAY_COLS = Array(25, 32, 39, 46) ' Y, AF, AM, AT KUKAN_START_DAY_COLS = Array(26, 34, 42, 50) ' Z, AH, AP, AX
End Function End Function
Private Function DATE_COLS() As Variant Private Function DATE_COLS() As Variant
DATE_COLS = Array(4, 5, 6, 25, 32, 39, 46, 51, 54) ' D, E, F, Y, AF, AM, AT, AY, BB DATE_COLS = Array(4, 5, 6, 26, 34, 42, 50, 56, 59) ' D, E, F, Z, AH, AP, AX, BC, BF
End Function End Function
Private Function NUMBER_COLS() As Variant Private Function NUMBER_COLS() As Variant
@@ -89,11 +94,10 @@ Private Sub Worksheet_Change(ByVal Target As Range)
.Columns("F"), _ .Columns("F"), _
.Columns("G"), _ .Columns("G"), _
.Columns("I"), _ .Columns("I"), _
.Columns("S:W"), _ .Columns("S:X"), _
.Columns("Z:AD"), _ .Columns("AA:AF"), _
.Columns("AG:AK"), _ .Columns("AI:AN"), _
.Columns("AN:AR"), _ .Columns("AQ:AV") _
.Columns("BB") _
) )
End With End With
Dim intersectRng As Range: Set intersectRng = Application.Intersect(Target, watchArea) Dim intersectRng As Range: Set intersectRng = Application.Intersect(Target, watchArea)
@@ -167,7 +171,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Next Next
End If End If
' === Transport column changes (T, AA, AH, AO) === ' === Transport column changes (T, AB, AJ, AR) ===
idx = GetIdx(Target.Column, KUKAN_TRANSPORT_COLS) idx = GetIdx(Target.Column, KUKAN_TRANSPORT_COLS)
If idx >= 0 Then If idx >= 0 Then
Dim cellT As Range Dim cellT As Range
@@ -180,7 +184,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Next Next
End If End If
' === Station column changes (U, AB, AI, AP) === ' === Station column changes (U, AC, AK, AS) ===
idx = GetIdx(Target.Column, KUKAN_STATION_COLS) idx = GetIdx(Target.Column, KUKAN_STATION_COLS)
If idx >= 0 Then If idx >= 0 Then
Dim cellU As Range Dim cellU As Range
@@ -193,7 +197,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Next Next
End If End If
' === Arrival column changes (V, AC, AJ, AQ) === ' === Arrival column changes (V, AD, AL, AT) ===
idx = GetIdx(Target.Column, KUKAN_ARRIVAL_COLS) idx = GetIdx(Target.Column, KUKAN_ARRIVAL_COLS)
If idx >= 0 Then If idx >= 0 Then
Dim cellV As Range Dim cellV As Range
@@ -210,7 +214,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Next Next
End If End If
' === Kukan code column changes (S, Z, AG, AN) === ' === Kukan code column changes (S, AA, AI, AQ) ===
idx = GetIdx(Target.Column, KUKAN_CODE_COLS) idx = GetIdx(Target.Column, KUKAN_CODE_COLS)
If idx >= 0 Then If idx >= 0 Then
Dim cellK As Range Dim cellK As Range
@@ -219,7 +223,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Next Next
End If End If
' === Ticket column changes (W, AD, AK, AR) === ' === Ticket column changes (W, AE, AM, AU) ===
idx = GetIdx(Target.Column, KUKAN_TICKET_COLS) idx = GetIdx(Target.Column, KUKAN_TICKET_COLS)
If idx >= 0 Then If idx >= 0 Then
Dim cellTi As Range Dim cellTi As Range
@@ -228,7 +232,22 @@ Private Sub Worksheet_Change(ByVal Target As Range)
Dim code2Col As Long: code2Col = KUKAN_CODE2_COLS(idx) Dim code2Col As Long: code2Col = KUKAN_CODE2_COLS(idx)
Me.Cells(cellTi.Row, code2Col).ClearContents Me.Cells(cellTi.Row, code2Col).ClearContents
Me.Cells(cellTi.Row, code2Col).Validation.Delete Me.Cells(cellTi.Row, code2Col).Validation.Delete
Call CreateM2CodeDropdown(cellTi.Row, KUKAN_CODE_COLS(idx), KUKAN_TICKET_COLS(idx), code2Col) ' Also clear teiki column
Dim teikiCol As Long: teikiCol = KUKAN_TEIKI_COLS(idx)
Me.Cells(cellTi.Row, teikiCol).ClearContents
Me.Cells(cellTi.Row, teikiCol).Validation.Delete
Call BuildM2CodeDropdown(cellTi.Row, KUKAN_CODE_COLS(idx), KUKAN_TICKET_COLS(idx), code2Col)
Next
End If
' === Code2 column changes (X, AF, AN, AV) ===
idx = GetIdx(Target.Column, KUKAN_CODE2_COLS)
If idx >= 0 Then
Dim cellCode2 As Range
For Each cellCode2 In Target
If Trim(cellCode2.Value) <> "" Then
Call CreateTeikiDropdown(cellCode2.Row, idx)
End If
Next Next
End If End If
@@ -266,7 +285,22 @@ Private Sub Refresh(ws As Worksheet, ByVal startRow As Long, ByVal lastDataRow A
Call BuildAddress2Dropdown(r, cshainno) Call BuildAddress2Dropdown(r, cshainno)
Call ReFillAddress2(r, cshainno) Call ReFillAddress2(r, cshainno)
Call RebuildDropdowns(r) Call RebuildDropdowns(r)
Call ReFillFromDropdowns(r) Call ReFillFromDropdowns(r)
' Refresh teiki dropdowns for all 4 sections
Dim idx As Long
For idx = 0 To 3
Dim kukanCode As String: kukanCode = Trim(Me.Cells(r, KUKAN_CODE_COLS(idx)).Value)
Dim kenshu As String: kenshu = GetCode(Trim(Me.Cells(r, KUKAN_TICKET_COLS(idx)).Value))
Dim code As String: code = GetCode(Trim(Me.Cells(r, KUKAN_CODE2_COLS(idx)).Value))
Call BuildM2CodeDropdown(r, KUKAN_CODE_COLS(idx), KUKAN_TICKET_COLS(idx), KUKAN_CODE2_COLS(idx))
Call ReFillM2CodeDropdown(r, KUKAN_CODE_COLS(idx), KUKAN_TICKET_COLS(idx), KUKAN_CODE2_COLS(idx))
If kukanCode <> "" And kenshu <> "" And code <> "" Then
Dim teikiColIndex As Long: teikiColIndex = KUKAN_TEIKI_COLS(idx)
Call BuildTeikiDropdown(r, kukanCode, kenshu, code, ColLetter(teikiColIndex))
End If
Next idx
Next r Next r
Application.EnableEvents = True Application.EnableEvents = True
@@ -281,16 +315,15 @@ Private Sub RebuildDropdowns(ByVal rowNum As Long)
Dim dropdowns As Variant Dim dropdowns As Variant
dropdowns = Array( _ dropdowns = Array( _
Array("T", "BuildTransportList"), _ Array("T", "BuildTransportList"), _
Array("AA", "BuildTransportList"), _ Array("AB", "BuildTransportList"), _
Array("AH", "BuildTransportList"), _ Array("AJ", "BuildTransportList"), _
Array("AO", "BuildTransportList"), _ Array("AR", "BuildTransportList"), _
Array("G", "BuildTodokeList"), _ Array("G", "BuildTodokeList"), _
Array("M", "BuildOufukuList"), _ Array("M", "BuildOufukuList"), _
Array("N", "BuildKoutaiList"), _ Array("N", "BuildKoutaiList"), _
Array("AU", "BuildKetteiList"), _ Array("AY", "BuildKetteiList"), _
Array("AW", "BuildHigaitouList"), _ Array("BA", "BuildHigaitouList"), _
Array("AX", "BuildMonthAmountKbnList"), _ Array("BG", "BuildKanshokuList") _
Array("BC", "BuildKanshokuList") _
) )
Dim i As Long Dim i As Long
@@ -302,22 +335,32 @@ Private Sub RebuildDropdowns(ByVal rowNum As Long)
.InCellDropdown = True .InCellDropdown = True
End With End With
Next i Next i
Call BuildDropdownFromCacheNamedRange(Me, MMONTH_AMOUNT_KBN_COL, rowNum, "Z3")
End Sub End Sub
Private Sub ReFillFromDropdowns(ByVal rowNum As Long) Private Sub ReFillFromDropdowns(ByVal rowNum As Long)
Dim z3Cache As Object: Set z3Cache = GetCache("Z3")
Dim valueStrMonthAmountKbn As String: valueStrMonthAmountKbn = Trim(Me.Cells(rowNum, MMONTH_AMOUNT_KBN_COL).Value)
Dim monthAmountKbn As String: monthAmountKbn = GetCode(valueStrMonthAmountKbn)
If z3Cache.Exists(monthAmountKbn) Then
Me.Cells(rowNum, MMONTH_AMOUNT_KBN_COL).Value = MakeSelect(monthAmountKbn, z3Cache(monthAmountKbn)(0))
End If
Dim dropdowns As Variant Dim dropdowns As Variant
dropdowns = Array( _ dropdowns = Array( _
Array("T", "BuildTransportList"), _ Array("T", "BuildTransportList"), _
Array("AA", "BuildTransportList"), _ Array("AB", "BuildTransportList"), _
Array("AH", "BuildTransportList"), _ Array("AJ", "BuildTransportList"), _
Array("AO", "BuildTransportList"), _ Array("AR", "BuildTransportList"), _
Array("G", "BuildTodokeList"), _ Array("G", "BuildTodokeList"), _
Array("M", "BuildOufukuList"), _ Array("M", "BuildOufukuList"), _
Array("N", "BuildKoutaiList"), _ Array("N", "BuildKoutaiList"), _
Array("AU", "BuildKetteiList"), _ Array("AY", "BuildKetteiList"), _
Array("AW", "BuildHigaitouList"), _ Array("BA", "BuildHigaitouList"), _
Array("AX", "BuildMonthAmountKbnList"), _ Array("BG", "BuildKanshokuList") _
Array("BC", "BuildKanshokuList") _
) )
Dim i As Long Dim i As Long
@@ -645,7 +688,7 @@ Private Sub ClearKukanValidation(ByVal rowNum As Long, ByVal col As Long)
End Sub End Sub
' Create dropdown from M2 cache: get code (J) list for kukanCode + kanshu ' Create dropdown from M2 cache: get code (J) list for kukanCode + kanshu
Private Sub CreateM2CodeDropdown(ByVal rowNum As Long, ByVal kukanCodeCol As Long, ByVal kanshuCol As Long, ByVal codeCol As Long) Private Sub BuildM2CodeDropdown(ByVal rowNum As Long, ByVal kukanCodeCol As Long, ByVal kanshuCol As Long, ByVal codeCol As Long)
Dim m2Cache As Object: Set m2Cache = GetCache("M2") Dim m2Cache As Object: Set m2Cache = GetCache("M2")
Dim kukanCode As String: kukanCode = Trim(Me.Cells(rowNum, kukanCodeCol).Value) Dim kukanCode As String: kukanCode = Trim(Me.Cells(rowNum, kukanCodeCol).Value)
@@ -661,10 +704,12 @@ Private Sub CreateM2CodeDropdown(ByVal rowNum As Long, ByVal kukanCodeCol As Lon
Dim innermostDict As Object: Set innermostDict = innerDict(kanshu) Dim innermostDict As Object: Set innermostDict = innerDict(kanshu)
Dim code As Variant Dim code As Variant
For Each code In innermostDict.Keys For Each code In innermostDict.Keys
Dim infoDict As Object: Set infoDict = innermostDict(code)
Dim codeName As String: codeName = infoDict("name")
If dropdownList = "" Then If dropdownList = "" Then
dropdownList = MakeSelect(code, innermostDict(code)) dropdownList = MakeSelect(code, codeName)
Else Else
dropdownList = dropdownList & "," & code dropdownList = dropdownList & "," & MakeSelect(code, codeName)
End If End If
Next code Next code
End If End If
@@ -680,25 +725,44 @@ Private Sub CreateM2CodeDropdown(ByVal rowNum As Long, ByVal kukanCodeCol As Lon
End If End If
End Sub End Sub
Private Sub ReFillM2CodeDropdown(ByVal rowNum As Long, ByVal kukanCodeCol As Long, ByVal kanshuCol As Long, ByVal codeCol As Long)
Dim m2Cache As Object: Set m2Cache = GetCache("M2")
Dim kukanCode As String: kukanCode = Trim(Me.Cells(rowNum, kukanCodeCol).Value)
Dim kenshu As String: kenshu = GetCode(Trim(Me.Cells(rowNum, kanshuCol).Value))
If kukanCode = "" Or kenshu = "" Then
Me.Cells(rowNum, codeCol).ClearContents
Me.Cells(rowNum, codeCol).Validation.Delete
Me.Cells(rowNum, codeCol).Interior.Color = vbWhite
Exit Sub
End If
Dim code As String: code = GetCode(Trim(Me.Cells(rowNum, codeCol).Value))
If m2Cache.Exists(kukanCode) Then
Dim innerDict As Object: Set innerDict = m2Cache(kukanCode)
If innerDict.Exists(kenshu) Then
Dim innermostDict As Object: Set innermostDict = innerDict(kenshu)
If innermostDict.Exists(code) Then
Dim infoDict As Object: Set infoDict = innermostDict(code)
Dim codeName As String: codeName = infoDict("name")
Me.Cells(rowNum, codeCol).Value = MakeSelect(code, codeName)
End IF
End If
End If
End Sub
' Clear row data and validation ' Clear row data and validation
Private Sub ClearRowData(ByVal rowNum As Long) Private Sub ClearRowData(ByVal rowNum As Long)
Dim sheetConfDict As Object: Set sheetConfDict = GetSheetConfig() Dim sheetConfDict As Object: Set sheetConfDict = GetSheetConfig()
Dim sheetConf As Object: Set sheetConf = sheetConfDict(Me.CodeName) Dim sheetConf As Object: Set sheetConf = sheetConfDict(Me.CodeName)
Dim startCol As String: startCol = sheetConf("StartCol") Dim startCol As String: startCol = sheetConf("ErrorCol")
Dim endCol As String: endCol = sheetConf("EndCol") Dim endCol As String: endCol = sheetConf("EndCol")
Dim errorCol As String: errorCol = sheetConf("ErrorCol")
Me.Range(Me.Cells(rowNum, startCol), Me.Cells(rowNum, endCol)).ClearContents Me.Range(Me.Cells(rowNum, startCol), Me.Cells(rowNum, endCol)).ClearContents
Me.Range(Me.Cells(rowNum, startCol), Me.Cells(rowNum, endCol)).Validation.Delete
Me.Range(Me.Cells(rowNum, startCol), Me.Cells(rowNum, endCol)).Interior.Color = vbWhite Me.Range(Me.Cells(rowNum, startCol), Me.Cells(rowNum, endCol)).Interior.Color = vbWhite
Me.Cells(rowNum, errorCol).ClearContents
Dim clearValidationCols As Variant
clearValidationCols = Array("I", "J", "U", "V", "X", "AB", "AC", "AE", "AI", "AJ", "AL", "AP", "AQ", "AS")
Dim col As Variant
For Each col In clearValidationCols
Me.Range(col & rowNum).Validation.Delete
Next col
End Sub End Sub
' Validation logic ' Validation logic
@@ -717,7 +781,7 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
' Required columns: C-G, K-N, AW ' Required columns: C-G, K-N, AW
Dim requiredCols As Variant Dim requiredCols As Variant
requiredCols = Array("C", "D", "E", "F", "G", "L", "M", "N", "AW") requiredCols = Array("C", "D", "E", "F", "G", "L", "M", "N", "BA")
Dim col As Variant Dim col As Variant
For Each col In requiredCols For Each col In requiredCols
If Trim(Me.Range(col & rowNum).Value & "") = "" Then If Trim(Me.Range(col & rowNum).Value & "") = "" Then
@@ -847,6 +911,7 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
' Validate KUKAN_TICKET_COLS and KUKAN_CODE2_COLS ' Validate KUKAN_TICKET_COLS and KUKAN_CODE2_COLS
Dim ticketCol As Long: ticketCol = KUKAN_TICKET_COLS(kukanIdx) Dim ticketCol As Long: ticketCol = KUKAN_TICKET_COLS(kukanIdx)
Dim code2Col As Long: code2Col = KUKAN_CODE2_COLS(kukanIdx) Dim code2Col As Long: code2Col = KUKAN_CODE2_COLS(kukanIdx)
Dim teikiCol As Long: teikiCol = KUKAN_TEIKI_COLS(kukanIdx)
Dim ticketVal As String: ticketVal = GetCode(Trim(Me.Cells(rowNum, ticketCol).Value)) Dim ticketVal As String: ticketVal = GetCode(Trim(Me.Cells(rowNum, ticketCol).Value))
Dim code2Val As String: code2Val = GetCode(Trim(Me.Cells(rowNum, code2Col).Value)) Dim code2Val As String: code2Val = GetCode(Trim(Me.Cells(rowNum, code2Col).Value))
Dim ticketLetter As String: ticketLetter = Split(Me.Cells(1, ticketCol).Address, "$")(1) Dim ticketLetter As String: ticketLetter = Split(Me.Cells(1, ticketCol).Address, "$")(1)
@@ -886,6 +951,14 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
Me.Cells(rowNum, errorCol).Value = code2Letter & " column is invalid" Me.Cells(rowNum, errorCol).Value = code2Letter & " column is invalid"
Me.Range(code2Letter & rowNum).Interior.Color = RGB(255, 0, 0) Me.Range(code2Letter & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub Exit Sub
Else
Dim teikiValue As String: teikiValue = Trim(Me.Cells(rowNum, teikiCol).Value)
If ticketVal = "1" And teikiValue = "" Then
Dim teikiLetter As String: teikiLetter = ColLetter(teikiCol)
Me.Cells(rowNum, errorCol).Value = teikiLetter & " column is required"
Me.Range(teikiLetter & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub
End If
End If End If
End If End If
End If End If
@@ -925,33 +998,33 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
' Validate H, BB, BC columns ' Validate H, BB, BC columns
Dim linkCellValue As String: linkCellValue = Me.Cells(3, "H").Value Dim linkCellValue As String: linkCellValue = Me.Cells(3, "H").Value
Dim ColBB As String: ColBB = "BB" Dim ColBF As String: ColBF = "BF"
Dim ColBC As String: ColBC = "BC" Dim ColBG As String: ColBG = "BG"
Dim valBB As String: valBB = Trim(Me.Cells(rowNum, ColBB).Value) Dim valBF As String: valBF = Trim(Me.Cells(rowNum, ColBF).Value)
Dim valBC As String: valBC = Trim(Me.Cells(rowNum, ColBC).Value) Dim valBG As String: valBG = Trim(Me.Cells(rowNum, ColBG).Value)
If linkCellValue = "1" Then If linkCellValue = "1" Then
' If code = "1", BB and BC must be empty ' If code = "1", BB and BC must be empty
If valBB <> "" Then If valBF <> "" Then
Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E005", ColBB & rowNum) Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E005", ColBF & rowNum)
Me.Range(ColBB & rowNum).Interior.Color = RGB(255, 0, 0) Me.Range(ColBF & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub Exit Sub
End If End If
If valBC <> "" Then If valBG <> "" Then
Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E005", ColBC & rowNum) Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E005", ColBG & rowNum)
Me.Range(ColBC & rowNum).Interior.Color = RGB(255, 0, 0) Me.Range(ColBG & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub Exit Sub
End If End If
ElseIf linkCellValue = "2" Then ElseIf linkCellValue = "2" Then
' If code = "2", BB and BC must have value ' If code = "2", BB and BC must have value
If valBB = "" Then If valBF = "" Then
Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E002", ColBB & rowNum) Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E002", ColBF & rowNum)
Me.Range(ColBB & rowNum).Interior.Color = RGB(255, 0, 0) Me.Range(ColBF & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub Exit Sub
End If End If
If valBC = "" Then If valBG = "" Then
Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E002", ColBC & rowNum) Me.Cells(rowNum, errorCol).Value = GetErrorMsg("E002", ColBG & rowNum)
Me.Range(ColBC & rowNum).Interior.Color = RGB(255, 0, 0) Me.Range(ColBG & rowNum).Interior.Color = RGB(255, 0, 0)
Exit Sub Exit Sub
End If End If
End If End If
@@ -962,3 +1035,57 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
ErrHandler: ErrHandler:
lastErrorMsg = Err.Description lastErrorMsg = Err.Description
End Sub End Sub
' Create teiki dropdown based on M2 cache
Private Sub CreateTeikiDropdown(ByVal row As Long, ByVal idx As Long)
' Get kukanCode from KUKAN_CODE_COLS
Dim kukanCol As Long: kukanCol = KUKAN_CODE_COLS(idx)
Dim kukanCode As String: kukanCode = Trim(Me.Cells(row, kukanCol).Value)
' Get kenshu from KUKAN_TICKET_COLS
Dim kenshu As String: kenshu = GetCode(Trim(Me.Cells(row, KUKAN_TICKET_COLS(idx)).Value))
' Get code2 from KUKAN_CODE2_COLS
Dim code As String: code = GetCode(Trim(Me.Cells(row, KUKAN_CODE2_COLS(idx)).Value))
If kukanCode = "" Or kenshu = "" Or code = "" Then Exit Sub
If Not kenshu = "1" Then Exit Sub
Dim teikiColIndex As Long: teikiColIndex = KUKAN_TEIKI_COLS(idx)
Call BuildTeikiDropdown(row, kukanCode, kenshu, code, ColLetter(teikiColIndex))
End Sub
Private Sub BuildTeikiDropdown(ByVal rowNum As Long, ByVal kukanCode As String, ByVal kenshu As String, ByVal code As String, ByVal targetCell As String)
Dim M2Cache As Object: Set M2Cache = GetCache("M2")
Dim kenshuDict As Object: Set kenshuDict = M2Cache(kukanCode)
Dim codeDict As Object: Set codeDict = kenshuDict(kenshu)
Dim teikiArray As Object: Set teikiArray = codeDict(code)
If teikiArray Is Nothing Then Exit Sub
If Not teikiArray.Exists("teikikikanNum") Then Exit Sub
Dim teikiList As Variant: teikiList = teikiArray("teikikikanNum")
If Not IsArray(teikiList) Then Exit Sub
If UBound(teikiList) < LBound(teikiList) Then Exit Sub
' Build dropdown list
Dim dropdownList As String: dropdownList = ""
Dim i As Long
For i = LBound(teikiList) To UBound(teikiList)
Dim val As String: val = CStr(teikiList(i))
If val <> "" Then
If dropdownList = "" Then
dropdownList = val
Else
dropdownList = dropdownList & "," & val
End If
End If
Next i
If dropdownList <> "" Then
With Me.Range(targetCell & rowNum).Validation
.Delete
.Add Type:=xlValidateList, Formula1:=dropdownList
.IgnoreBlank = True
.InCellDropdown = True
End With
End If
End Sub

View File

@@ -338,7 +338,7 @@ Private Sub FillKFromJ(ByVal ws As Worksheet, ByVal rowNum As Long)
ws.Range("K" & rowNum).Value = Trim(cacheVal(0)) ws.Range("K" & rowNum).Value = Trim(cacheVal(0))
End If End If
Select Case iValue Select Case kenshu
Case "1" Case "1"
Exit Sub Exit Sub
Case "2" Case "2"

Binary file not shown.