From 709e049c97e24971253dba7e2c75287e8b815e1b Mon Sep 17 00:00:00 2001 From: MYSAP Date: Wed, 9 Sep 2026 09:09:28 +0000 Subject: [PATCH] First commit (2026.09.09) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 공통 코드 관리 --- .abapgit.xml | 10 ++ src/package.devc.xml | 10 ++ src/zcat0010.tabl.xml | 309 ++++++++++++++++++++++++++++++++++ src/zcat0020.tabl.xml | 210 +++++++++++++++++++++++ src/zcom0010.prog.abap | 41 +++++ src/zcom0010.prog.xml | 167 ++++++++++++++++++ src/zcom0010c01.prog.abap | 124 ++++++++++++++ src/zcom0010c01.prog.xml | 20 +++ src/zcom0010f01.prog.abap | 286 +++++++++++++++++++++++++++++++ src/zcom0010f01.prog.xml | 20 +++ src/zcom0010i01.prog.abap | 63 +++++++ src/zcom0010i01.prog.xml | 20 +++ src/zcom0010o01.prog.abap | 83 +++++++++ src/zcom0010o01.prog.xml | 20 +++ src/zcom0010top.prog.abap | 80 +++++++++ src/zcom0010top.prog.xml | 20 +++ src/zd_appli_tr01.doma.xml | 30 ++++ src/ze_appli_tr01.dtel.xml | 23 +++ src/ze_se_code_value.dtel.xml | 24 +++ src/zqtxt_code.dtel.xml | 24 +++ src/zrfks0.tabl.xml | 64 +++++++ 21 files changed, 1648 insertions(+) create mode 100644 .abapgit.xml create mode 100644 src/package.devc.xml create mode 100644 src/zcat0010.tabl.xml create mode 100644 src/zcat0020.tabl.xml create mode 100644 src/zcom0010.prog.abap create mode 100644 src/zcom0010.prog.xml create mode 100644 src/zcom0010c01.prog.abap create mode 100644 src/zcom0010c01.prog.xml create mode 100644 src/zcom0010f01.prog.abap create mode 100644 src/zcom0010f01.prog.xml create mode 100644 src/zcom0010i01.prog.abap create mode 100644 src/zcom0010i01.prog.xml create mode 100644 src/zcom0010o01.prog.abap create mode 100644 src/zcom0010o01.prog.xml create mode 100644 src/zcom0010top.prog.abap create mode 100644 src/zcom0010top.prog.xml create mode 100644 src/zd_appli_tr01.doma.xml create mode 100644 src/ze_appli_tr01.dtel.xml create mode 100644 src/ze_se_code_value.dtel.xml create mode 100644 src/zqtxt_code.dtel.xml create mode 100644 src/zrfks0.tabl.xml diff --git a/.abapgit.xml b/.abapgit.xml new file mode 100644 index 0000000..7c0506a --- /dev/null +++ b/.abapgit.xml @@ -0,0 +1,10 @@ + + + + + E + /src/ + PREFIX + + + diff --git a/src/package.devc.xml b/src/package.devc.xml new file mode 100644 index 0000000..c950028 --- /dev/null +++ b/src/package.devc.xml @@ -0,0 +1,10 @@ + + + + + + 공통코드 관리 + + + + diff --git a/src/zcat0010.tabl.xml b/src/zcat0010.tabl.xml new file mode 100644 index 0000000..5addc17 --- /dev/null +++ b/src/zcat0010.tabl.xml @@ -0,0 +1,309 @@ + + + + + + ZCAT0010 + E + TRANSP + X + X + [CA] Common Code Header + X + A + 1 + + + ZCAT0010 + A + 0 + APPL0 + X + N + + + + MANDT + X + MANDT + 0 + X + E + + + APPLI + X + ZE_APPLI_TR01 + 0 + X + X + F + E + + + GRP + X + 0 + C + 000020 + X + CHAR + 000010 + CHAR + Code Group + + + SPRAS + X + 0 + C + 000002 + X + LANG + 000001 + LANG + Language Key + X + + + GRP_TXT + 0 + C + 000080 + CHAR + 000040 + CHAR + Short Text for Code Group + + + HDR_01 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 01 + + + LEN_01 + 0 + P + 000002 + DEC + 000002 + DEC + Length 01 + + + HDR_02 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 02 + + + LEN_02 + 0 + P + 000002 + DEC + 000002 + DEC + Length 02 + + + HDR_03 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 03 + + + LEN_03 + 0 + P + 000002 + DEC + 000002 + DEC + Length 03 + + + HDR_04 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 04 + + + LEN_04 + 0 + P + 000002 + DEC + 000002 + DEC + Length 04 + + + HDR_05 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 05 + + + LEN_05 + 0 + P + 000002 + DEC + 000002 + DEC + Length 05 + + + HDR_06 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 06 + + + LEN_06 + 0 + P + 000002 + DEC + 000002 + DEC + Length 06 + + + HDR_07 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 07 + + + LEN_07 + 0 + P + 000002 + DEC + 000002 + DEC + Length 07 + + + HDR_08 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 08 + + + LEN_08 + 0 + P + 000002 + DEC + 000002 + DEC + Length 08 + + + HDR_09 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 09 + + + LEN_09 + 0 + P + 000002 + DEC + 000002 + DEC + Length 09 + + + HDR_10 + 0 + C + 000040 + CHAR + 000020 + CHAR + Header Line 10 + + + LEN_10 + 0 + P + 000002 + DEC + 000002 + DEC + Length 10 + + + FCNT + 0 + P + 000002 + DEC + 000002 + DEC + Header Count + + + REMK + 0 + C + 000200 + CHAR + 000100 + CHAR + Comment + + + .INCLUDE + 0 + ZRFKS0 + S + Dialog Fields for Screens from Function Group FKS0 + S + + + + + diff --git a/src/zcat0020.tabl.xml b/src/zcat0020.tabl.xml new file mode 100644 index 0000000..d1a6a75 --- /dev/null +++ b/src/zcat0020.tabl.xml @@ -0,0 +1,210 @@ + + + + + + ZCAT0020 + E + TRANSP + X + X + [CA] Common Code Item + X + A + 1 + + + ZCAT0020 + A + 0 + APPL0 + X + N + + + + MANDT + X + MANDT + 0 + X + E + + + APPLI + X + ZE_APPLI_TR01 + 0 + X + X + F + E + + + GRP + X + 0 + C + 000020 + X + CHAR + 000010 + CHAR + Code Group + + + SPRAS + X + SPRAS + 0 + X + D + E + X + + + CODE + X + ZE_SE_CODE_VALUE + 0 + X + E + + + CODE_TXT + ZQTXT_CODE + 0 + E + + + FLD_01 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 01 + + + FLD_02 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 02 + + + FLD_03 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 03 + + + FLD_04 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 04 + + + FLD_05 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 05 + + + FLD_06 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 06 + + + FLD_07 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 07 + + + FLD_08 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 08 + + + FLD_09 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 09 + + + FLD_10 + 0 + C + 000198 + CHAR + 000099 + CHAR + Field 10 + + + USEYN + 0 + C + 000002 + CHAR + 000001 + CHAR + indicator : YES/NO(Y/N) + + + SORTSEQ + 0 + N + 000008 + NUMC + 000004 + NUMC + Sort Order + + + .INCLUDE + 0 + ZRFKS0 + S + Dialog Fields for Screens from Function Group FKS0 + S + + + + + diff --git a/src/zcom0010.prog.abap b/src/zcom0010.prog.abap new file mode 100644 index 0000000..3ceea41 --- /dev/null +++ b/src/zcom0010.prog.abap @@ -0,0 +1,41 @@ +* Program Name : ZCOM0010 * +* Description : 공통 코드 관리 * +* Screen : 100 * +* Transaction code : ZCOM0010 * +* Updated Tables : N/A * +* Input Parameters : * +* Return Codes : * +* Special Logic : * +*----------------------------------------------------------------------* +* MODIFICATION LOG * +*----------------------------------------------------------------------* +* Date Rev Programmer Description * +*------------ -------- ------------- ----------------------------------* +* 2026.09.04 N MYSAP Initial coding * +*----------------------------------------------------------------------* + +REPORT zcom0010 MESSAGE-ID zmcom01 NO STANDARD PAGE HEADING. + +*----------------------------------------------------------------------* +* INCLUDE +*----------------------------------------------------------------------* + +INCLUDE zcom0010c01 . " event. + +INCLUDE zcom0010top . " Global Data + + +INCLUDE zcom0010o01 . " PBO-Modules +INCLUDE zcom0010i01 . " PAI-Modules +INCLUDE zcom0010f01 . " FORM-Routines + + +INITIALIZATION. + p_spras = sy-langu. + +AT SELECTION-SCREEN OUTPUT. + PERFORM set_selection_screen. + +START-OF-SELECTION. + PERFORM read_header. + CALL SCREEN 0100. diff --git a/src/zcom0010.prog.xml b/src/zcom0010.prog.xml new file mode 100644 index 0000000..acdc88d --- /dev/null +++ b/src/zcom0010.prog.xml @@ -0,0 +1,167 @@ + + + + + + ZCOM0010 + 1 + E + X + X + + + +
+ ZCOM0010 + 0100 + E + 조회 + N + 0100 + 027 + 120 +
+ + + SCREEN + SCREEN + + + + + SCREEN + SCREEN + OKCODE + OK_CODE_0100 + ____________________ + 020 + 020 + 001 + CHAR + X + + + + + PROCESS BEFORE OUTPUT. + + + MODULE status_0100. + + + + MODULE alv_display_0100. + + + + PROCESS AFTER INPUT. + + + MODULE user_command_0100. + + +
+
+ + + 000001 + 000001 + + + + ZCOM0010 + D + 000001 + 000001 + 0001 + 조회 + + + + + BACK + 001 + S + Back + + + CANC + 001 + S + Exit + + + EXIT + 001 + S + ICON_CANCEL + @0W@ + Cancel + + + + + 000001 + 03 + BACK + 001 + + + 000001 + 12 + EXIT + 001 + + + 000001 + 15 + CANC + 001 + + + + + ZCOM0010 + BACK + + + ZCOM0010 + CANC + + + ZCOM0010 + EXIT + + + + + A + 000001 + D + 조회 + + + P + 000001 + D + 조회 + + + B + 000001 + 0001 + D + 조회 + + + + + + R + 공통코드 관리 + 7 + + +
+
+
diff --git a/src/zcom0010c01.prog.abap b/src/zcom0010c01.prog.abap new file mode 100644 index 0000000..51b1cc2 --- /dev/null +++ b/src/zcom0010c01.prog.abap @@ -0,0 +1,124 @@ +*&---------------------------------------------------------------------* +*& Include ZCOM0010C01 +*&---------------------------------------------------------------------* + +CLASS lcl_events DEFINITION. + PUBLIC SECTION. +* METHODS on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid +* IMPORTING e_object e_interactive sender. +* METHODS on_user_command FOR EVENT user_command OF cl_gui_alv_grid +* IMPORTING e_ucomm sender. + METHODS on_double_click FOR EVENT double_click OF cl_gui_alv_grid + IMPORTING e_row e_column sender. +* METHODS on_data_changed FOR EVENT data_changed OF cl_gui_alv_grid +* IMPORTING er_data_changed sender. +ENDCLASS. + + +CLASS lcl_events IMPLEMENTATION. +* METHOD on_toolbar. +* IF e_object IS INITIAL. +* RETURN. +* ENDIF. +* +** IF sender = go_grid. +** __alv_toolbar e_object 1 'ADDH' gc_icon-create '그룹코드 추가' '그룹 추가' 0 space. +** __alv_toolbar e_object 2 'DELH' gc_icon-delete '선택 그룹 삭제' '그룹 삭제' 0 space. +** __alv_toolbar e_object 3 'SAVEH' icon_system_save '그룹코드 저장' '그룹 저장' 0 space. +** ELSEIF sender = go_grid1. +** __alv_toolbar e_object 1 'ADDI' gc_icon-create '상세코드 추가' '상세 추가' 0 space. +** __alv_toolbar e_object 2 'ADDIM' gc_icon-create '상세코드 복수 추가' '복수열 추가' 0 space. +** __alv_toolbar e_object 3 'DELI' gc_icon-delete '선택 상세 삭제' '상세 삭제' 0 space. +** __alv_toolbar e_object 4 'SAVEI' icon_system_save '상세코드 저장' '상세 저장' 0 space. +** ENDIF. +* ENDMETHOD. + +* METHOD on_user_command. +* ok_code_0100 = e_ucomm. +* CALL METHOD cl_gui_cfw=>set_new_ok_code +* EXPORTING new_code = ok_code_0100. +* ENDMETHOD. + + METHOD on_double_click. + perform handle_double_click using e_row e_column sender. + ENDMETHOD. + +* METHOD on_data_changed. +* IF sender = go_grid. +* LOOP AT er_data_changed->mt_mod_cells INTO DATA(ls_mod_header). +* READ TABLE gt_header ASSIGNING FIELD-SYMBOL() INDEX ls_mod_header-row_id. +* IF sy-subrc = 0 AND -mode = gc_mode-disp. +* -mode = gc_mode-modify. +* ENDIF. +* ENDLOOP. +* ELSEIF sender = go_grid1. +* LOOP AT er_data_changed->mt_mod_cells INTO DATA(ls_mod_item). +* READ TABLE gt_item ASSIGNING FIELD-SYMBOL() INDEX ls_mod_item-row_id. +* IF sy-subrc = 0 AND -mode = gc_mode-disp. +* -mode = gc_mode-modify. +* ENDIF. +* ENDLOOP. +* ENDIF. +* ENDMETHOD. +ENDCLASS. + +*---------------------------------------------------------------------* +* LOCAL CLASSES: Definition +*---------------------------------------------------------------------* +CLASS lcl_alv_grid DEFINITION INHERITING FROM cl_gui_alv_grid. + + PUBLIC SECTION. + + METHODS: set_optimize_all_cols. + + METHODS: set_cursor IMPORTING row TYPE i + col TYPE i. + METHODS: set_fixed_column. + + METHODS: set_row_resize. + + METHODS: set_err_cells IMPORTING it_err TYPE lvc_t_err. + + +ENDCLASS. "LCL_AlV_GRID DEFINITION + +*---------------------------------------------------------------------* +* CLASS LCL_AlV_GRID IMPLEMENTATION +*---------------------------------------------------------------------* +CLASS lcl_alv_grid IMPLEMENTATION. + METHOD set_optimize_all_cols. + CALL METHOD me->optimize_all_cols + EXPORTING + include_header = 1. + ENDMETHOD. "SET_OPTIMIZE_ALL_COLS + + METHOD set_cursor. + CALL METHOD me->set_current_cell_base + EXPORTING + row = row + col = col. + ENDMETHOD. " SET_CURSOR + + METHOD set_fixed_column. + CALL METHOD me->set_fixed_cols + EXPORTING + cols = 5. + ENDMETHOD. "SET_FIXED_COLUMN + + METHOD set_row_resize. + CALL METHOD me->set_resize_rows + EXPORTING + enable = 1. + ENDMETHOD. " SET_ROW_RESIZE + + METHOD set_err_cells. + CALL METHOD me->set_error_cells + EXPORTING + cell_table = it_err + EXCEPTIONS + error = 1 + OTHERS = 2. + + ENDMETHOD. "GET_CURRENT_COL + +ENDCLASS. "LCL_ALV_GRID IMPLEMENTATION diff --git a/src/zcom0010c01.prog.xml b/src/zcom0010c01.prog.xml new file mode 100644 index 0000000..0c890c0 --- /dev/null +++ b/src/zcom0010c01.prog.xml @@ -0,0 +1,20 @@ + + + + + + ZCOM0010C01 + I + E + X + + + + R + Include ZCOM0010C01 + 19 + + + + + diff --git a/src/zcom0010f01.prog.abap b/src/zcom0010f01.prog.abap new file mode 100644 index 0000000..1774ea2 --- /dev/null +++ b/src/zcom0010f01.prog.abap @@ -0,0 +1,286 @@ +*&---------------------------------------------------------------------* +*& Include ZCOM0010F01 +*&---------------------------------------------------------------------* + +FORM set_selection_screen. + p_spras = sy-langu. +ENDFORM. + +FORM read_header. + CLEAR gt_header. + SELECT * FROM zcat0010 + WHERE appli = @p_appli + AND spras = @p_spras + AND ( grp = @p_grp OR @p_grp IS INITIAL ) + ORDER BY grp + INTO CORRESPONDING FIELDS OF TABLE @gt_header. + + LOOP AT gt_header ASSIGNING FIELD-SYMBOL(). + -mode = gc_mode-disp. + ENDLOOP. +ENDFORM. + +FORM read_item USING iv_grp TYPE zcat0020-grp. + CLEAR gt_item. + SELECT * FROM zcat0020 + INTO CORRESPONDING FIELDS OF TABLE @gt_item + WHERE appli = @p_appli + AND grp = @iv_grp + AND spras = @p_spras + ORDER BY sortseq, code. + + LOOP AT gt_item ASSIGNING FIELD-SYMBOL(). + -mode = gc_mode-disp. + ENDLOOP. +ENDFORM. + +FORM build_header_fcat. + CLEAR gt_fieldcat. + PERFORM add_fcat USING 'MARK' '선택' 4 abap_true abap_false CHANGING gt_fieldcat. + PERFORM add_fcat USING 'GRP' '그룹코드' 12 abap_false abap_false CHANGING gt_fieldcat. + PERFORM add_fcat USING 'GRP_TXT' '그룹코드명' 25 abap_false abap_false CHANGING gt_fieldcat. + PERFORM add_fcat USING 'FCNT' '필드수' 7 abap_false abap_false CHANGING gt_fieldcat. +ENDFORM. + +FORM build_item_fcat. + CLEAR gt_fieldcat1. + PERFORM add_fcat USING 'MARK' '선택' 4 abap_true abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'CODE' '코드' 14 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'CODE_TXT' '코드명' 25 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_01' 'FLD_01' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_02' 'FLD_02' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_03' 'FLD_03' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_04' 'FLD_04' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_05' 'FLD_05' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_06' 'FLD_06' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_07' 'FLD_07' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_08' 'FLD_08' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_09' 'FLD_09' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'FLD_10' 'FLD_10' 12 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'USEYN' '사용' 6 abap_false abap_false CHANGING gt_fieldcat1. + PERFORM add_fcat USING 'SORTSEQ' 'Sort Order' 10 abap_false abap_false CHANGING gt_fieldcat1. +ENDFORM. + +FORM add_fcat USING iv_field TYPE lvc_fname + iv_text TYPE lvc_txt + iv_width TYPE i + iv_checkbox TYPE abap_bool + iv_hotspot TYPE abap_bool + CHANGING ct_fcat TYPE lvc_t_fcat. + DATA ls_fcat TYPE lvc_s_fcat. + + ls_fcat-fieldname = iv_field. + ls_fcat-coltext = iv_text. + ls_fcat-scrtext_l = iv_text. + ls_fcat-outputlen = iv_width. + ls_fcat-checkbox = iv_checkbox. + ls_fcat-hotspot = iv_hotspot. + ls_fcat-edit = abap_true. + APPEND ls_fcat TO ct_fcat. +ENDFORM. + +FORM apply_dynamic_item_fcat. + DATA: ls_fcat TYPE lvc_s_fcat, + lv_idx TYPE n LENGTH 2, + lv_hdr TYPE char20, + lv_len TYPE i. + + IF go_grid1 IS INITIAL OR gv_selected_grp IS INITIAL. + RETURN. + ENDIF. + + READ TABLE gt_header INTO gs_header WITH KEY grp = gv_selected_grp. + IF sy-subrc <> 0. + RETURN. + ENDIF. + + LOOP AT gt_fieldcat1 INTO ls_fcat. + IF ls_fcat-fieldname CP 'FLD_*'. + lv_idx = ls_fcat-fieldname+4(2). + ASSIGN COMPONENT |HDR_{ lv_idx }| OF STRUCTURE gs_header TO FIELD-SYMBOL(). + ASSIGN COMPONENT |LEN_{ lv_idx }| OF STRUCTURE gs_header TO FIELD-SYMBOL(). + + CLEAR: lv_hdr, lv_len. + IF IS ASSIGNED. + lv_hdr = . + ENDIF. + IF IS ASSIGNED. + lv_len = . + ENDIF. + + IF lv_hdr IS INITIAL OR lv_len IS INITIAL. + ls_fcat-no_out = abap_true. + ELSE. + ls_fcat-no_out = abap_false. + ls_fcat-coltext = lv_hdr. + ls_fcat-scrtext_l = lv_hdr. + ls_fcat-outputlen = lv_len. + ENDIF. + MODIFY gt_fieldcat1 FROM ls_fcat. + ENDIF. + ENDLOOP. + + __set_frontend_fieldcat go_grid1 gt_fieldcat1. +ENDFORM. + +FORM refresh_grid USING io_grid TYPE REF TO lcl_alv_grid. "cl_gui_alv_grid. + IF io_grid IS BOUND. + __alv_refresh io_grid abap_false abap_true abap_true. + ENDIF. +ENDFORM. + +FORM calculate_fcnt USING is_header TYPE ty_header + CHANGING cv_count TYPE i. + cv_count = 0. + IF is_header-hdr_01 IS NOT INITIAL AND is_header-len_01 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_02 IS NOT INITIAL AND is_header-len_02 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_03 IS NOT INITIAL AND is_header-len_03 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_04 IS NOT INITIAL AND is_header-len_04 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_05 IS NOT INITIAL AND is_header-len_05 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_06 IS NOT INITIAL AND is_header-len_06 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_07 IS NOT INITIAL AND is_header-len_07 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_08 IS NOT INITIAL AND is_header-len_08 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_09 IS NOT INITIAL AND is_header-len_09 IS NOT INITIAL. cv_count += 1. ENDIF. + IF is_header-hdr_10 IS NOT INITIAL AND is_header-len_10 IS NOT INITIAL. cv_count += 1. ENDIF. +ENDFORM. + +FORM save_header. + DATA: ls_db TYPE zcat0010, + lv_count TYPE i. + + IF go_grid IS BOUND. + go_grid->check_changed_data( ). + ENDIF. + + LOOP AT gt_header INTO gs_header WHERE mode <> gc_mode-disp OR mark = abap_true. + IF gs_header-mode <> gc_mode-delete + AND ( gs_header-grp IS INITIAL OR gs_header-grp_txt IS INITIAL ). + MESSAGE '그룹코드와 그룹코드명은 필수입니다.' TYPE 'S' DISPLAY LIKE 'E'. + RETURN. + ENDIF. + + IF gs_header-mode = gc_mode-delete. + DELETE FROM zcat0020 + WHERE appli = @p_appli AND grp = @gs_header-grp AND spras = @p_spras. + DELETE FROM zcat0010 + WHERE appli = @p_appli AND grp = @gs_header-grp AND spras = @p_spras. + CONTINUE. + ENDIF. + + PERFORM calculate_fcnt USING gs_header CHANGING lv_count. + gs_header-fcnt = lv_count. + MOVE-CORRESPONDING gs_header TO ls_db. + ls_db-mandt = sy-mandt. + ls_db-appli = p_appli. + ls_db-spras = p_spras. + MODIFY zcat0010 FROM @ls_db. + ENDLOOP. + + COMMIT WORK AND WAIT. + PERFORM read_header. +* PERFORM refresh_grid USING go_grid. + MESSAGE '그룹코드가 저장되었습니다.' TYPE 'S'. +ENDFORM. + +FORM save_item. + DATA ls_db TYPE zcat0020. + + IF gv_selected_grp IS INITIAL. + MESSAGE '먼저 좌측에서 그룹코드를 선택하십시오.' TYPE 'S' DISPLAY LIKE 'E'. + RETURN. + ENDIF. + + IF go_grid1 IS BOUND. + go_grid1->check_changed_data( ). + ENDIF. + + LOOP AT gt_item INTO gs_item WHERE mode <> gc_mode-disp OR mark = abap_true. + IF gs_item-mode <> gc_mode-delete AND gs_item-code IS INITIAL. + MESSAGE '상세코드는 필수입니다.' TYPE 'S' DISPLAY LIKE 'E'. + RETURN. + ENDIF. + + IF gs_item-mode = gc_mode-delete. + DELETE FROM zcat0020 + WHERE appli = @p_appli + AND grp = @gv_selected_grp + AND spras = @p_spras + AND code = @gs_item-code. + CONTINUE. + ENDIF. + + MOVE-CORRESPONDING gs_item TO ls_db. + ls_db-mandt = sy-mandt. + ls_db-appli = p_appli. + ls_db-grp = gv_selected_grp. + ls_db-spras = p_spras. + MODIFY zcat0020 FROM @ls_db. + ENDLOOP. + + COMMIT WORK AND WAIT. + PERFORM read_item USING gv_selected_grp. +* PERFORM refresh_grid USING go_grid1. + MESSAGE '세부코드가 저장되었습니다.' TYPE 'S'. +ENDFORM. + +FORM mark_new_headers USING iv_lines TYPE i. + DO iv_lines TIMES. + CLEAR gs_header. + gs_header-appli = p_appli. + gs_header-spras = p_spras. + gs_header-mode = gc_mode-create. + APPEND gs_header TO gt_header. + ENDDO. +ENDFORM. + +FORM mark_new_items USING iv_lines TYPE i. + DO iv_lines TIMES. + CLEAR gs_item. + gs_item-appli = p_appli. + gs_item-grp = gv_selected_grp. + gs_item-spras = p_spras. + gs_item-useyn = 'Y'. + gs_item-mode = gc_mode-create. + APPEND gs_item TO gt_item. + ENDDO. +ENDFORM. + +FORM delete_marked_headers. + LOOP AT gt_header ASSIGNING FIELD-SYMBOL() WHERE mark = abap_true. + -mode = gc_mode-delete. + ENDLOOP. + PERFORM save_header. +ENDFORM. + +FORM delete_marked_items. + LOOP AT gt_item ASSIGNING FIELD-SYMBOL() WHERE mark = abap_true. + -mode = gc_mode-delete. + ENDLOOP. + PERFORM save_item. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form handle_double_click +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> E_ROW +*& --> E_COLUMN +*& --> SENDER +*&---------------------------------------------------------------------* +FORM handle_double_click USING p_row + p_column + p_sender. + + IF p_sender <> go_grid OR p_row IS INITIAL. + RETURN. + ENDIF. + + READ TABLE gt_header INTO gs_header INDEX p_row. + IF sy-subrc = 0. + gv_selected_grp = gs_header-grp. + PERFORM read_item USING gv_selected_grp. + PERFORM apply_dynamic_item_fcat. + PERFORM refresh_grid USING go_grid1. + ENDIF. + +ENDFORM. diff --git a/src/zcom0010f01.prog.xml b/src/zcom0010f01.prog.xml new file mode 100644 index 0000000..4ef1345 --- /dev/null +++ b/src/zcom0010f01.prog.xml @@ -0,0 +1,20 @@ + + + + + + ZCOM0010F01 + I + E + X + + + + R + Include ZCOM0010F01 + 19 + + + + + diff --git a/src/zcom0010i01.prog.abap b/src/zcom0010i01.prog.abap new file mode 100644 index 0000000..5025a2c --- /dev/null +++ b/src/zcom0010i01.prog.abap @@ -0,0 +1,63 @@ +*&---------------------------------------------------------------------* +*& Include ZCOM0010I01 +*&---------------------------------------------------------------------* +MODULE user_command_0100 INPUT. + CASE ok_code_0100. + WHEN gc_fcode-back OR gc_fcode-canc OR gc_fcode-exit. + LEAVE TO SCREEN 0. + + WHEN 'ADDH'. + PERFORM mark_new_headers USING 1. +* PERFORM refresh_grid USING go_grid. + + WHEN 'EDTH'. + __set_ready_input go_grid 1. + + WHEN 'DELH'. + __popup_to_confirm_step '선택한 그룹코드와 모든 하위코드를 삭제합니다.' '' '그룹코드 삭제'. + IF gv_answer = gc_answer-yes. + PERFORM delete_marked_headers. + ENDIF. + + WHEN 'SAVEH'. + PERFORM save_header. + + WHEN 'ADDI'. + IF gv_selected_grp IS INITIAL. + MESSAGE '먼저 좌측에서 그룹코드를 선택하십시오.' TYPE 'S' DISPLAY LIKE 'E'. + ELSE. + PERFORM mark_new_items USING 1. +* PERFORM refresh_grid USING go_grid1. + ENDIF. + + WHEN 'ADDIM'. + IF gv_selected_grp IS INITIAL. + MESSAGE '먼저 좌측에서 그룹코드를 선택하십시오.' TYPE 'S' DISPLAY LIKE 'E'. + ELSE. + CLEAR gv_lines. + CALL FUNCTION 'POPUP_TO_GET_VALUE' + EXPORTING + fieldname = 'GV_LINES' + tabname = 'ZCOM0010' + titel = '추가 라인 수' + IMPORTING + value = gv_lines. + IF gv_lines IS INITIAL OR gv_lines < 1. + gv_lines = 1. + ENDIF. + PERFORM mark_new_items USING gv_lines. +* PERFORM refresh_grid USING go_grid1. + ENDIF. + + WHEN 'DELI'. + __popup_to_confirm_step '선택한 세부코드를 삭제합니다.' '' '세부코드 삭제'. + IF gv_answer = gc_answer-yes. + PERFORM delete_marked_items. + ENDIF. + + WHEN 'SAVEI'. + PERFORM save_item. + ENDCASE. + + CLEAR ok_code_0100. +ENDMODULE. diff --git a/src/zcom0010i01.prog.xml b/src/zcom0010i01.prog.xml new file mode 100644 index 0000000..a35366d --- /dev/null +++ b/src/zcom0010i01.prog.xml @@ -0,0 +1,20 @@ + + + + + + ZCOM0010I01 + I + E + X + + + + R + Include ZCOM0010I01 + 19 + + + + + diff --git a/src/zcom0010o01.prog.abap b/src/zcom0010o01.prog.abap new file mode 100644 index 0000000..ab28463 --- /dev/null +++ b/src/zcom0010o01.prog.abap @@ -0,0 +1,83 @@ +*&---------------------------------------------------------------------* +*& Include ZCOM0010O01 +*&---------------------------------------------------------------------* +MODULE status_0100 OUTPUT. + DATA : lv_text(200), + lt_fcode TYPE TABLE OF sy-ucomm. + CLEAR: lv_text, lt_fcode, lt_fcode[]. + + SET PF-STATUS 'ZCOM0010' EXCLUDING lt_fcode. + lv_text = sy-title. + SET TITLEBAR 'ZCOM0010' WITH lv_text. + + +ENDMODULE. + +MODULE clear_okcode_0100 OUTPUT. + CLEAR ok_code_0100. +ENDMODULE. + +FORM create_controls. + CREATE OBJECT go_docking_container + EXPORTING + side = cl_gui_docking_container=>dock_at_left + extension = 3000. + + __splitter go_splitter go_docking_container 1 2. + __set_splitter go_splitter go_container_l 1 1. + __set_splitter go_splitter go_container_r 1 2. + __width_split go_splitter 1 20. + __width_split go_splitter 2 80. + + CREATE OBJECT go_grid + EXPORTING + i_parent = go_container_l. + CREATE OBJECT go_grid1 + EXPORTING + i_parent = go_container_r. + + + PERFORM build_header_fcat. + PERFORM build_item_fcat. + + gs_layout-zebra = abap_true. + gs_layout-sel_mode = 'A'. + gs_layout1-zebra = abap_true. + gs_layout1-sel_mode = 'A'. + + go_grid->set_table_for_first_display( + EXPORTING is_layout = gs_layout + CHANGING it_outtab = gt_header it_fieldcatalog = gt_fieldcat ). + + go_grid1->set_table_for_first_display( + EXPORTING is_layout = gs_layout1 + CHANGING it_outtab = gt_item it_fieldcatalog = gt_fieldcat1 ). + + IF gt_header IS NOT INITIAL. + READ TABLE gt_header INTO gs_header INDEX 1. + gv_selected_grp = gs_header-grp. + PERFORM read_item USING gv_selected_grp. + PERFORM apply_dynamic_item_fcat. + PERFORM refresh_grid USING go_grid1. + ENDIF. + + CREATE OBJECT go_events. +* SET HANDLER go_events->on_toolbar FOR go_grid. +* SET HANDLER go_events->on_user_command FOR go_grid. + SET HANDLER go_events->on_double_click FOR go_grid. +* SET HANDLER go_events->on_data_changed FOR go_grid. +* SET HANDLER go_events->on_toolbar FOR go_grid1. +* SET HANDLER go_events->on_user_command FOR go_grid1. +* SET HANDLER go_events->on_data_changed FOR go_grid1. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Module ALV_DISPLAY_0100 OUTPUT +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +MODULE alv_display_0100 OUTPUT. + IF go_docking_container IS INITIAL. + PERFORM create_controls. + ENDIF. +ENDMODULE. diff --git a/src/zcom0010o01.prog.xml b/src/zcom0010o01.prog.xml new file mode 100644 index 0000000..9e47bdd --- /dev/null +++ b/src/zcom0010o01.prog.xml @@ -0,0 +1,20 @@ + + + + + + ZCOM0010O01 + I + E + X + + + + R + Include ZCOM0010O01 + 19 + + + + + diff --git a/src/zcom0010top.prog.abap b/src/zcom0010top.prog.abap new file mode 100644 index 0000000..b731044 --- /dev/null +++ b/src/zcom0010top.prog.abap @@ -0,0 +1,80 @@ +*&---------------------------------------------------------------------* +*& Include ZCOM0010TOP - Report ZCOM0010 +*&---------------------------------------------------------------------* +INCLUDE zco_constants. +INCLUDE zco_variant. +INCLUDE zco_macro. + +TABLES: zcat0010, zcat0020. + +SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE TEXT-t01. + PARAMETERS: p_appli TYPE zcat0010-appli OBLIGATORY DEFAULT 'CO', + p_grp TYPE zcat0010-grp, + p_spras TYPE zcat0010-spras NO-DISPLAY. +SELECTION-SCREEN END OF BLOCK b01. + +TYPES: BEGIN OF ty_header, + mark TYPE c LENGTH 1, + appli TYPE zcat0010-appli, + grp TYPE zcat0010-grp, + spras TYPE zcat0010-spras, + grp_txt TYPE zcat0010-grp_txt, + hdr_01 TYPE zcat0010-hdr_01, + len_01 TYPE zcat0010-len_01, + hdr_02 TYPE zcat0010-hdr_02, + len_02 TYPE zcat0010-len_02, + hdr_03 TYPE zcat0010-hdr_03, + len_03 TYPE zcat0010-len_03, + hdr_04 TYPE zcat0010-hdr_04, + len_04 TYPE zcat0010-len_04, + hdr_05 TYPE zcat0010-hdr_05, + len_05 TYPE zcat0010-len_05, + hdr_06 TYPE zcat0010-hdr_06, + len_06 TYPE zcat0010-len_06, + hdr_07 TYPE zcat0010-hdr_07, + len_07 TYPE zcat0010-len_07, + hdr_08 TYPE zcat0010-hdr_08, + len_08 TYPE zcat0010-len_08, + hdr_09 TYPE zcat0010-hdr_09, + len_09 TYPE zcat0010-len_09, + hdr_10 TYPE zcat0010-hdr_10, + len_10 TYPE zcat0010-len_10, + fcnt TYPE zcat0010-fcnt, + remk TYPE zcat0010-remk, + mode TYPE c LENGTH 1, + END OF ty_header. +TYPES tt_header TYPE STANDARD TABLE OF ty_header WITH DEFAULT KEY. + +TYPES: BEGIN OF ty_item, + mark TYPE c LENGTH 1, + appli TYPE zcat0020-appli, + grp TYPE zcat0020-grp, + spras TYPE zcat0020-spras, + code TYPE zcat0020-code, + code_txt TYPE zcat0020-code_txt, + fld_01 TYPE zcat0020-fld_01, + fld_02 TYPE zcat0020-fld_02, + fld_03 TYPE zcat0020-fld_03, + fld_04 TYPE zcat0020-fld_04, + fld_05 TYPE zcat0020-fld_05, + fld_06 TYPE zcat0020-fld_06, + fld_07 TYPE zcat0020-fld_07, + fld_08 TYPE zcat0020-fld_08, + fld_09 TYPE zcat0020-fld_09, + fld_10 TYPE zcat0020-fld_10, + useyn TYPE zcat0020-useyn, + sortseq TYPE zcat0020-sortseq, + mode TYPE c LENGTH 1, + END OF ty_item. +TYPES tt_item TYPE STANDARD TABLE OF ty_item WITH DEFAULT KEY. + +DATA: gt_header TYPE tt_header, + gs_header TYPE ty_header, + gt_item TYPE tt_item, + gs_item TYPE ty_item, + gv_selected_grp TYPE zcat0010-grp, + gv_lines TYPE i. + + + +DATA go_events TYPE REF TO lcl_events. diff --git a/src/zcom0010top.prog.xml b/src/zcom0010top.prog.xml new file mode 100644 index 0000000..00632ad --- /dev/null +++ b/src/zcom0010top.prog.xml @@ -0,0 +1,20 @@ + + + + + + ZCOM0010TOP + I + E + X + + + + R + Include ZCOM0010TOP + 19 + + + + + diff --git a/src/zd_appli_tr01.doma.xml b/src/zd_appli_tr01.doma.xml new file mode 100644 index 0000000..5763b13 --- /dev/null +++ b/src/zd_appli_tr01.doma.xml @@ -0,0 +1,30 @@ + + + + + + ZD_APPLI_TR01 + E + CHAR + 000002 + 000002 + X + SAP applications + + + + 0001 + E + CO + Controlling + + + 0002 + E + TX + TAX + + + + + diff --git a/src/ze_appli_tr01.dtel.xml b/src/ze_appli_tr01.dtel.xml new file mode 100644 index 0000000..bbe304e --- /dev/null +++ b/src/ze_appli_tr01.dtel.xml @@ -0,0 +1,23 @@ + + + + + + ZE_APPLI_TR01 + E + ZD_APPLI_TR01 + 05 + 10 + 15 + 20 + Application area + AppAr + Applicat. + ApplicationArea + Application area + E + D + + + + diff --git a/src/ze_se_code_value.dtel.xml b/src/ze_se_code_value.dtel.xml new file mode 100644 index 0000000..7cca372 --- /dev/null +++ b/src/ze_se_code_value.dtel.xml @@ -0,0 +1,24 @@ + + + + + + ZE_SE_CODE_VALUE + E + 15 + 10 + 15 + 20 + Code value + Code value + Code value + Code value + Code value + E + CHAR + 000012 + 000012 + + + + diff --git a/src/zqtxt_code.dtel.xml b/src/zqtxt_code.dtel.xml new file mode 100644 index 0000000..24b9ac9 --- /dev/null +++ b/src/zqtxt_code.dtel.xml @@ -0,0 +1,24 @@ + + + + + + ZQTXT_CODE + E + 40 + 10 + 15 + 20 + Short Text for Code + Short Text for Code + Short Text + Short Text + Short Text for Code + E + CHAR + 000040 + 000040 + + + + diff --git a/src/zrfks0.tabl.xml b/src/zrfks0.tabl.xml new file mode 100644 index 0000000..fd62abe --- /dev/null +++ b/src/zrfks0.tabl.xml @@ -0,0 +1,64 @@ + + + + + + ZRFKS0 + E + INTTAB + Dialog Fields for Screens from Function Group FKS0 + 1 + + + + ERNAM + ERNAM + 0 + E + + + ERDAT + ERDAT + 0 + T + E + + + ERTIM + 0 + T + 000012 + TIMS + 000006 + TIMS + Time at which the object was created + T + + + AENAM + AENAM + 0 + E + + + AEDAT + AEDAT + 0 + T + E + + + AETIM + 0 + T + 000012 + TIMS + 000006 + TIMS + Time at Which the Object Was Last Changed + T + + + + +