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..b8e25b6 --- /dev/null +++ b/src/package.devc.xml @@ -0,0 +1,10 @@ + + + + + + 간편장부및 부가세 신고 + + + + diff --git a/src/z_cds_date_param.ddls.asddls b/src/z_cds_date_param.ddls.asddls new file mode 100644 index 0000000..192ccc4 --- /dev/null +++ b/src/z_cds_date_param.ddls.asddls @@ -0,0 +1,24 @@ +@AbapCatalog.sqlViewName: 'ZV_DATEPARM' +@AbapCatalog.compiler.compareFilter: true +@AbapCatalog.preserveKey: true +@AccessControl.authorizationCheck: #NOT_REQUIRED +@EndUserText.label: 'test' +@Metadata.ignorePropagatedAnnotations: true +define view Z_CDS_DATE_PARAM + with parameters p_date : abap.dats +as select from zttax0020 +{ + key reg_no, + key confirm_date, + shop_nm, + + substring( + DATS_ADD_MONTHS( + confirm_date, + -1, + 'FAIL' + ), 1 , 6 ) as test + +} + +where confirm_date >= $parameters.p_date diff --git a/src/z_cds_date_param.ddls.baseinfo b/src/z_cds_date_param.ddls.baseinfo new file mode 100644 index 0000000..f09f305 --- /dev/null +++ b/src/z_cds_date_param.ddls.baseinfo @@ -0,0 +1,19 @@ +{ +"BASEINFO": +{ +"FROM": +[ +"ZTTAX0020" +], +"ASSOCIATED": +[], +"BASE": +[], +"ANNO_REF": +[], +"SCALAR_FUNCTION": +[], +"VERSION":0, +"ANNOREF_EVALUATION_ERROR":"" +} +} \ No newline at end of file diff --git a/src/z_cds_date_param.ddls.xml b/src/z_cds_date_param.ddls.xml new file mode 100644 index 0000000..d1c863b --- /dev/null +++ b/src/z_cds_date_param.ddls.xml @@ -0,0 +1,13 @@ + + + + + + Z_CDS_DATE_PARAM + E + test + V + + + + diff --git a/src/zcds_vtax0008.ddls.asddls b/src/zcds_vtax0008.ddls.asddls new file mode 100644 index 0000000..af20f64 --- /dev/null +++ b/src/zcds_vtax0008.ddls.asddls @@ -0,0 +1,30 @@ +@AbapCatalog.sqlViewName: 'ZVTAX0008' +@AbapCatalog.compiler.compareFilter: true +@AbapCatalog.preserveKey: true +@AccessControl.authorizationCheck: #NOT_REQUIRED +@EndUserText.label: '감가상각 스케쥴표' +@Metadata.ignorePropagatedAnnotations: true +define view zcds_vtax0008 as +select + p.assettype, + p.assetcode, + q.seq_no, + q.yearmonth, + p.assetdate, + p.aname, + p.depr_method, + p.useful_life, + @Semantics.currencyCode: true + p.waers, + @Semantics.amount.currencyCode: 'waers' + p.assetprice, + q.start_ym, + q.end_ym, + @Semantics.amount.currencyCode: 'waers' + q.dep_amt + from zttax0008 as p + inner join ztf_asset_depr as q + on p.mandt = q.mandt + and p.assettype = q.assettype + and p.assetcode = q.assetcode + ; diff --git a/src/zcds_vtax0008.ddls.baseinfo b/src/zcds_vtax0008.ddls.baseinfo new file mode 100644 index 0000000..d838a8d --- /dev/null +++ b/src/zcds_vtax0008.ddls.baseinfo @@ -0,0 +1,19 @@ +{ +"BASEINFO": +{ +"FROM": +[ +"ZTTAX0008" +], +"ASSOCIATED": +[], +"BASE": +[], +"ANNO_REF": +[], +"SCALAR_FUNCTION": +[], +"VERSION":0, +"ANNOREF_EVALUATION_ERROR":"" +} +} \ No newline at end of file diff --git a/src/zcds_vtax0008.ddls.xml b/src/zcds_vtax0008.ddls.xml new file mode 100644 index 0000000..5f5d6fa --- /dev/null +++ b/src/zcds_vtax0008.ddls.xml @@ -0,0 +1,13 @@ + + + + + + ZCDS_VTAX0008 + E + 감가상각 스케쥴표 + V + + + + diff --git a/src/zcl_common_class.clas.abap b/src/zcl_common_class.clas.abap new file mode 100644 index 0000000..1352a90 --- /dev/null +++ b/src/zcl_common_class.clas.abap @@ -0,0 +1,25 @@ +class ZCL_COMMON_CLASS definition + public + create public . + +public section. + + types TY_ROW type STRING_TABLE . + types: + TY_T_ROW type STANDARD TABLE OF TY_ROW with DEFAULT KEY . + + methods UPLOAD_EXCEL_TO_ITAB + returning + value(RR_DATA) type ref to DATA . +protected section. +private section. +ENDCLASS. + + + +CLASS ZCL_COMMON_CLASS IMPLEMENTATION. + + + method UPLOAD_EXCEL_TO_ITAB. + endmethod. +ENDCLASS. diff --git a/src/zcl_common_class.clas.xml b/src/zcl_common_class.clas.xml new file mode 100644 index 0000000..c7cded8 --- /dev/null +++ b/src/zcl_common_class.clas.xml @@ -0,0 +1,41 @@ + + + + + + ZCL_COMMON_CLASS + E + 공통 클래스 + 1 + X + X + X + + + + TY_ROW + E + Table of Strings + + + TY_T_ROW + E + Table of Strings + + + UPLOAD_EXCEL_TO_ITAB + E + 선택된 xlsx 파일 내용을 Itab 으로 리턴 + + + + + UPLOAD_EXCEL_TO_ITAB + RR_DATA + E + Table of Strings + + + + + diff --git a/src/zcl_custom_tax_amdp.clas.abap b/src/zcl_custom_tax_amdp.clas.abap new file mode 100644 index 0000000..c6ed4aa --- /dev/null +++ b/src/zcl_custom_tax_amdp.clas.abap @@ -0,0 +1,78 @@ +class ZCL_CUSTOM_TAX_AMDP definition + public + final + create public . + +public section. + + interfaces IF_AMDP_MARKER_HDB . + + class-methods GET_ASSET_DEPR_PLAN + for table function ZTF_ASSET_DEPR . +protected section. +private section. +ENDCLASS. + + + +CLASS ZCL_CUSTOM_TAX_AMDP IMPLEMENTATION. + + + METHOD get_asset_depr_plan + BY DATABASE FUNCTION + FOR HDB + LANGUAGE SQLSCRIPT + OPTIONS READ-ONLY + USING zttax0008 scal_tt_month. + + RETURN + select mandt, + assettype, + assetcode, +* assetdate, +* aname, +* depr_method, +* useful_life, + month_cnt, + start_ym, + end_ym, +* assetprice, + yearmonth, + seq_no, + +* Round amt fixed. + CASE when seq_no = month_cnt then + ( dep_amt + assetprice - (dep_amt * month_cnt )) + ELSE dep_amt + END as dep_amt, + waers + from ( + SELECT mandt, + assettype, + assetcode, +* assetdate, +* aname, +* depr_method, +* useful_life, + useful_life * 12 as month_cnt, + to_varchar(assetdate, 'yyyymm') as start_ym, + to_varchar(add_months(assetdate, useful_life * 12 - 1 ), 'YYYYMM') as end_ym, + assetprice, + q.yearmonth, + row_number() over ( + partition by p.assetcode + order by q.yearmonth + ) as seq_no, + + round(assetprice / (useful_life * 12), 2) as dep_amt, + + waers + from zttax0008 as p + inner join scal_tt_month as q + ON q.yearmonth >= to_varchar(assetdate, 'yyyymm') + and q.yearmonth < to_varchar(add_months(assetdate, useful_life * 12 ), 'YYYYMM') + where p.depr_method = '1' + ); + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_custom_tax_amdp.clas.xml b/src/zcl_custom_tax_amdp.clas.xml new file mode 100644 index 0000000..7628fee --- /dev/null +++ b/src/zcl_custom_tax_amdp.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_CUSTOM_TAX_AMDP + E + 조회 + 1 + X + X + X + + + + diff --git a/src/zco_constants.prog.abap b/src/zco_constants.prog.abap new file mode 100644 index 0000000..78fe1e1 --- /dev/null +++ b/src/zco_constants.prog.abap @@ -0,0 +1,168 @@ +*&---------------------------------------------------------------------* +*& Include ZCO_CONSTANTS +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Include ZH_CONSTANTS +*&---------------------------------------------------------------------* + +*-- ALV Grid 번호. +CONSTANTS: gc_grid(5) VALUE'GRID', + gc_grid1(5) VALUE'GRID1', + gc_grid2(5) VALUE'GRID2', + gc_grid3(5) VALUE'GRID3', + gc_grid4(5) VALUE'GRID4', + gc_grid5(5) VALUE'GRID5'. + +*-- 수량 단위. +CONSTANTS: BEGIN OF gc_quan, + pc TYPE t006-msehi VALUE 'PC', + st TYPE t006-msehi VALUE 'ST', + ea TYPE t006-msehi VALUE 'EA', + END OF gc_quan. + +*-- 금액 단위. +CONSTANTS: BEGIN OF gc_waers, + krw TYPE tcurc-waers VALUE 'KRW', + usd TYPE tcurc-waers VALUE 'USD', + END OF gc_waers. + +*-- Icon. +CONSTANTS: BEGIN OF gc_icon, + success LIKE icon-id VALUE '@08@', " 성공. + error LIKE icon-id VALUE '@0A@', " 에러. + warning LIKE icon-id VALUE '@09@', " 경고. + + create LIKE icon-id VALUE '@0Y@', " 생성. + change LIKE icon-id VALUE '@0Z@', " 변경. + delete LIKE icon-id VALUE '@11@', " 삭제. + + green LIKE icon-id VALUE '@5B@', + red LIKE icon-id VALUE '@5C@', + yellow LIKE icon-id VALUE '@5D@', + + expand LIKE icon-id VALUE '@3S@', " 확장 - 펼치기. + collapse LIKE icon-id VALUE '@3T@', " 접기. + para LIKE icon-id VALUE '@77@', " Tree Value. + END OF gc_icon. + +*-- Fcode. +CONSTANTS: BEGIN OF gc_fcode, + back LIKE sy-ucomm VALUE 'BACK', + canc LIKE sy-ucomm VALUE 'CANC', + exit LIKE sy-ucomm VALUE 'EXIT', + + save LIKE sy-ucomm VALUE 'SAVE', + dele LIKE sy-ucomm VALUE 'DELE', + exec LIKE sy-ucomm VALUE 'EXEC', + excel LIKE sy-ucomm VALUE 'EXCEL', + dist LIKE sy-ucomm VALUE 'DIST', + disp LIKE sy-ucomm VALUE 'DISP', + link LIKE sy-ucomm VALUE 'LINK', + refresh LIKE sy-ucomm VALUE 'REFRESH', + + pf01 LIKE sy-ucomm VALUE 'PF01', " BTN 1. + pf02 LIKE sy-ucomm VALUE 'PF02', " BTN 2. + pf03 LIKE sy-ucomm VALUE 'PF03', " BTN 3. + pf04 LIKE sy-ucomm VALUE 'PF04', " BTN 4. + + pick LIKE sy-ucomm VALUE 'PICK', + +* 전표. + post LIKE sy-ucomm VALUE 'POST', + reve LIKE sy-ucomm VALUE 'REVE', + + togg LIKE sy-ucomm VALUE 'TOGG', + END OF gc_fcode. + +*-- Popup Answer Code. +CONSTANTS: BEGIN OF gc_answer, + yes TYPE c VALUE 'J', + no TYPE c VALUE 'N', + canc TYPE c VALUE 'A', + END OF gc_answer. + +*-- ALV Mode. +CONSTANTS: BEGIN OF gc_mode, + create TYPE c VALUE 'C', " 생성. + modify TYPE c VALUE 'M', " 변경. + delete TYPE c VALUE 'D', " 삭제. + excel TYPE c VALUE 'A', " 엑셀. + error TYPE c VALUE 'E', " 에러. + save TYPE c VALUE 'S', " 저장. + disp TYPE c VALUE 'P', " 조회. + change TYPE c VALUE 'H', " 수정. + END OF gc_mode. + +*-- Tcode 관련. +CONSTANTS: BEGIN OF gc_tcode, + fb01(4) TYPE c VALUE 'FB01', " 전표생성. + fb02(4) TYPE c VALUE 'FB02', " 전표변경. + fb03(4) TYPE c VALUE 'FB03', " 전표조회. + END OF gc_tcode. + +*-- 세트 값. +*CONSTANTS: BEGIN OF gc_setcls, +* set LIKE setnode-setclass VALUE '0000', " 세트 +* kostl LIKE setnode-setclass VALUE '0101', " 코스트센터 그룹. +* kstar LIKE setnode-setclass VALUE '0102', " 원가요소 +* prctr LIKE setnode-setclass VALUE '0106', " 손익센터 +* racct LIKE setnode-setclass VALUE '0109', " 계정 +* END OF gc_setcls. + +**-- 공통 Code. +*CONSTANTS : BEGIN OF gc_codegrp, +* j001 LIKE zcot0021-codegrp VALUE 'J001', " 사업부문별 표준계층구조 매핑 +* j002 LIKE zcot0021-codegrp VALUE 'J002', " 판매오더 손익센터 대체 +* j003 LIKE zcot0021-codegrp VALUE 'J003', " 코스트센터-브랜드 매핑 +* a001 LIKE zcot0021-codegrp VALUE 'A001', " 점포사업장 매출원가 대체 +* k101 LIKE zcot0021-codegrp VALUE 'K101', " 경관차조정 - 성과급 +* k102 LIKE zcot0021-codegrp VALUE 'K102', " 경관차조정 - 전대 +* k103 LIKE zcot0021-codegrp VALUE 'K103', " 경관차조정 - 리스 +* k104 LIKE zcot0021-codegrp VALUE 'K104', " 경관차조정 - 손상관련 감가상각 +* k106 LIKE zcot0021-codegrp VALUE 'K106', " 경관차조정 - 손상처리 조정 +* k109 LIKE zcot0021-codegrp VALUE 'K109', " 경관차조정 - FE 물류비 대체 +* a011 LIKE zcot0021-codegrp VALUE 'A011', " 경관차조정 - 매출차감 복원 +* +* a002 LIKE zcot0021-codegrp VALUE 'A002', " 점포수불부 생산입고/타계정출고계정(ZCOR0010) +* a005 LIKE zcot0021-codegrp VALUE 'A005', " 재료비/생산금액집계(ZCOR0060) +* c004 LIKE zcot0021-codegrp VALUE 'C004', " NRV 수불집계 출고유형(ZCOR0280) +* c005 LIKE zcot0021-codegrp VALUE 'C005', " NRV 출고율적용플랜트(ZCOR0280) +* c007 LIKE zcot0021-codegrp VALUE 'C007', " 후레쉬센터 경비종류별 원가요소그룹(ZCOR0650) +* c009 LIKE zcot0021-codegrp VALUE 'C009', " 물류비 배부기준 +* +* t001 LIKE zcot0021-codegrp VALUE 'T001', " 오더유형 +* t002 LIKE zcot0021-codegrp VALUE 'T002', " DEFAULT 오더그룹 +* END OF gc_codegrp. + +*-- SU01 - 파라미터. +CONSTANTS: BEGIN OF gc_para_code, + cac(3) TYPE c VALUE 'CAC', + buk(3) TYPE c VALUE 'BUK', + END OF gc_para_code. + +*-- 계획버전 +*CONSTANTS: BEGIN OF gc_version, +* 000 TYPE tkvs-versi VALUE '000', " 계획/실제 +* a00 TYPE tkvs-versi VALUE 'A00', " 경영 +* a10 TYPE tkvs-versi VALUE 'A10', " 수정 +* r00 TYPE tkvs-versi VALUE 'R00', " 실행 +* b00 TYPE tkvs-versi VALUE 'B00', " 예산(기초) +* END OF gc_version. + +*-- 컨버전 +CONSTANTS: BEGIN OF gc_conv, + alpha TYPE convexit VALUE 'ALPHA', + matn1 TYPE convexit VALUE 'MATN1', + cunit TYPE convexit VALUE 'CUNIT', + END OF gc_conv. + +*-- 데이터타입 +CONSTANTS: BEGIN OF gc_datatype, + p(1) TYPE c VALUE 'P', + i(1) TYPE c VALUE 'I', + END OF gc_datatype. + +CONSTANTS : gc_e TYPE c VALUE 'E', + gc_s TYPE c VALUE 'S', + gc_d TYPE c VALUE 'D'. diff --git a/src/zco_constants.prog.xml b/src/zco_constants.prog.xml new file mode 100644 index 0000000..68af1e7 --- /dev/null +++ b/src/zco_constants.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZCO_CONSTANTS + I + X + + + + diff --git a/src/zco_macro.prog.abap b/src/zco_macro.prog.abap new file mode 100644 index 0000000..5120f88 --- /dev/null +++ b/src/zco_macro.prog.abap @@ -0,0 +1,624 @@ +*&---------------------------------------------------------------------* +*& Include ZCO_MACRO +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Include ZCO_MACRO +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Macro. * +* 001. __ALV_REFRESH - Refresh ALV. * +* 002. __ALV_OPTIMIZE - Set Optimize. * +* 003. __ALV_EDITCELL - ALV Edit Cell * +* 004. __ALV_GETCELL - ALV Cell. * +* 005. __ALV_TOOLBAR - ALV Toolbar 생성 * +* 006. __ALV_CELLSTYLE - Cellstyle 지정 (Enable / Disable) * +* 007. __ALV_CELLCOLOR - Cellcolor 지정 * +* 008. __ALV_CELLHOTSPOT - Cell Hotspot 지정 * +* 009. __ALV_CURSOR - Cell Cursor 지정 * +* * +* 010. __GET_SELECT_ROWS - ALV 선택 Rows 가져오기 * +* 011. __SET_SELECT_ROWS - ALV 선택 Rows 유지하기 * +* 012. __SET_FRONTEND_FIELDCAT - 필드카다로그 재설정 * +* 013. __SET_FRONTEND_LAYOUT - Layout 재설정 * +* 014. __SET_READY_INPUT - ALV Input 활성 Check * +* * +* 020. __SPLITTER - 컨테이너 Split * +* 021. __SET_SPLITTER - Split한 Container 연결 * +* 022. __HEIGHT_SPLIT - Split 높이지정 * +* 023. __WIDTH_SPLIT - Split 넓이지정 * +* * +* 030. __RANGES - Range 생성. * +* 031. __ICON_CREATE - Button Icon 생성. * +* 032. __POPUP_TO_CONFIRM_STEP - Yer / No Popup 실행 * +* 033. __LASTDAY_OF_MONTHS - 월의 마지막날 가져오기 * +* 034. __CONVERSION_ALPHA - Conversion Input/Output * +* 035. __CONVERSION_MATNR - Conversion Material Input/Output * +* 036. __CONVERSION_CURRENCY - 통화단위에 맞게 금액변경 * +* 037. __SAPGUI_INDICATOR - SAPGUI 상태바 * +* 038. __SF_SPECIALCHAR_DELETE - 특수문자 제거(EXCEL 업로드시) * +* * +* 040. __DATE_VALID_CHECK - 일자타입 Validation Check * +* 041. __BETWEEN_DATES - 일간의 일자 구하기 * +*&---------------------------------------------------------------------* + +*----------------------------------------------------------------------* +* 001. __ALV_REFRESH - Refresh ALV. +*----------------------------------------------------------------------* +DEFINE __alv_refresh. + +*-- ALV Refresh. + CLEAR gs_stable. + gs_stable-row = &3. gs_stable-col = &4. + CALL METHOD &1->refresh_table_display + EXPORTING + i_soft_refresh = &2 + is_stable = gs_stable. + +END-OF-DEFINITION. + +*----------------------------------------------------------------------* +* 002. __ALV_OPTIMIZE - Set Optimize. +*----------------------------------------------------------------------* +DEFINE __alv_optimize. + +*-- Set_OPTIMIZE. + CALL METHOD &1->set_optimize_all_cols. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 003. __ALV_EDITCELL - ALV Edit Cell. +*&---------------------------------------------------------------------* +DATA: po_er_data_changed TYPE REF TO cl_alv_changed_data_protocol, + gv_cell_index TYPE lvc_s_modi-row_id. + +DEFINE __alv_editcell. + +*-- ALV Cell Modify. + CALL METHOD po_er_data_changed->modify_cell + EXPORTING + i_row_id = gv_cell_index + i_fieldname = &1 + i_value = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 004. __ALV_GETCELL - ALV Cell . +*&---------------------------------------------------------------------* +DEFINE __alv_getcell. + +*-- ALV Cell Value. + CALL METHOD po_er_data_changed->get_cell_value + EXPORTING + i_row_id = gv_cell_index + i_fieldname = &1 + IMPORTING + e_value = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 005. __ALV_TOOLBAR - ALV Toolbar 생성. +*&---------------------------------------------------------------------* +DEFINE __alv_toolbar. + +*-- Crete ALV Toolbar. + CLEAR: gs_toolbar. + MOVE : &3 TO gs_toolbar-function, " FUNCTION CODE. + &4 TO gs_toolbar-icon, " ICON. + &5 TO gs_toolbar-quickinfo, " ICON QUICKINFO. + &6 TO gs_toolbar-text, " BUTTON TEXT. + &7 TO gs_toolbar-butn_type, " BUTTON TYPE . + &8 TO gs_toolbar-disabled. " 'X' - 사용 불가능. + + INSERT gs_toolbar INTO &1->mt_toolbar INDEX &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 006. __ALV_CELLSTYLE - Cellstyle 지정 (Enable / Disable). +*&---------------------------------------------------------------------* +DEFINE __alv_cellstyle. + +*-- SET ALV CELLSTYLE. + CLEAR: gs_style. + gs_style-fieldname = &1. + + CASE &2. + WHEN 'E'. + gs_style-style = cl_gui_alv_grid=>mc_style_enabled. + + WHEN 'D'. + gs_style-style = cl_gui_alv_grid=>mc_style_disabled. + + WHEN 'H'. + gs_style-style = cl_gui_alv_grid=>mc_style_hotspot. + ENDCASE. + +*--// + INSERT gs_style INTO TABLE gt_style. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 007. __ALV_CELLCOLOR- Cellcolor 지정. +*&---------------------------------------------------------------------* +DEFINE __alv_cellcolor. + +*-- SET ALV CELLCOLOR. + CLEAR: gs_color. + gs_color-fname = &1. " Fieldname. + gs_color-color-col = &2. " 색상. + gs_color-color-int = &3. " 강조. + INSERT gs_color INTO TABLE gt_color. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 008. __ALV_CELLHOTSPOT - Cell Hotspot 지정. +*&---------------------------------------------------------------------* +DEFINE __alv_cellhotspot. + +*-- SET ALV CELLHOTSPOT. + CLEAR: gs_style. + gs_style-fieldname = &1. + +*-- + gs_style-style = cl_gui_alv_grid=>mc_style_hotspot. + INSERT gs_style INTO TABLE gt_style. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 009. __ALV_CURSOR - ALC Cell Cursor 지정. +*&---------------------------------------------------------------------* +DEFINE __alv_cursor. + + DATA: ls_col TYPE lvc_s_col, + ls_row TYPE lvc_s_row. + + CLEAR: ls_col, ls_row. + ls_row-index = &2. + ls_col-fieldname = &3. + +*-- Cursor 지정. + CALL METHOD &1->set_current_cell_via_id + EXPORTING + is_row_id = ls_row + is_column_id = ls_col. + +***-- Cursor의 화면 지정. +** CALL METHOD &1->set_scroll_info_via_id +** EXPORTING +** is_row_info = ls_row +** is_col_info = ls_col. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 010. __GET_SELECT_ROWS - ALV 선택 Rows 가져오기 +*&---------------------------------------------------------------------* +DEFINE __get_select_rows. + + CLEAR: gs_rows, gt_rows, gt_rows[]. + +*-- 선택 ROW 가져오기. + CALL METHOD &1->get_selected_rows + IMPORTING + et_index_rows = gt_rows. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 011. __SET_SELECT_ROWS - ALV 선택 Rows 유지하기 +*&---------------------------------------------------------------------* +DEFINE __set_select_rows. + +*-- 선택 ROW 유지하기. + CALL METHOD &1->set_selected_rows + EXPORTING + it_index_rows = gt_rows. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 012. __SET_FRONTEND_FIELDCAT - 필드카다로그 재설정 +*&---------------------------------------------------------------------* +DEFINE __set_frontend_fieldcat. + +*-- 필드카다로그 재설정. + CALL METHOD &1->set_frontend_fieldcatalog + EXPORTING + it_fieldcatalog = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 013. __SET_FRONTEND_LAYOUT - Layout 재설정 +*&---------------------------------------------------------------------* +DEFINE __set_frontend_layout. + +*-- 필드카다로그 재설정. + CALL METHOD &1->set_frontend_layout + EXPORTING + is_layout = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 014. __SET_READY_INPUT - ALV Input 활성 Check +*&---------------------------------------------------------------------* +DEFINE __set_ready_input. + +*-- ALV Input 활성 Check + CALL METHOD &1->set_ready_for_input + EXPORTING + i_ready_for_input = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 020. __SPLITTER - 컨테이너 Split. +*&---------------------------------------------------------------------* +DEFINE __splitter. + +*-- Create a splitter control for ALV Grid Control. + CREATE OBJECT &1 + EXPORTING + parent = &2 + rows = &3 + columns = &4 + EXCEPTIONS + cntl_error = 1 + cntl_system_error = 2 + OTHERS = 3. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 021. __SET_SPLITTER - Split한 Container 연결. +*&---------------------------------------------------------------------* +DEFINE __set_splitter. + +*-- Get the containers of the splitter control. + CALL METHOD &1->get_container + EXPORTING + row = &3 + column = &4 + RECEIVING + container = &2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 022. __HEIGHT_SPLIT - Split 높이지정. +*&---------------------------------------------------------------------* +DEFINE __height_split. + +*-- + CALL METHOD &1->set_row_height + EXPORTING + id = &2 + height = &3 + EXCEPTIONS + cntl_error = 1 + cntl_system_error = 2 + OTHERS = 3. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 023. __WIDTH_SPLIT - Split 넓이지정. +*&---------------------------------------------------------------------* +DEFINE __width_split. + +*-- + CALL METHOD &1->set_column_width + EXPORTING + id = &2 + width = &3 + EXCEPTIONS + cntl_error = 1 + cntl_system_error = 2 + OTHERS = 3. + +END-OF-DEFINITION. + +*----------------------------------------------------------------------* +* 030. __RANGES - Range 생성. +*----------------------------------------------------------------------* +DEFINE __ranges. + +*-- Ranges 변수 Setting. + MOVE : &2 TO &1-sign, + &3 TO &1-option, + &4 TO &1-low, + &5 TO &1-high. + + COLLECT &1. + CLEAR: &1. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 031. __ICON_CREATE - Button Icon 생성. +*&---------------------------------------------------------------------* +DEFINE __icon_create. + +*-- Button Icon 설정. + CALL FUNCTION 'ICON_CREATE' + EXPORTING + name = &1 " 아이콘. + text = &2 " 텍스트. + info = &3 " 텍스트 정보. + IMPORTING + result = &4 " 변경할 Button. + EXCEPTIONS + icon_not_found = 1 + outputfield_too_short = 2 + OTHERS = 3. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 032. __POPUP_TO_CONFIRM_STEP - Yer / No Popup 실행. +*&---------------------------------------------------------------------* +DATA: gv_answer. + +DEFINE __popup_to_confirm_step. + + CLEAR: gv_answer. + +*-- Yer / No / Cancel Popup. + CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' + EXPORTING + defaultoption = 'Y' + textline1 = &1 + textline2 = &2 + titel = &3 + IMPORTING + answer = gv_answer. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 033. __LASTDAY_OF_MONTHS - 월의 마지막날 가져오기. +*&---------------------------------------------------------------------* +DEFINE __lastday_of_months. + +*-- 월의 마지막날 가져오기. + CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS' + EXPORTING + day_in = &1 + IMPORTING + last_day_of_month = &2 + EXCEPTIONS + day_in_no_date = 1 + OTHERS = 2. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 034. __CONVERSION_ALPHA - Conversion Input/Output . +*&---------------------------------------------------------------------* +DEFINE __conversion_alpha. + + CASE &1. + WHEN 'I'. + CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' + EXPORTING + input = &2 + IMPORTING + output = &2. + + WHEN 'O'. + CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' + EXPORTING + input = &2 + IMPORTING + output = &2. + + ENDCASE. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 035. __CONVERSION_MATNR - Conversion Material Input/Output . +*&---------------------------------------------------------------------* +DEFINE __conversion_matnr. + + CASE &1. + WHEN 'I'. + CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' + EXPORTING + input = &2 + IMPORTING + output = &2. + + WHEN 'O'. + CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' + EXPORTING + input = &2 + IMPORTING + output = &2. + + ENDCASE. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 036. __CONVERSION_CURRENCY - 통화단위에 맞게 금액변경. +*&---------------------------------------------------------------------* +DATA : lv_amount(50). + +DEFINE __conversion_currency. + + CLEAR: lv_amount. + lv_amount = &2. + + CASE &1. + WHEN 'I'. + +*-- 통화단위에 맞게 금액변경. + CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP' + EXPORTING + currency = &3 + idoc_amount = lv_amount + IMPORTING + sap_amount = lv_amount. + + WHEN 'O'. + +*-- 통화단위에 맞게 금액변경. + CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC' + EXPORTING + currency = &3 + sap_amount = lv_amount + IMPORTING + idoc_amount = lv_amount. + + ENDCASE. + + &2 = lv_amount. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 037. __SAPGUI_INDICATOR - SAPGUI 상태바 +*&---------------------------------------------------------------------* +DEFINE __sapgui_indicator. + +*-- SAPGUI 상태바. + CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' + EXPORTING + percentage = &1 + text = &2. + +END-OF-DEFINITION. +*&---------------------------------------------------------------------* +*& 038. __SF_SPECIALCHAR_DELETE - 특수문자 제거(EXCEL 업로드시) +*&---------------------------------------------------------------------* +DATA gv_searchhw TYPE fist-searchw. + +DEFINE __sf_specialchar_delete. + gv_searchhw = &1. + + CALL FUNCTION 'SF_SPECIALCHAR_DELETE' + EXPORTING + with_specialchar = gv_searchhw + IMPORTING + without_specialchar = gv_searchhw + EXCEPTIONS + result_word_empty = 1 + OTHERS = 2. + + &1 = gv_searchhw. +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 040. __DATE_VALID_CHECK - 일자타입 Validation Check . +*&---------------------------------------------------------------------* + +DATA : lv_value TYPE char20, + lv_int TYPE i, + lv_len TYPE i. + +DEFINE: __date_valid_check. + + CLEAR: lv_int, lv_len, lv_value. + lv_len = strlen( &1 ). + + DO lv_len TIMES. + IF &1+lv_int(1) CA '1234567890'. + CONCATENATE lv_value &1+lv_int(1) INTO lv_value. + ENDIF. + + ADD 1 TO lv_int. + ENDDO. + + &1 = lv_value. + +END-OF-DEFINITION. + +*&---------------------------------------------------------------------* +*& 041. __BETWEEN_DATES - 일간의 일자 구하기. +*&---------------------------------------------------------------------* +DEFINE __between_dates. + +*-- 일과 일사이 일수 구하기.. + CALL FUNCTION 'HR_MX_INTERVAL_BETWEEN_DATES' + EXPORTING + i_date_start = &1 + i_date_end = &2 + IMPORTING + e_days = &3. + +END-OF-DEFINITION. +*&---------------------------------------------------------------------* +*& Include ZPP_MACRO +*&---------------------------------------------------------------------* +"-* Clear +DEFINE M_CLEAR. + + clear: &1, &1[]. + +END-OF-DEFINITION. + +"-*append +DEFINE M_APPEND. + + append &1. clear &1. + +END-OF-DEFINITION. + +"-*collect +DEFINE M_COLLECT. + + collect &1. clear &1. + +END-OF-DEFINITION. + +"-*range +DEFINE M_RANGES. + + clear &1. + + move : &2 to &1-sign, + + &3 to &1-option, + + &4 to &1-low, + + &5 to &1-high. + + + + append &1. + + clear &1. + +END-OF-DEFINITION. + +"-*Range copy +DEFINE M_RANGES_COPY. + + M_CLEAR &1. + + LOOP AT &2. + + &1-OPTION = &2-OPTION. + + &1-SIGN = &2-SIGN. + + &1-LOW = &2-LOW. + + &1-HIGH = &2-HIGH. + + M_APPEND &1. + + ENDLOOP. + +END-OF-DEFINITION. diff --git a/src/zco_macro.prog.xml b/src/zco_macro.prog.xml new file mode 100644 index 0000000..d15ef8d --- /dev/null +++ b/src/zco_macro.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZCO_MACRO + I + X + + + + diff --git a/src/zco_variant.prog.abap b/src/zco_variant.prog.abap new file mode 100644 index 0000000..f30a7d9 --- /dev/null +++ b/src/zco_variant.prog.abap @@ -0,0 +1,168 @@ +*&---------------------------------------------------------------------* +*& Include ZCO_VARIANT +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Include ZH_VARIANT +*&---------------------------------------------------------------------* + +TABLES: sscrfields. + +DATA : gv_err. + +*----------------------------------------------------------------------* +* ALV DEFINE * +*----------------------------------------------------------------------* +DATA : + +*-- Container. + go_docking_container TYPE REF TO cl_gui_docking_container, + go_docking_container1 TYPE REF TO cl_gui_docking_container, + go_docking_container2 TYPE REF TO cl_gui_docking_container, + go_docking_container3 TYPE REF TO cl_gui_docking_container, + + go_custom_container TYPE REF TO cl_gui_custom_container, + go_custom_container1 TYPE REF TO cl_gui_custom_container, + go_custom_container2 TYPE REF TO cl_gui_custom_container, + go_custom_container3 TYPE REF TO cl_gui_custom_container, + go_custom_container4 TYPE REF TO cl_gui_custom_container, + + go_splitter TYPE REF TO cl_gui_splitter_container, + go_splitter_w1 TYPE REF TO cl_gui_splitter_container, + go_splitter_w2 TYPE REF TO cl_gui_splitter_container, + go_splitter_w3 TYPE REF TO cl_gui_splitter_container, + go_splitter_h1 TYPE REF TO cl_gui_splitter_container, + go_splitter_h2 TYPE REF TO cl_gui_splitter_container, + go_splitter_h3 TYPE REF TO cl_gui_splitter_container, + + go_container TYPE REF TO cl_gui_container, + go_container1 TYPE REF TO cl_gui_container, + go_container2 TYPE REF TO cl_gui_container, + go_container3 TYPE REF TO cl_gui_container, + go_container4 TYPE REF TO cl_gui_container, + go_container5 TYPE REF TO cl_gui_container, + + go_container_top TYPE REF TO cl_gui_container, + go_container_end TYPE REF TO cl_gui_container, + go_container_l TYPE REF TO cl_gui_container, + go_container_r TYPE REF TO cl_gui_container, + + go_top_of_list TYPE REF TO cl_gui_html_viewer, + go_end_of_list TYPE REF TO cl_gui_html_viewer, + +*-- ALV Grid. + go_grid TYPE REF TO lcl_alv_grid, + go_grid1 TYPE REF TO lcl_alv_grid, + go_grid2 TYPE REF TO lcl_alv_grid, + go_grid3 TYPE REF TO lcl_alv_grid, + go_grid4 TYPE REF TO lcl_alv_grid, + go_grid5 TYPE REF TO lcl_alv_grid, + +*-- ALV Tree. + go_tree1 TYPE REF TO cl_gui_alv_tree, + go_tree2 TYPE REF TO cl_gui_alv_tree, + go_tree3 TYPE REF TO cl_gui_alv_tree, + go_tree4 TYPE REF TO cl_gui_alv_tree, + + gs_variant TYPE disvariant, + gs_variant1 TYPE disvariant, + gs_variant2 TYPE disvariant, + gs_variant3 TYPE disvariant, + gs_variant4 TYPE disvariant, + gs_variant5 TYPE disvariant, + +*-- ALV control: Layout + gs_layout TYPE lvc_s_layo, + gs_layout1 TYPE lvc_s_layo, + gs_layout2 TYPE lvc_s_layo, + gs_layout3 TYPE lvc_s_layo, + gs_layout4 TYPE lvc_s_layo, + gs_layout5 TYPE lvc_s_layo, + +*-- ALV LIst : Fieldcataolg. + gs_fieldcat TYPE lvc_s_fcat, + gt_fieldcat TYPE lvc_t_fcat, + gt_fieldcat1 TYPE lvc_t_fcat, + gt_fieldcat2 TYPE lvc_t_fcat, + gt_fieldcat3 TYPE lvc_t_fcat, + gt_fieldcat4 TYPE lvc_t_fcat, + gt_fieldcat5 TYPE lvc_t_fcat, + gt_fieldcat_popup TYPE lvc_t_fcat, + +*-- ALV F4 Help. + gt_f4 TYPE lvc_t_f4, + gs_f4 TYPE lvc_s_f4, + +*-- ALV Sorting. + gs_sort TYPE lvc_s_sort, + gt_sort TYPE lvc_t_sort, + gt_sort1 TYPE lvc_t_sort, + gt_sort2 TYPE lvc_t_sort, + gt_sort3 TYPE lvc_t_sort, + gt_sort4 TYPE lvc_t_sort, + gt_sort5 TYPE lvc_t_sort, + +*-- ALV Toolbar. + gs_toolbar TYPE stb_button, + go_toolbar TYPE REF TO cl_gui_toolbar, + + gs_exclude TYPE ui_functions, + gs_exclude1 TYPE ui_functions, + gs_exclude2 TYPE ui_functions, + gs_exclude3 TYPE ui_functions, + gs_exclude4 TYPE ui_functions, + gs_exclude5 TYPE ui_functions, + +*-- ALV Color & Style + gs_color TYPE lvc_s_scol, + gt_color TYPE lvc_t_scol WITH HEADER LINE, + gs_style TYPE lvc_s_styl, + gt_style TYPE lvc_t_styl WITH HEADER LINE, + gs_stable TYPE lvc_s_stbl. + + +DATA: gs_rows TYPE lvc_s_row, + gt_rows TYPE lvc_t_row. + + +*-- Tree 관련. +DATA: gs_hierarchy_header1 TYPE treev_hhdr, + gs_hierarchy_header2 TYPE treev_hhdr. + +DATA: gs_dynpro LIKE dynpread, + gt_dynpro LIKE TABLE OF gs_dynpro. + +*----------------------------------------------------------------------* +* OK_CODE. * +*----------------------------------------------------------------------* +DATA: ok_code_0100 LIKE sy-ucomm, + ok_code_0110 LIKE sy-ucomm, + ok_code_0120 LIKE sy-ucomm, + ok_code_0200 LIKE sy-ucomm, + ok_code_0300 LIKE sy-ucomm, + ok_code_0400 LIKE sy-ucomm. + + +*----------------------------------------------------------------------* +* BDC DEFINE * +*----------------------------------------------------------------------* +DATA : gt_bdcdata LIKE TABLE OF bdcdata WITH HEADER LINE, " BDC Data. + gt_bdcmsg LIKE TABLE OF bdcmsgcoll WITH HEADER LINE, " BDC Message. + gv_bdcmode LIKE ctu_params-dismode VALUE 'N', " BDC Mode. + gv_bdcmsg LIKE bapireturn-message, " BDC Message. + gv_message LIKE bapireturn-message. + +*----------------------------------------------------------------------* +* F4 Help. * +*----------------------------------------------------------------------* +DATA : gt_f4_fields LIKE help_value OCCURS 0 WITH HEADER LINE, + gt_f4_header TYPE f4typ_heading_tab WITH HEADER LINE, + gv_f4_fieldname LIKE help_info-fieldname, + gv_f4_fieldvalue LIKE help_info-fldvalue. + + +TYPES : BEGIN OF ty_err, + fname TYPE lvc_fname, + index TYPE sy-index, + msg TYPE char100, + END OF ty_err. diff --git a/src/zco_variant.prog.xml b/src/zco_variant.prog.xml new file mode 100644 index 0000000..c4bad61 --- /dev/null +++ b/src/zco_variant.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZCO_VARIANT + I + X + + + + diff --git a/src/zmtax01.msag.xml b/src/zmtax01.msag.xml new file mode 100644 index 0000000..a903255 --- /dev/null +++ b/src/zmtax01.msag.xml @@ -0,0 +1,19 @@ + + + + + + ZMTAX01 + E + + + + E + ZMTAX01 + 000 + & + + + + + diff --git a/src/ztax0010.prog.abap b/src/ztax0010.prog.abap new file mode 100644 index 0000000..1512f9d --- /dev/null +++ b/src/ztax0010.prog.abap @@ -0,0 +1,65 @@ +* Program Name : ZTAX0010 * +* Description : 신용카드 사용 내역 등록 및 관리 * +* Screen : 100 * +* Transaction code : ZTAX0010 * +* Updated Tables : N/A * +* Input Parameters : * +* Return Codes : * +* Special Logic : * +*----------------------------------------------------------------------* +* MODIFICATION LOG * +*----------------------------------------------------------------------* +* Date Rev Programmer Description * +*------------ -------- ------------- ----------------------------------* +* 2026.06.05 N MYSAP Initial coding * +* xlsx 파일만 업로드 가능. +*----------------------------------------------------------------------* + +REPORT ZTAX0010 MESSAGE-ID zmtax01 NO STANDARD PAGE HEADING. + +*----------------------------------------------------------------------* +* INCLUDE +*----------------------------------------------------------------------* +INCLUDE ZTAX0010_cls. +INCLUDE ZTAX0010_top. +INCLUDE ZTAX0010_sel. +INCLUDE ZTAX0010_f01. +INCLUDE ZTAX0010_o01. +INCLUDE ZTAX0010_i01. + +*----------------------------------------------------------------------* +* INITIALIZATION * +*----------------------------------------------------------------------* +INITIALIZATION. + PERFORM initialization. + +*----------------------------------------------------------------------* +* START-OF-SELECTION * +*----------------------------------------------------------------------* +START-OF-SELECTION. + CLEAR: gv_err, gv_mode. + +*-- Authority Check(Company Code). +* PERFORM authority_check. + +*-- Init & Check. + PERFORM init_data. + +*-- Select . + PERFORM get_data. + +*----------------------------------------------------------------------* +* END-OF-SELECTION * +*----------------------------------------------------------------------* +END-OF-SELECTION. + CHECK: gv_err IS INITIAL. + +* DATA(lv_line) = lines( gt_grid ). +* +* IF lv_line = 0. +* MESSAGE s003(zmco03) DISPLAY LIKE 'E'. EXIT. +* ELSE. +* MESSAGE s050(zmco03) WITH lv_line. + + CALL SCREEN 100. +* ENDIF. diff --git a/src/ztax0010.prog.xml b/src/ztax0010.prog.xml new file mode 100644 index 0000000..5492821 --- /dev/null +++ b/src/ztax0010.prog.xml @@ -0,0 +1,439 @@ + + + + + + ZTAX0010 + 1 + X + X + + + +
+ ZTAX0010 + 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 + E + + + + PF_0100 + D + 000001 + 000001 + 0001 + PF_Status + + + + + BACK + 001 + S + ICON_PDIR_BACK + @CF@ + BACK + + + BACK + 002 + S + Back + + + CANC + 001 + S + Exit + + + DOWNLOAD + 001 + S + ICON_XLS + @J2@ + 엑셀 다운로드 + + + EXCEL + 001 + S + ICON_XLS + @J2@ + 엑셀 다운로드 + 간편 신고 데이타 파일 생성 + + + EXIT + 001 + S + ICON_CANCEL + @0W@ + Cancel + + + SAVE + 001 + S + ICON_SYSTEM_SAVE + @2L@ + Save + + + + + 000001 + 0001 + 01 + 02 + + + + + 000001 + 02 + EXCEL + 001 + + + 000001 + 03 + BACK + 002 + + + 000001 + 11 + SAVE + 001 + + + 000001 + 12 + EXIT + 001 + + + 000001 + 15 + CANC + 001 + + + + + PF_0100 + BACK + + + PF_0100 + CANC + + + PF_0100 + DOWNLOAD + + + PF_0100 + EXCEL + + + PF_0100 + EXIT + + + PF_0100 + SAVE + + + + + A + 000001 + D + PF_Status + + + B + 000001 + 0001 + D + PF_Status + + + P + 000001 + D + PF_Status + + + + + ST_0100 + 신용카드 사용내역 관리 + + + + + + I + 001 + 홈텍스 + 13 + + + I + 002 + KB국민은행 + 16 + + + I + B01 + 조회조건 + 14 + + + I + B02 + 업로드 파일 선택 + 19 + + + I + G01 + 승인일자 + 10 + + + I + G02 + 카드번호 + 14 + + + I + G03 + 가맹점사업자번호 + 18 + + + I + G04 + 가맹점명 + 14 + + + I + G05 + 통화키 + 13 + + + I + G06 + 공급가액 + 14 + + + I + G07 + 세액 + 12 + + + I + G08 + 비과세 + 13 + + + I + G09 + 합계 + 12 + + + I + G10 + 가맹점유형(CODE) + 20 + + + I + G11 + 가맹점유형 + 15 + + + I + G12 + 업태 + 12 + + + I + G13 + 업종 + 12 + + + I + G14 + 공제여부결정(CODE) + 20 + + + I + G15 + 공제여부결정 + 16 + + + I + G16 + 비고 + 12 + + + I + G17 + 카드사 + 13 + + + I + G18 + 계정과목(CODE) + 16 + + + I + G19 + 계정과목(소) + 17 + + + I + G20 + 계정과목(대) + 17 + + + I + G21 + 출처(CODE) + 18 + + + I + G22 + 출처 + 12 + + + I + G23 + 적요 + 12 + + + I + G24 + 신고대상여부 + 16 + + + I + T01 + 회계년도 + 14 + + + I + T02 + 분기 + 12 + + + I + T03 + 조회건수 + 10 + + + R + Program ZTAX0010 + 16 + + + S + P_GJAHR + 회계년도 + 12 + + + S + P_QUART + 분기 + 10 + + +
+
+
diff --git a/src/ztax0010_cls.prog.abap b/src/ztax0010_cls.prog.abap new file mode 100644 index 0000000..27f467a --- /dev/null +++ b/src/ztax0010_cls.prog.abap @@ -0,0 +1,195 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_CLS +*&---------------------------------------------------------------------* + +CLASS: lcl_event_receiver DEFINITION DEFERRED. + +DATA : go_event_receiver TYPE REF TO lcl_event_receiver, " ALV Event + go_event_receiver1 TYPE REF TO lcl_event_receiver, + go_event_receiver2 TYPE REF TO lcl_event_receiver, + go_event_receiver3 TYPE REF TO lcl_event_receiver. + +*&--------------------------------------------------------------------- +*& CLASS DEFINITIAL +*&---------------------------------------------------------------------* +CLASS lcl_event_receiver DEFINITION. + + PUBLIC SECTION. + + DATA lv_object TYPE char30. + +*-- Constructor. + METHODS: + constructor + IMPORTING e_object_text TYPE c, + +*-- Toolbar. + handle_toolbar + FOR EVENT toolbar OF cl_gui_alv_grid + IMPORTING e_object e_interactive, + +*-- User_Command. + handle_user_command + FOR EVENT user_command OF cl_gui_alv_grid + IMPORTING e_ucomm, + +*-- Data_Changed. + handle_data_changed + FOR EVENT data_changed OF cl_gui_alv_grid + IMPORTING er_data_changed, + +*-- Data_Change Finished. + handle_data_changed_finished + FOR EVENT data_changed_finished OF cl_gui_alv_grid + IMPORTING e_modified et_good_cells, + +*-- Hotspot_Click. + handle_hotspot_click + FOR EVENT hotspot_click OF cl_gui_alv_grid + IMPORTING e_row_id e_column_id, + +*-- Double_Click. + handle_double_click + FOR EVENT double_click OF cl_gui_alv_grid + IMPORTING e_row e_column, + +*-- Button_Click. + handle_button_click + FOR EVENT button_click OF cl_gui_alv_grid + IMPORTING es_col_id es_row_no, + +*-- F4 Help. + handle_on_f4 + FOR EVENT onf4 OF cl_gui_alv_grid + IMPORTING e_fieldname e_fieldvalue es_row_no + er_event_data et_bad_cells e_display. + +ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION + +*--------------------------------------------------------------------- +* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION +*---------------------------------------------------------------------* +CLASS lcl_event_receiver IMPLEMENTATION. + +*-- Constructor. + METHOD constructor. + CALL METHOD super->constructor. + lv_object = e_object_text. + + ENDMETHOD. "CONSTRUCTOR + +*-- Tollbar. + METHOD handle_toolbar. +*PERFORM toolbar_pros USING e_object e_interactive lv_object. + + ENDMETHOD. "HANDLE_TOOLBAR + +*-- User_Command + METHOD handle_user_command. + CASE lv_object. + WHEN 'GRID'. +*PERFORM handle_user_command USING e_ucomm. + ENDCASE. + ENDMETHOD. "HANDLE_USER_COMMAND + +*-- DATA_CHANGED. + METHOD handle_data_changed. + + ENDMETHOD. "HANDLE_DATA_CHANGED + +*-- DATA_CHANGE FISNISHED. + METHOD handle_data_changed_finished. + PERFORM data_changed_finished USING e_modified et_good_cells. + + ENDMETHOD. "HANDLE_DATA_CHANGED_FINISHED + +*-- HOTSPOT_CLICK. + METHOD handle_hotspot_click. +* CASE lv_object. +* WHEN 'GRID'. +*PERFORM handle_hotspot_click USING e_row_id e_column_id. +* ENDCASE. + + ENDMETHOD. "HANDLE_HOTSPOT_CLICK + +*-- DOUBLE_CLICK. + METHOD handle_double_click. + + ENDMETHOD. "HANDLE_DOUBLE_CLICK + +*-- BUTTON_CLICK. + METHOD handle_button_click. + + ENDMETHOD. "HANDLE_BUTTON_CLICK + +*-- F4 HELP. + METHOD handle_on_f4. + CASE lv_object. + WHEN 'GRID'. + PERFORM on_f4 USING e_fieldname e_fieldvalue es_row_no + er_event_data et_bad_cells e_display. + ENDCASE. + + ENDMETHOD. + +ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION + +*--------------------------------------------------------------------- +*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/ztax0010_cls.prog.xml b/src/ztax0010_cls.prog.xml new file mode 100644 index 0000000..79dbcba --- /dev/null +++ b/src/ztax0010_cls.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_CLS + I + X + + + + diff --git a/src/ztax0010_f01.prog.abap b/src/ztax0010_f01.prog.abap new file mode 100644 index 0000000..b8087ec --- /dev/null +++ b/src/ztax0010_f01.prog.abap @@ -0,0 +1,1594 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_F01 +*&---------------------------------------------------------------------* +*&---------------------------------------------------------------------* +*& Form initialization +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM initialization . + MOVE 'Excel Upload' TO sscrfields-functxt_01. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form set_status +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> LT_FCODE +*& --> LV_TEXT +*&---------------------------------------------------------------------* + +FORM set_status TABLES pt_fcode USING pv_text. + + pv_text = sy-title. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form create_container +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> GO_DOCKING_CONTAINER +*&---------------------------------------------------------------------* +FORM create_container USING po_docking_container TYPE REF TO cl_gui_docking_container. + +*-- Create Container. + CHECK: po_docking_container IS INITIAL. + + CREATE OBJECT po_docking_container + EXPORTING + repid = sy-repid + dynnr = sy-dynnr +* side = po_docking_container->dock_at_left +* ratio = 20. + side = po_docking_container->property_floating + extension = 3000. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form split_container +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM split_container . + DATA(lo_split) = NEW cl_gui_splitter_container( parent = go_docking_container + rows = 2 + columns = 1 ). + + go_container_top = lo_split->get_container( row = 1 column = 1 ). + go_container = lo_split->get_container( row = 2 column = 1 ). + +*-- Set Split Height. + __height_split : lo_split 1 10, + lo_split 2 90. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form create_alv +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> GO_GRID +*& --> GO_CONTAINER +*& --> GC_GRID +*& --> GO_EVENT_RECEIVER +*&---------------------------------------------------------------------* +FORM create_grid USING po_grid TYPE REF TO lcl_alv_grid + po_container TYPE REF TO cl_gui_container. + +*-- Create Object : Grid. + po_grid = NEW lcl_alv_grid( i_parent = po_container ). + +**-- Create Object : Grid. +* CREATE OBJECT po_grid +* EXPORTING +* i_parent = po_container. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form create_html_text +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> P_ +*& --> GO_TOP_OF_LIST +*& --> GO_CONTAINER_TOP +*&---------------------------------------------------------------------* +FORM create_html_text USING pv_gubun + po_list TYPE REF TO cl_gui_html_viewer + po_container TYPE REF TO cl_gui_container. + + + DATA : lv_document TYPE REF TO cl_dd_document. + CLEAR: lv_document. + + CHECK: po_list IS INITIAL. + +*-- Create HTML Object. + CREATE OBJECT po_list + EXPORTING + parent = po_container. + +*-- Create Document Object. + CREATE OBJECT lv_document + EXPORTING + no_margins = 'X'. + +*-- Set Text. + PERFORM fill_header_text USING pv_gubun lv_document. + +*-- + CALL METHOD lv_document->merge_document. + lv_document->html_control = po_list. + +*-- Display TOP document. + CALL METHOD lv_document->display_document + EXPORTING + reuse_control = 'X' + EXCEPTIONS + html_display_error = 1. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form fill_header_text +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GUBUN +*& --> LV_DOCUMENT +*&---------------------------------------------------------------------* +FORM fill_header_text USING pv_gubun + po_document TYPE REF TO cl_dd_document.. + + DATA : lv_cnt TYPE i. + + DATA : lv_text TYPE sdydo_text_element. + CLEAR: lv_text. + +*-- + CASE pv_gubun. + +*-- Header. + WHEN 'H'. + + " Company Code. +* CONCATENATE p_bukrs p_butxt INTO lv_text SEPARATED BY space. +* PERFORM add_text_gap USING po_document TEXT-t01 lv_text 0. +* CALL METHOD po_document->new_line( 0 ). + + " 년도 +* lv_text = p_gjahr. + CONCATENATE p_gjahr '년' INTO lv_text. + PERFORM add_text_gap USING po_document TEXT-t01 lv_text 4. + CALL METHOD po_document->new_line( 0 ). + + " 분기. + CASE p_quart. + WHEN '01'. + lv_text = '1분기'. + WHEN '02'. + lv_text = '2분기'. + WHEN '03'. + lv_text = '3분기'. + WHEN '04'. + lv_text = '4분기'. + ENDCASE. + + PERFORM add_text_gap USING po_document TEXT-t02 lv_text 9. + CALL METHOD po_document->new_line( 0 ). + + " 데이타 건수. + DESCRIBE TABLE gt_grid LINES lv_cnt. + lv_text = |{ lv_cnt }|. + PERFORM add_text_gap USING po_document TEXT-t03 lv_text 4. + CALL METHOD po_document->new_line( 0 ). + + ENDCASE. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form add_text_gap +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PO_DOCUMENT +*& --> TEXT_T02 +*& --> LV_TEXT +*& --> P_9 +*&---------------------------------------------------------------------* +FORM add_text_gap USING po_document TYPE REF TO cl_dd_document + pv_title TYPE sdydo_text_element + pv_text TYPE sdydo_text_element + pv_width. + + DATA : lo_table_area TYPE REF TO cl_dd_table_area. + CLEAR: lo_table_area. + + CALL METHOD po_document->add_gap + EXPORTING + width = 1. + +*-- Add Title. + CONCATENATE TEXT-t00 pv_title INTO pv_title SEPARATED BY space. + CALL METHOD po_document->add_text + EXPORTING + text = pv_title + fix_lines = abap_on + sap_fontsize = cl_dd_document=>small + sap_emphasis = cl_dd_document=>strong. + +*-- Gap. + CALL METHOD po_document->add_gap + EXPORTING + width = pv_width. + +*-- Add Text. + CONCATENATE ':' pv_text INTO pv_text SEPARATED BY space. + CALL METHOD po_document->add_text + EXPORTING + text = pv_text + fix_lines = abap_on + sap_fontsize = cl_dd_document=>small. + + + +**-- Gap. +* CALL METHOD PO_DOCUMENT->ADD_GAP +* EXPORTING +* WIDTH = PV_WIDTH. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form create_alv +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> GO_GRID +*& --> GO_CONTAINER +*& --> GC_GRID +*& --> GO_EVENT_RECEIVER +*&---------------------------------------------------------------------* +FORM create_alv USING po_grid TYPE REF TO lcl_alv_grid + po_container TYPE REF TO cl_gui_container + pv_grid + po_event_receiver TYPE REF TO lcl_event_receiver. + + IF po_grid IS INITIAL. + +*-- Create Object : Grid. + PERFORM: create_grid USING po_grid po_container. + +*-- ALV_Display. + PERFORM: alv_variant USING pv_grid, + alv_layout USING pv_grid, " Layout. + alv_sort USING pv_grid, " Sort. + alv_toolbar_exclude USING 'GS_EXCLUDE', " Toolbar Exclude. + alv_fieldcatalog USING pv_grid, " Field Catalog. + alv_event_handler USING pv_grid " Event Handler. + po_grid po_event_receiver, + alv_display USING pv_grid po_grid, + alv_on_f4 USING pv_grid. + + ELSE. + +*-- Refresh Grid. + __alv_refresh: po_grid abap_on abap_on abap_on. + + ENDIF. + +*-- Column Size Optimize. + __alv_optimize: po_grid. + +* CHECK: pv_grid EQ gc_grid OR pv_grid EQ gc_grid2. +** CHECK: pv_grid EQ gc_grid. +* DATA : lv_input TYPE int4. +* +* CASE gv_mode. +* WHEN gc_mode-create OR gc_mode-modify. +* lv_input = 1. +* WHEN gc_mode-disp. +* lv_input = 0. +* ENDCASE. +* +**-- +* __set_ready_input : po_grid lv_input. +* +* CASE pv_grid. +* WHEN gc_grid. +* PERFORM set_focus_and_event_support USING go_grid. +* WHEN gc_grid2. +* PERFORM set_focus_and_event_support USING go_grid2. +* ENDCASE. +* +* CALL METHOD cl_gui_cfw=>flush. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form alv_variant +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GRID +*&---------------------------------------------------------------------* +FORM alv_variant USING pv_grid. + +*-- Variant. + CASE pv_grid. + WHEN gc_grid. + CLEAR gs_variant. + gs_variant-report = sy-repid. " ABAP 프로그램이름. + gs_variant-username = sy-uname. " 고유사용자 저장에 대한 사용자이름. +* gs_variant-handle = '0001'. " 동일프로그램에서 반복호출을 위한 관리 ID. + + ENDCASE. + +* gs_variant-log_group = ''. " 논리그룹이름. +* gs_variant-variant = ''. " 레이아웃. +* gs_variant-text = ''. " 레이아웃내역. +* gs_variant-dependvars = ''. " 종속변형 엔트리벡터. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form alv_layout +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GRID +*&---------------------------------------------------------------------* +FORM alv_layout USING pv_grid. + +*-- Layout. + CASE pv_grid. + WHEN gc_grid. + CLEAR gs_layout. + gs_layout-zebra = abap_on. + gs_layout-sel_mode = 'A'. + gs_layout-info_fname = 'LINECOLOR'. " Line Color. +* gs_layout-ctab_fname = 'CELLCOLOR'. " Cell Color. +* gs_layout-stylefname = 'CELLSTYLE'. " Cell Style. +* GS_LAYOUT-CWIDTH_OPT = ABAP_TRUE. " ALV 제어: 열너비최적화. +* GS_LAYOUT-GRID_TITLE = '*타발내도'. +* GS_LAYOUT-SMALLTITLE = ABAP_ON. + gs_layout-no_rowmark = 'X'. "선택 버튼 숨기기. + + ENDCASE. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form alv_sort +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GRID +*&---------------------------------------------------------------------* +FORM alv_sort USING pv_grid. + + CLEAR: gs_sort, gt_sort, gt_sort[]. + + CASE pv_grid. + WHEN gc_grid. + PERFORM sort_field TABLES gt_sort USING : + '01' 'GJAHR' abap_on space space, + '02' 'QUARTER' abap_on space space. + + ENDCASE. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form sort_field +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> GT_SORT +*& --> P_ +*& --> P_ +*& --> ABAP_ON +*& --> SPACE +*& --> SPACE +*&---------------------------------------------------------------------* +FORM sort_field TABLES pt_sort TYPE lvc_t_sort + USING pv_spos + pv_fieldname + pv_up + pv_down + pv_subtot. +* 아래 구문은 Call by value로 실행됨.. +* Call By Reference 수행을 위해 수정. +* pt_sort = VALUE #( spos = pv_spos +* fieldname = pv_fieldname +* up = pv_up +* down = pv_down +* subtot = pv_subtot ). + + DATA: ls_sort TYPE lvc_s_sort. + ls_sort-spos = pv_spos. + ls_sort-fieldname = pv_fieldname. + ls_sort-up = pv_up. + ls_sort-down = pv_down. + ls_sort-subtot = pv_subtot. + + APPEND ls_sort TO pt_sort. " ← APPEND 사용! +ENDFORM. +*&---------------------------------------------------------------------* +*& Form ALV_TOOLBAR_EXCLUDE +*&---------------------------------------------------------------------* +FORM alv_toolbar_exclude USING pv_tab. + + DATA : p_tab(20). + CLEAR: p_tab. + +* p_tab = pv_tab. + p_tab = 'GS_EXCLUDE'. + +* DATA. + DATA: lv_con(40). + FIELD-SYMBOLS: TYPE ui_functions. + +* ASSIGN. + CONCATENATE p_tab '[]' INTO lv_con. + ASSIGN (lv_con) TO . + +* 제거할 버튼 지정 + PERFORM alv_exclude_toolbar + TABLES +* USING: cl_gui_alv_grid=>mc_fc_excl_all. "**툴바 모두제거 ** + USING: cl_gui_alv_grid=>mc_fc_loc_undo, "실행취소 +* cl_gui_alv_grid=>mc_fc_auf, "소계확장 +* cl_gui_alv_grid=>mc_fc_average, "&AVERAGE +* cl_gui_alv_grid=>mc_fc_back_classic, +* cl_gui_alv_grid=>mc_fc_call_abc, "&ABC +* cl_gui_alv_grid=>mc_fc_call_chain, +* cl_gui_alv_grid=>mc_fc_call_crbatch, +* cl_gui_alv_grid=>mc_fc_call_crweb, +* cl_gui_alv_grid=>mc_fc_call_lineitems, +* cl_gui_alv_grid=>mc_fc_call_master_data, +* cl_gui_alv_grid=>mc_fc_call_more, +* cl_gui_alv_grid=>mc_fc_call_report, +* cl_gui_alv_grid=>mc_fc_call_xint, +* cl_gui_alv_grid=>mc_fc_call_xxl, +* cl_gui_alv_grid=>mc_fc_col_invisible, +* cl_gui_alv_grid=>mc_fc_col_optimize, +* cl_gui_alv_grid=>mc_fc_current_variant, +* cl_gui_alv_grid=>mc_fc_data_save, +* cl_gui_alv_grid=>mc_fc_delete_filter, +* cl_gui_alv_grid=>mc_fc_deselect_all, +* cl_gui_alv_grid=>mc_fc_detail, +* cl_gui_alv_grid=>mc_fc_expcrdata, +* cl_gui_alv_grid=>mc_fc_expcrdesig, +* cl_gui_alv_grid=>mc_fc_expcrtempl, +* cl_gui_alv_grid=>mc_fc_expmdb, +* cl_gui_alv_grid=>mc_fc_extend, +* cl_gui_alv_grid=>mc_fc_f4, +* cl_gui_alv_grid=>mc_fc_filter, +* cl_gui_alv_grid=>mc_fc_find, +* cl_gui_alv_grid=>mc_fc_fix_columns, +* cl_gui_alv_grid=>mc_fc_check, + cl_gui_alv_grid=>mc_fc_graph, + cl_gui_alv_grid=>mc_fc_help, + cl_gui_alv_grid=>mc_fc_info, +* cl_gui_alv_grid=>mc_fc_load_variant, + cl_gui_alv_grid=>mc_fc_loc_copy, "행 카피. +* cl_gui_alv_grid=>mc_fc_html, + cl_gui_alv_grid=>mc_fc_loc_copy_row, "행 카피. + cl_gui_alv_grid=>mc_fc_loc_cut, "가위. + cl_gui_alv_grid=>mc_fc_loc_delete_row, "행삭제. + cl_gui_alv_grid=>mc_fc_loc_insert_row, "행삽입. +* cl_gui_alv_grid=>mc_fc_loc_move_row, + cl_gui_alv_grid=>mc_fc_loc_append_row, "라인생성. + cl_gui_alv_grid=>mc_fc_loc_paste, "겹쳐쓰기. + cl_gui_alv_grid=>mc_fc_loc_paste_new_row, "겹쳐쓰기. +* cl_gui_alv_grid=>mc_fc_maintain_variant, +* cl_gui_alv_grid=>mc_fc_maximum, +* cl_gui_alv_grid=>mc_fc_minimum, +* cl_gui_alv_grid=>mc_fc_pc_file, +* cl_gui_alv_grid=>mc_fc_print, +* cl_gui_alv_grid=>mc_fc_print_back, +* cl_gui_alv_grid=>mc_fc_print_prev, + cl_gui_alv_grid=>mc_fc_refresh. +* cl_gui_alv_grid=>mc_fc_reprep, +* cl_gui_alv_grid=>mc_fc_save_variant, +* cl_gui_alv_grid=>mc_fc_select_all. +* cl_gui_alv_grid=>mc_fc_send, +* cl_gui_alv_grid=>mc_fc_separator, +* cl_gui_alv_grid=>mc_fc_sort, +* cl_gui_alv_grid=>mc_fc_sort_asc, +* cl_gui_alv_grid=>mc_fc_sort_dsc, +* cl_gui_alv_grid=>mc_fc_subtot, +* cl_gui_alv_grid=>mc_mb_sum, "SUM +* cl_gui_alv_grid=>mc_fc_sum. "SUM +* cl_gui_alv_grid=>mc_fc_to_office, +* cl_gui_alv_grid=>mc_fc_to_rep_tree, +* cl_gui_alv_grid=>mc_fc_unfix_columns, +* cl_gui_alv_grid=>mc_fc_views, +* cl_gui_alv_grid=>mc_fc_view_crystal, +* cl_gui_alv_grid=>mc_fc_view_excel, +* cl_gui_alv_grid=>mc_fc_view_grid, +* cl_gui_alv_grid=>mc_fc_word_processor. + +ENDFORM. " ALV_TOOLBAR_EXCLUDE + +*&---------------------------------------------------------------------* +*& Form ALV_EXCLUDE_TOOLBAR +*&---------------------------------------------------------------------* +FORM alv_exclude_toolbar TABLES pt_table + USING pv_value. + +*-- DATA + DATA : lv_exclude TYPE ui_func. + CLEAR: lv_exclude. + +*-- Append. + lv_exclude = pv_value. + APPEND lv_exclude TO pt_table. + +ENDFORM. " ALV_EXCLUDE_TOOLBAR + +*&---------------------------------------------------------------------* +*& Form ALV_EVENT_HANDLER +*&---------------------------------------------------------------------* +FORM alv_event_handler USING pv_grid + po_grid TYPE REF TO lcl_alv_grid + po_event_receiver TYPE REF TO lcl_event_receiver. + +*-- Grid Object. + CREATE OBJECT po_event_receiver + EXPORTING + e_object_text = pv_grid. + + CALL METHOD po_grid->register_edit_event + EXPORTING + i_event_id = cl_gui_alv_grid=>mc_evt_enter. + + CALL METHOD po_grid->register_edit_event + EXPORTING + i_event_id = cl_gui_alv_grid=>mc_evt_modified. + + +*--// ALV Data Changed Event. + SET HANDLER + po_event_receiver->handle_data_changed FOR po_grid. + +*-- ALV Data Change Finished Event. + SET HANDLER + po_event_receiver->handle_data_changed_finished FOR po_grid. + +*--// Hotspot click Event. + SET HANDLER + po_event_receiver->handle_hotspot_click FOR po_grid. + +*--// Double click Event. + SET HANDLER + po_event_receiver->handle_double_click FOR po_grid. + +*--// Toolbar. + SET HANDLER + po_event_receiver->handle_toolbar FOR po_grid. + +*--// User-Command + SET HANDLER + po_event_receiver->handle_user_command FOR po_grid. + +*--// Button click. + SET HANDLER + po_event_receiver->handle_button_click FOR po_grid. + +*--// F4 Help. + SET HANDLER + po_event_receiver->handle_on_f4 FOR po_grid. + +ENDFORM. " ALV_EVENT_HANDLER + +*&---------------------------------------------------------------------* +*& Form ALV_FIELDCATALOG +*&---------------------------------------------------------------------* +FORM alv_fieldcatalog USING pv_grid. + + CLEAR: gs_fieldcat. + +*-- Set Fieldcat. + CASE pv_grid. + WHEN gc_grid. + CLEAR : gt_fieldcat, gt_fieldcat[]. + +* DATA : lv_fdseq(2) TYPE n, +* lv_seqno(2) TYPE n. +* + PERFORM fill_field_catalogs TABLES gt_fieldcat USING : + 01 abap_on 'GJAHR' '20' 'GJAHR' '' '', + 03 abap_on 'QUARTER' '02' 'QUARTER' '' '', + 05 abap_on 'REG_NO' '16' 'REG_NO' '' '', + 06 abap_OFF 'EXPORT' '1' TEXT-g24 '' '', + 07 abap_off 'CONFIRM_DATE' '10' TEXT-g01 '' '', "승인일자 + 09 abap_off 'CARD_COMPANY' '20' TEXT-g17 '' '', + 11 abap_off 'CARD_NO' '16' TEXT-g02 '' '', + 13 abap_off 'SHOP_REG_NO' '16' TEXT-g03 '' '', + 15 abap_off 'SHOP_NM' '50' TEXT-g04 '' '', + + 18 abap_off 'ACCT' '02' TEXT-g18 '' '', + 21 abap_off 'ACCT_NM' '40' TEXT-g19 '' '', + 23 abap_off 'GACCT_NM' '40' TEXT-g20 '' '', + 25 abap_off 'ORIGIN' '02' TEXT-g21 '' '', + 27 abap_off 'ORIGIN_NM' '40' TEXT-g22 '' '', + 29 abap_off 'DESCRIPT' '200' TEXT-g23 '' '', + + 31 abap_off 'WAERS' '05' TEXT-g05 '' '', + 33 abap_off 'SUPPLY_VALUE' '22' TEXT-g06 '' '', + 35 abap_off 'TAX_AMOUNT' '22' TEXT-g07 '' '', + 37 abap_off 'NON_TAXABLE' '22' TEXT-g08 '' '', + 41 abap_off 'AMOUNT_SUPPLY' '22' TEXT-g09 '' '', + 43 abap_off 'SHOP_TYPE' '10' TEXT-g10 '' '', + 45 abap_off 'SHOP_TY_NAME' '10' TEXT-g11 '' '', + 47 abap_off 'BISINESS_TYPE' '30' TEXT-g12 '' '', + 49 abap_off 'BISINESS_CATEGORY' '30' TEXT-g13 '' '', + 51 abap_off 'DEDUCTION_STATUS' '25' TEXT-g14 '' '', + 53 abap_off 'DEDUCTION_DESC' '05' TEXT-g15 '' '', + + 95 abap_off 'ETC' '40' TEXT-g16 'C500' ''. + + + ENDCASE. + + +ENDFORM. + +*&---------------------------------------------------------------------* +*& Form FILL_FIELD_CATALOGS +*&---------------------------------------------------------------------* +FORM fill_field_catalogs TABLES lt_fieldcat TYPE lvc_t_fcat + USING pv_col_pos + pv_key + pv_fieldname + pv_leng + pv_reptext + pv_color + pv_tech. + + CLEAR gs_fieldcat. + gs_fieldcat-col_pos = pv_col_pos. + gs_fieldcat-key = pv_key. + gs_fieldcat-fieldname = pv_fieldname. + gs_fieldcat-intlen = gs_fieldcat-outputlen = pv_leng. + gs_fieldcat-reptext = pv_reptext. + gs_fieldcat-coltext = pv_reptext. + gs_fieldcat-scrtext_l = pv_reptext. + gs_fieldcat-scrtext_m = pv_reptext. + gs_fieldcat-scrtext_s = pv_reptext. + gs_fieldcat-emphasize = pv_color. + gs_fieldcat-tech = pv_tech. + + CASE pv_fieldname. + WHEN 'REG_NO'. + gs_fieldcat-style = alv_style_font_bold. +* + alv_style_font_underlined. + + WHEN 'SUPPLY_VALUE' OR 'TAX_AMOUNT' OR 'NON_TAXABLE' OR 'AMOUNT_SUPPLY'. + gs_fieldcat-do_sum = 'X'. + gs_fieldcat-cfieldname = 'WAERS'. + + WHEN 'ACCT' OR 'ORIGIN' OR 'DEDUCTION_STATUS'. + gs_fieldcat-f4availabl = 'X'. + gs_fieldcat-edit = 'X'. + + WHEN 'EXPORT'. + gs_fieldcat-edit = 'X'. + gs_fieldcat-checkbox = 'X'. + + WHEN 'DESCRIPT'. + gs_fieldcat-edit = 'X'. + + ENDCASE. + + APPEND gs_fieldcat TO lt_fieldcat. + CLEAR: gs_fieldcat. + +ENDFORM. " FILL_FIELD_CATALOGS +*&---------------------------------------------------------------------* +*& Form alv_display +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GRID +*& --> PO_GRID +*&---------------------------------------------------------------------* +FORM alv_display USING pv_grid + po_grid TYPE REF TO lcl_alv_grid. + + CASE pv_grid. + WHEN gc_grid. +*-- Create grid control. + CALL METHOD po_grid->set_table_for_first_display + EXPORTING + i_bypassing_buffer = abap_on + i_default = abap_on + is_layout = gs_layout + is_variant = gs_variant + it_toolbar_excluding = gs_exclude + i_save = 'A' + CHANGING + it_outtab = gt_grid[] + it_fieldcatalog = gt_fieldcat[] + it_sort = gt_sort. + + ENDCASE. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form alv_on_f4 +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_GRID +*&---------------------------------------------------------------------* +FORM alv_on_f4 USING pv_grid. + + CLEAR: gs_f4, gt_f4, gt_f4[]. + + gs_f4-fieldname = 'ACCT'. + gs_f4-register = abap_on. + APPEND gs_f4 TO gt_f4. + + gs_f4-fieldname = 'DEDUCTION_STATUS'. + gs_f4-register = abap_on. + APPEND gs_f4 TO gt_f4. + + gs_f4-fieldname = 'EXPORT'. + gs_f4-register = abap_on. + APPEND gs_f4 TO gt_f4. + + gs_f4-fieldname = 'ORIGIN'. + gs_f4-register = abap_on. + APPEND gs_f4 TO gt_f4. + + + + +*-- + CALL METHOD go_grid->register_f4_for_fields + EXPORTING + it_f4 = gt_f4. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form upload_excel +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM upload_excel . + DATA : lt_excel TYPE TABLE OF ty_record. + DATA : ls_excel TYPE ty_record. + + DATA: lo_excel_util TYPE REF TO zcl_common_class, + lr_data TYPE REF TO data. + + DATA lv_seq TYPE n LENGTH 10. + + TYPES: BEGIN OF ty_map, + src_idx TYPE i, + tgt_name TYPE fieldname, + END OF ty_map. + + DATA lt_map TYPE STANDARD TABLE OF ty_map WITH EMPTY KEY. + + lt_map = VALUE #( + ( src_idx = 1 tgt_name = 'CONFIRM_DATE' ) + ( src_idx = 3 tgt_name = 'CARD_NO' ) + ( src_idx = 4 tgt_name = 'SHOP_REG_NO' ) + ( src_idx = 5 tgt_name = 'SHOP_NM' ) + ( src_idx = 6 tgt_name = 'SUPPLY_VALUE' ) + ( src_idx = 7 tgt_name = 'TAX_AMOUNT' ) + ( src_idx = 8 tgt_name = 'NON_TAXABLE' ) + ( src_idx = 9 tgt_name = 'AMOUNT_SUPPLY' ) + ( src_idx = 10 tgt_name = 'SHOP_TYPE' ) + ( src_idx = 11 tgt_name = 'BISINESS_TYPE' ) + ( src_idx = 12 tgt_name = 'BISINESS_CATEGORY' ) + ( src_idx = 13 tgt_name = 'DEDUCTION_STATUS' ) + ( src_idx = 14 tgt_name = 'ETC' ) + ). + + FIELD-SYMBOLS: TYPE STANDARD TABLE, + TYPE any, + TYPE any, + TYPE any. + + CREATE OBJECT lo_excel_util. + + lr_data = lo_excel_util->upload_excel_to_itab( ). + + IF lr_data IS BOUND. + ASSIGN lr_data->* TO . + + "REG_NO 최대값 구하기. + PERFORM get_max_reg_no CHANGING lv_seq. + + IF IS ASSIGNED. + LOOP AT ASSIGNING . + CLEAR ls_excel. + CHECK sy-tabix > 2. + + LOOP AT lt_map INTO DATA(ls_map). + ASSIGN COMPONENT ls_map-src_idx OF STRUCTURE TO . + IF sy-subrc <> 0 OR IS NOT ASSIGNED. + CONTINUE. + ENDIF. + + CASE ls_map-src_idx. + WHEN '01'. "Confirm Date yyyy-mm-dd => yyyymmdd 변환. + REPLACE ALL OCCURRENCES OF '-' IN WITH ''. + + WHEN '6' OR '7' OR '8' OR '9'. "currency 변환 필요 + PERFORM change_currency_amount USING + CHANGING . + + WHEN '10'. "shop type + ls_excel-shop_ty_name = . + + CASE . + WHEN '법인사업자'. + = '01'. + WHEN '일반과세자'. + = '02'. + WHEN '면세사업자'. + = '03'. + WHEN '간이과세자'. + = '04'. + ENDCASE. + + WHEN '13'. "Deduction Status + ls_excel-deduction_desc = . + + CASE . + WHEN '불공제'. + = '01'. + WHEN '공제'. + = '02'. + ENDCASE. + ENDCASE. + + ASSIGN COMPONENT ls_map-tgt_name OF STRUCTURE ls_excel TO . + IF sy-subrc <> 0 OR IS NOT ASSIGNED. + CONTINUE. + ENDIF. + +* = . + = CONV #( ). + ENDLOOP. + + ls_excel-gjahr = p_gjahr. + ls_excel-quarter = p_quart. + ls_excel-waers = gc_waers-krw. "KRW + + lv_seq += 1. + ls_excel-reg_no = p_gjahr && p_quart && lv_seq. + APPEND ls_excel TO lt_excel. + ENDLOOP. + ENDIF. + ENDIF. + + PERFORM make_report_layout CHANGING lt_excel. + + gt_grid[] = lt_excel[]. +* MODIFY zttax0020 FROM TABLE lt_excel. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form get_max_reg_no +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& <-- LV_MAX +*&---------------------------------------------------------------------* +FORM get_max_reg_no CHANGING p_max. + DATA: p_max_reg_no TYPE zregno. + + SELECT MAX( reg_no ) + FROM zttax0020 + INTO @p_max_reg_no + WHERE gjahr = @p_gjahr + AND quarter = @p_quart + . + + p_max = p_max_reg_no+6(10). + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form change_currency_amount +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> +*& <-- +*&---------------------------------------------------------------------* +FORM change_currency_amount USING p_in + CHANGING p_out. + + DATA : lv_text TYPE string, + lv_amount_external TYPE bapicurr-bapicurr, + lv_amount_internal TYPE bapicurr-bapicurr. + + lv_text = |{ p_in }|. + CONDENSE lv_text NO-GAPS. + REPLACE ALL OCCURRENCES OF ',' IN lv_text WITH ''. + TRY. + lv_amount_external = CONV #( lv_text ). + CATCH cx_sy_conversion_no_number cx_sy_conversion_overflow. + CLEAR lv_amount_external. + ENDTRY. + + CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL' + EXPORTING + currency = gc_waers-krw "통화키 필드(KRW) + amount_external = lv_amount_external + max_number_of_digits = 15 + IMPORTING + amount_internal = lv_amount_internal + EXCEPTIONS + OTHERS = 1. + + p_out = lv_amount_internal. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form get_data +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM get_data . + SELECT * + INTO CORRESPONDING FIELDS OF TABLE @gt_grid +* FROM zvtax0020 + FROM zcds_tax0020 + WHERE gjahr = @p_gjahr + AND quarter = @p_quart. + + IF sy-subrc NE 0 OR gt_grid[] IS INITIAL. + gv_err = abap_true. + MESSAGE s001 WITH '데이타'. + ENDIF. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form make_report_layout +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& <-- LT_EXCEL +*&---------------------------------------------------------------------* +FORM make_report_layout CHANGING pt_excel. + + FIELD-SYMBOLS : TYPE ty_record. + + SELECT card_no, + card_company + INTO TABLE @DATA(lt_card) + FROM zttax0010 + ORDER BY card_no. + + LOOP AT pt_excel ASSIGNING . + READ TABLE lt_card INTO DATA(ls_card) WITH KEY card_no = -card_no BINARY SEARCH. + IF sy-subrc EQ 0. + -card_company = ls_card-card_company. + ENDIF. + ENDLOOP. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form SAVE_DATA +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM save_data . + CASE gv_mode. + WHEN gc_mode-excel. "excel 업로드 + PERFORM save_data_from_excel. + WHEN OTHERS. + PERFORM modify_data. + ENDCASE. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form SAVE_DATA_FROM_EXCEL +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM save_data_from_excel . + DATA : ls_data TYPE zttax0020, + lt_data TYPE TABLE OF zttax0020. + + LOOP AT gt_grid INTO DATA(ls_list). + MOVE-CORRESPONDING ls_list TO ls_data. + + APPEND ls_data TO lt_data. + ENDLOOP. + + MODIFY zttax0020 FROM TABLE lt_data. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form MODIFY_DATA +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM modify_data . + DATA : ls_data TYPE zttax0030, + lt_data TYPE TABLE OF zttax0030. + + LOOP AT gt_grid INTO DATA(gs_grid) WHERE mark = 'X'. + "선택된 행 처리 + MOVE-CORRESPONDING gs_grid TO ls_data. + + APPEND ls_data TO lt_data. + ENDLOOP. + + MODIFY zttax0030 FROM TABLE lt_data. + MESSAGE s002. +ENDFORM. +*&---------------------------------------------------------------------* +*& Form on_f4 +*&---------------------------------------------------------------------* +FORM on_f4 USING pv_fieldname TYPE lvc_fname + pv_fieldvalue TYPE lvc_value + ps_row_no TYPE lvc_s_roid + po_event_data TYPE REF TO cl_alv_event_data + pt_bad_cells TYPE lvc_t_modi + pv_display TYPE char01. + + FIELD-SYMBOLS : TYPE lvc_t_modi. + + DATA: lv_err, + ls_modi TYPE lvc_s_modi. + + CLEAR: gt_f4_fields, gt_f4_fields[], gt_f4_header, gt_f4_header[], + gv_f4_fieldname, gv_f4_fieldvalue, lv_err, ls_modi. + +* READ TABLE INTO INDEX ps_row_no-row_id. + CASE pv_fieldname . + +*-- Account No. + WHEN 'ACCT'. + PERFORM on_f4_acct USING pv_fieldname CHANGING lv_err. + + WHEN 'ORIGIN'. + PERFORM on_f4_origin USING pv_fieldname CHANGING lv_err. + + WHEN 'DEDUCTION_STATUS'. + PERFORM on_f4_status USING pv_fieldname CHANGING lv_err. + +* WHEN 'EXPORT'. +* PERFORM on_f4_export USING pv_fieldname CHANGING lv_err. + + WHEN OTHERS. + lv_err = abap_on. + + ENDCASE. + +*-- + CHECK lv_err IS INITIAL AND gv_f4_fieldvalue IS NOT INITIAL. + ASSIGN po_event_data->m_data->* TO . + ls_modi-row_id = ps_row_no-row_id. + ls_modi-fieldname = pv_fieldname. + ls_modi-value = gv_f4_fieldvalue. + APPEND ls_modi TO . + + po_event_data->m_event_handled = abap_on. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form on_f4_acct +*&---------------------------------------------------------------------* +FORM on_f4_acct USING pv_fieldname + CHANGING pv_err. + DATA : lt_return_tab TYPE TABLE OF ddshretval. + DATA : lv_fieldname TYPE lvc_fname. + +**-- Style Serial Code. +* CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' +* EXPORTING +* tabname = 'MARA' +* fieldname = pv_fieldname +* searchhelp = 'ZSH_ZSTYCD'. +* +* IF sy-subrc NE 0. +* pv_err = abap_on. +* ENDIF. + + SELECT code, code_txt + FROM zcat0020 + INTO TABLE @DATA(lt_user) + WHERE appli = 'TX' + AND grp = 'TAX01' + AND spras = @sy-langu + AND fld_03 = 'X'. + + lv_fieldname = 'CODE'. + +*—- Search Help 띄우는 펑션 실행 + CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' + EXPORTING +* RETFIELD = E_FIELDNAME + retfield = lv_FIELDNAME + dynpprog = sy-repid + dynpnr = sy-dynnr + value_org = 'S' + TABLES + value_tab = lt_user + return_tab = lt_return_tab + EXCEPTIONS + parameter_error = 1 + no_values_found = 2 + OTHERS = 3. + +* CHECK E_DISPLAY IS INITIAL. + + IF sy-subrc <> 0. + EXIT. + ENDIF. + + LOOP AT lt_return_tab INTO DATA(ls_return). + gv_f4_fieldvalue = ls_return-fieldval. + ENDLOOP. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form on_f4_origin +*&---------------------------------------------------------------------* +FORM on_f4_origin USING pv_fieldname + CHANGING pv_err. + DATA : lt_return_tab TYPE TABLE OF ddshretval. + DATA : lv_fieldname TYPE lvc_fname. + +**-- Style Serial Code. +* CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' +* EXPORTING +* tabname = 'MARA' +* fieldname = pv_fieldname +* searchhelp = 'ZSH_ZSTYCD'. +* +* IF sy-subrc NE 0. +* pv_err = abap_on. +* ENDIF. + + SELECT code, code_txt + FROM zcat0020 + INTO TABLE @DATA(lt_user) + WHERE appli = 'TX' + AND grp = 'TAX02' + AND spras = @sy-langu. + + lv_fieldname = 'CODE'. + +*—- Search Help 띄우는 펑션 실행 + CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' + EXPORTING +* RETFIELD = E_FIELDNAME + retfield = lv_FIELDNAME + dynpprog = sy-repid + dynpnr = sy-dynnr + value_org = 'S' + TABLES + value_tab = lt_user + return_tab = lt_return_tab + EXCEPTIONS + parameter_error = 1 + no_values_found = 2 + OTHERS = 3. + +* CHECK E_DISPLAY IS INITIAL. + + IF sy-subrc <> 0. + EXIT. + ENDIF. + + LOOP AT lt_return_tab INTO DATA(ls_return). + gv_f4_fieldvalue = ls_return-fieldval. + ENDLOOP. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form on_f4_status +*&---------------------------------------------------------------------* +FORM on_f4_status USING pv_fieldname + CHANGING pv_err. + DATA : lt_return_tab TYPE TABLE OF ddshretval. + DATA : lv_fieldname TYPE lvc_fname. + +**-- Style Serial Code. +* CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' +* EXPORTING +* tabname = 'MARA' +* fieldname = pv_fieldname +* searchhelp = 'ZSH_ZSTYCD'. +* +* IF sy-subrc NE 0. +* pv_err = abap_on. +* ENDIF. + + SELECT domvalue_l AS code, + ddtext AS code_txt + FROM dd07t + INTO TABLE @DATA(lt_user) + WHERE domname = 'ZDEDSTATUS' + AND ddlanguage = @sy-langu. + + + lv_fieldname = 'CODE'. + +*—- Search Help 띄우는 펑션 실행 + CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' + EXPORTING +* RETFIELD = E_FIELDNAME + retfield = lv_FIELDNAME + dynpprog = sy-repid + dynpnr = sy-dynnr + value_org = 'S' + TABLES + value_tab = lt_user + return_tab = lt_return_tab + EXCEPTIONS + parameter_error = 1 + no_values_found = 2 + OTHERS = 3. + +* CHECK E_DISPLAY IS INITIAL. + + IF sy-subrc <> 0. + EXIT. + ENDIF. + + LOOP AT lt_return_tab INTO DATA(ls_return). + gv_f4_fieldvalue = ls_return-fieldval. + ENDLOOP. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form data_changed_finished +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> E_MODIFIED +*& --> ET_GOOD_CELLS +*&---------------------------------------------------------------------* +FORM data_changed_finished USING p_modified TYPE char01 + pt_good_cells TYPE lvc_t_modi. + + DATA: ls_row_id TYPE lvc_s_row, + ls_col_id TYPE lvc_s_col, + ls_row_no TYPE lvc_s_roid, + ls_stbl TYPE lvc_s_stbl. + + CHECK p_modified = abap_true. + + " 현재 셀 저장 + go_grid->get_current_cell( + IMPORTING + es_row_id = ls_row_id + es_col_id = ls_col_id + es_row_no = ls_row_no ). + + LOOP AT pt_good_cells INTO DATA(ls_cell). + READ TABLE gt_grid INTO DATA(ls_grid) INDEX ls_cell-row_id. + + CASE ls_cell-fieldname. + WHEN 'ACCT'. + SELECT SINGLE p~code_txt, q~code_txt + INTO ( @ls_grid-acct_nm, @ls_grid-gacct_nm ) + FROM zcat0020 AS p + LEFT OUTER JOIN zcat0020 AS q + ON p~appli = q~appli + AND p~grp = q~grp + AND p~spras = q~spras + AND q~code = p~fld_02 + WHERE p~appli = 'TX' + AND p~grp = 'TAX01' + AND p~spras = @sy-langu + AND p~code = @ls_cell-value + AND p~fld_03 = 'X'. + + IF sy-subrc NE 0. + CLEAR : ls_grid-acct, ls_grid-acct_nm, ls_grid-gacct_nm. +* IF ls_cell-value IS NOT INITIAL. +* gv_err = 'X'. +* ENDIF. + ENDIF. + + WHEN 'ORIGIN'. + SELECT SINGLE p~code_txt + INTO @ls_grid-origin_nm + FROM zcat0020 AS p + WHERE p~appli = 'TX' + AND p~grp = 'TAX02' + AND p~spras = @sy-langu + AND p~code = @ls_cell-value. + + IF sy-subrc NE 0. + CLEAR : ls_grid-origin, ls_grid-origin_nm. +* IF ls_cell-value IS NOT INITIAL. +* gv_err = 'X'. +* ENDIF. + ENDIF. + + WHEN 'DEDUCTION_STATUS'. + CASE ls_cell-value. + WHEN '01'. + ls_grid-deduction_desc = '불공제'. + WHEN '02'. + ls_grid-deduction_desc = '공제'. + WHEN OTHERS. + CLEAR : ls_grid-deduction_status, ls_grid-deduction_desc. + ENDCASE. + + WHEN 'DESCRIPT'. + + WHEN OTHERS. + ENDCASE. + + ls_grid-mark = 'X'. + + CASE ls_grid-export. + WHEN 'X'. + IF ls_grid-gacct_nm IS INITIAL OR ls_grid-origin_nm IS INITIAL OR ls_grid-deduction_desc is INITIAL. + CLEAR ls_grid-export. + ENDIF. + + ENDCASE. + +* ls_grid-export = 'X'. + + MODIFY gt_grid FROM ls_grid INDEX ls_cell-row_id. + + ENDLOOP. + +* Refresh 시 현재 위치 안정화 + ls_stbl-row = abap_true. + ls_stbl-col = abap_true. + + go_grid->refresh_table_display( + EXPORTING + is_stable = ls_stbl ). + +* CALL METHOD go_grid->refresh_table_display. + +* 원래 셀로 포커스 복원 + IF ls_row_id-index IS NOT INITIAL + AND ls_col_id-fieldname IS NOT INITIAL. + + go_grid->set_current_cell_via_id( + EXPORTING + is_row_id = ls_row_id + is_column_id = ls_col_id + is_row_no = ls_row_no ). + + cl_gui_control=>set_focus( + EXPORTING + control = go_grid ). + + cl_gui_cfw=>flush( ). + ENDIF. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form init_data +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM init_data . + + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form export_excel_form_data +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> p1 text +*& <-- p2 text +*&---------------------------------------------------------------------* +FORM export_excel_form_data . + TYPES : BEGIN OF ty_excel, + no TYPE c LENGTH 10, + result TYPE c LENGTH 10, + confirm_date TYPE c LENGTH 10, + gacct_nm TYPE string, + acct_nm TYPE string, + descript TYPE string, + shop_nm TYPE string, + supply_value TYPE string, "LIKE zttax0020-supply_value, + origin_nm TYPE string, + END OF ty_excel. + + DATA : lt_excel TYPE STANDARD TABLE OF ty_excel, + ls_excel TYPE ty_excel, + lv_file TYPE string. + + TYPES: BEGIN OF ty_head, + field(50) TYPE c, + END OF ty_head. + + DATA: lt_header TYPE STANDARD TABLE OF ty_head, + ls_header TYPE ty_head. + + DATA: lv_filename TYPE string, + lv_path TYPE string, + lv_fullpath TYPE string, + lv_user_action TYPE i. + + " 1. GT_GRID -> 다운로드용 테이블로 필요한 컬럼만 이동 + LOOP AT gt_grid INTO DATA(gs_grid) WHERE export = 'X'. + CLEAR ls_excel. + CLEAR : ls_excel-no, ls_excel-result. "공백으로 컬럼 채움 +* ls_excel-confirm_date = gs_grid-confirm_date. + ls_excel-confirm_date = gs_grid-confirm_date(4) && '-' && gs_grid-confirm_date+4(2) && '-' && gs_grid-confirm_date+6(2). + + ls_excel-gacct_nm = gs_grid-gacct_nm. + CONDENSE ls_excel-gacct_nm NO-GAPS. + + ls_excel-acct_nm = gs_grid-acct_nm. + CONDENSE ls_excel-acct_nm NO-GAPS. + + ls_excel-descript = gs_grid-descript. +* CONDENSE ls_excel-descript NO-GAPS. + SHIFT ls_excel-descript LEFT DELETING LEADING space. "앞 공백 제거 + SHIFT ls_Excel-descript RIGHT DELETING TRAILING space. "맨 뒤 공백 제거 + + ls_excel-shop_nm = gs_grid-shop_nm. +* CONDENSE ls_excel-shop_nm NO-GAPS. + SHIFT ls_excel-shop_nm LEFT DELETING LEADING space. + SHIFT ls_Excel-shop_nm RIGHT DELETING TRAILING space. + + "통화 변환. + ls_excel-supply_value = |{ gs_grid-supply_value CURRENCY = gs_grid-waers SIGN = LEFT }|. + REPLACE ALL OCCURRENCES OF ',' IN ls_excel-supply_value WITH ''. + CONDENSE ls_excel-supply_value NO-GAPS. + + ls_excel-origin_nm = gs_grid-origin_nm. + + APPEND ls_excel TO lt_excel. + ENDLOOP. + + IF lt_excel IS INITIAL. + MESSAGE '다운로드할 데이터가 없습니다.' TYPE 'S' DISPLAY LIKE 'E'. + EXIT. + ENDIF. + + " 2. 헤더명 세팅 + ls_header-field = 'NO'. APPEND ls_header TO lt_header. + ls_header-field = '처리결과'. APPEND ls_header TO lt_header. + ls_header-field = '날짜(필수)'. APPEND ls_header TO lt_header. + ls_header-field = '계정과목_대(필수)'. APPEND ls_header TO lt_header. + ls_header-field = '계정과목_소(필수)'. APPEND ls_header TO lt_header. + ls_header-field = '거래내용(필수)'. APPEND ls_header TO lt_header. + ls_header-field = '거래처(필수)'. APPEND ls_header TO lt_header. + ls_header-field = '금액(공급가액_필수)'. APPEND ls_header TO lt_header. + ls_header-field = '비고(필수)'. APPEND ls_header TO lt_header. + + + " 3. 저장 파일명 선택 + CALL METHOD cl_gui_frontend_services=>file_save_dialog + EXPORTING + window_title = 'Excel 파일 저장' + default_extension = 'xls' + default_file_name = 'GT_GRID_DOWNLOAD.xls' + file_filter = 'Excel Files (*.xls)|*.xls|' + CHANGING + filename = lv_filename + path = lv_path + fullpath = lv_fullpath + user_action = lv_user_action + EXCEPTIONS + cntl_error = 1 + error_no_gui = 2 + not_supported_by_gui = 3 + OTHERS = 4. + + IF sy-subrc <> 0 OR lv_user_action <> cl_gui_frontend_services=>action_ok. + MESSAGE '파일 저장이 취소되었습니다.' TYPE 'S'. + EXIT. + ENDIF. + + lv_file = lv_fullpath. + + " 4. Excel 다운로드 + CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + filename = lv_file + filetype = 'ASC' + write_field_separator = 'X' +* trunc_trailing_blanks = 'X' + TABLES + data_tab = lt_excel + fieldnames = lt_header + EXCEPTIONS + file_write_error = 1 + no_batch = 2 + gui_refuse_filetransfer = 3 + invalid_type = 4 + no_authority = 5 + unknown_error = 6 + header_not_allowed = 7 + separator_not_allowed = 8 + filesize_not_allowed = 9 + header_too_long = 10 + dp_error_create = 11 + dp_error_send = 12 + dp_error_write = 13 + unknown_dp_error = 14 + access_denied = 15 + dp_out_of_memory = 16 + disk_full = 17 + dp_timeout = 18 + file_not_found = 19 + dataprovider_exception = 20 + control_flush_error = 21 + OTHERS = 22. + + IF sy-subrc = 0. + MESSAGE |엑셀 파일이 저장되었습니다: { lv_file }| TYPE 'S'. + ELSE. + MESSAGE '엑셀 다운로드 중 오류가 발생했습니다.' TYPE 'S' DISPLAY LIKE 'E'. + ENDIF. + +ENDFORM. +*&---------------------------------------------------------------------* +*& Form on_f4_export +*&---------------------------------------------------------------------* +*& text +*&---------------------------------------------------------------------* +*& --> PV_FIELDNAME +*& <-- LV_ERR +*&---------------------------------------------------------------------* +FORM on_f4_export USING pv_fieldname + CHANGING pv_err. + + TYPES: BEGIN OF ty_user, + code TYPE char1, + code_txt TYPE char20, + END OF ty_user. + + DATA lt_user TYPE STANDARD TABLE OF ty_user. + + DATA : lt_return_tab TYPE TABLE OF ddshretval. + DATA : lv_fieldname TYPE lvc_fname. + + lt_user = VALUE #( + ( code = 'X' code_txt = '추출' ) + ( code = ' ' code_txt = '제외' ) + ). + + lv_fieldname = 'CODE'. + +*—- Search Help 띄우는 펑션 실행 + CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' + EXPORTING +* RETFIELD = E_FIELDNAME + retfield = lv_FIELDNAME + dynpprog = sy-repid + dynpnr = sy-dynnr + value_org = 'S' + TABLES + value_tab = lt_user + return_tab = lt_return_tab + EXCEPTIONS + parameter_error = 1 + no_values_found = 2 + OTHERS = 3. + +* CHECK E_DISPLAY IS INITIAL. + + IF sy-subrc <> 0. + EXIT. + ENDIF. + + LOOP AT lt_return_tab INTO DATA(ls_return). + gv_f4_fieldvalue = ls_return-fieldval. + ENDLOOP. +ENDFORM. diff --git a/src/ztax0010_f01.prog.xml b/src/ztax0010_f01.prog.xml new file mode 100644 index 0000000..dcc84ee --- /dev/null +++ b/src/ztax0010_f01.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_F01 + I + X + + + + diff --git a/src/ztax0010_i01.prog.abap b/src/ztax0010_i01.prog.abap new file mode 100644 index 0000000..c078ed9 --- /dev/null +++ b/src/ztax0010_i01.prog.abap @@ -0,0 +1,3 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_I01 +*&---------------------------------------------------------------------* diff --git a/src/ztax0010_i01.prog.xml b/src/ztax0010_i01.prog.xml new file mode 100644 index 0000000..b79db90 --- /dev/null +++ b/src/ztax0010_i01.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_I01 + I + X + + + + diff --git a/src/ztax0010_o01.prog.abap b/src/ztax0010_o01.prog.abap new file mode 100644 index 0000000..97ddaaf --- /dev/null +++ b/src/ztax0010_o01.prog.abap @@ -0,0 +1,60 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_O01 +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Module STATUS_0100 OUTPUT +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +MODULE status_0100 OUTPUT. + DATA : lv_text(200), + lt_fcode TYPE TABLE OF sy-ucomm. + + CLEAR: lv_text, lt_fcode, lt_fcode[]. + +*-- + PERFORM set_status TABLES lt_fcode USING lv_text. + + SET PF-STATUS 'PF_0100' EXCLUDING lt_fcode. + SET TITLEBAR 'ST_0100' WITH lv_text. + +ENDMODULE. +*&---------------------------------------------------------------------* +*& Module ALV_DISPLAY_0100 OUTPUT +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +MODULE alv_display_0100 OUTPUT. + CHECK : go_docking_container IS INITIAL. + +*-- Create Object : Container. + PERFORM create_container USING go_docking_container. + PERFORM split_container. + +*-- ALV_Display. + PERFORM create_alv USING go_grid go_container + gc_grid go_event_receiver. + +*-- + PERFORM create_html_text USING 'H' go_top_of_list go_container_top. +ENDMODULE. +*&---------------------------------------------------------------------* +*& Module USER_COMMAND_0100 INPUT +*&---------------------------------------------------------------------* +* text +*----------------------------------------------------------------------* +MODULE user_command_0100 INPUT. + CASE ok_code_0100. + WHEN gc_fcode-back OR gc_fcode-exit OR gc_fcode-canc. + LEAVE TO SCREEN 0. + + WHEN gc_fcode-save. + PERFORM save_data. + + WHEN gc_fcode-excel. + PERFORM export_excel_form_data. + + + ENDCASE. +ENDMODULE. diff --git a/src/ztax0010_o01.prog.xml b/src/ztax0010_o01.prog.xml new file mode 100644 index 0000000..afe3bfb --- /dev/null +++ b/src/ztax0010_o01.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_O01 + I + X + + + + diff --git a/src/ztax0010_sel.prog.abap b/src/ztax0010_sel.prog.abap new file mode 100644 index 0000000..cbd620e --- /dev/null +++ b/src/ztax0010_sel.prog.abap @@ -0,0 +1,48 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_SEL +*&---------------------------------------------------------------------* + +SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-b01. + PARAMETERS : p_gjahr TYPE gjahr DEFAULT sy-datum(4) OBLIGATORY. +*-- 분기. + PARAMETERS : p_quart TYPE zquarter OBLIGATORY. + +SELECTION-SCREEN END OF BLOCK b1. + +SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-b02. + SELECTION-SCREEN BEGIN OF LINE. + + PARAMETERS: p_chk1 RADIOBUTTON GROUP rg1 DEFAULT 'X'. + SELECTION-SCREEN COMMENT 3(40) TEXT-001 FOR FIELD p_chk1. + + PARAMETERS: p_chk2 RADIOBUTTON GROUP rg1. + SELECTION-SCREEN COMMENT 50(10) TEXT-002 FOR FIELD p_chk2. + + SELECTION-SCREEN END OF LINE. + +SELECTION-SCREEN END OF BLOCK b2. + +SELECTION-SCREEN FUNCTION KEY 1. "Excel 업로드 버튼 추가 + + +* AT SELECTION-SCREEN * +*======================================================================* +AT SELECTION-SCREEN. +* PERFORM selection_screen. + IF sscrfields-ucomm = 'FC01'. + PERFORM upload_excel. + gv_mode = gc_mode-excel. + + CALL SCREEN 0100. +* MESSAGE 'You clicked Function Key1' TYPE 'I'. + ENDIF. +*&---------------------------------------------------------------------* +* AT SELECTION-SCREEN ON +*&---------------------------------------------------------------------* + + +*&---------------------------------------------------------------------* +* AT SELECTION-SCREEN OUTPUT +*&---------------------------------------------------------------------* +AT SELECTION-SCREEN OUTPUT. +* PERFORM selection_screen_output. diff --git a/src/ztax0010_sel.prog.xml b/src/ztax0010_sel.prog.xml new file mode 100644 index 0000000..8793c6c --- /dev/null +++ b/src/ztax0010_sel.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_SEL + I + X + + + + diff --git a/src/ztax0010_top.prog.abap b/src/ztax0010_top.prog.abap new file mode 100644 index 0000000..4757c4f --- /dev/null +++ b/src/ztax0010_top.prog.abap @@ -0,0 +1,56 @@ +*&---------------------------------------------------------------------* +*& Include ZTAX0010_TOP +*&---------------------------------------------------------------------* + +*-- 공통 Include. +INCLUDE zco_constants. " Constants. +INCLUDE zco_variant. " Variant. +INCLUDE zco_macro. " Macro. +INCLUDE . + +*&---------------------------------------------------------------------* +*& TABLES +*&---------------------------------------------------------------------* + + +*&---------------------------------------------------------------------* +*& CONSTANTS +*&---------------------------------------------------------------------* + + +*&---------------------------------------------------------------------* +*& Variables +*&---------------------------------------------------------------------* +DATA : gv_mode TYPE c LENGTH 1. + +*&---------------------------------------------------------------------* +*& Types +*&---------------------------------------------------------------------* +TYPES : BEGIN OF ty_record. + INCLUDE TYPE zttax0020. +TYPES : card_company TYPE zcard_buk, + shop_ty_name TYPE c LENGTH 10, + deduction_desc TYPE c LENGTH 5, + acct LIKE zttax0030-acct, + acct_nm TYPE c LENGTH 40, + gacct_nm TYPE c LENGTH 40, + origin LIKE zttax0030-origin, + origin_nm TYPE c LENGTH 40, + descript LIKE Zttax0030-descript, + bp_no like zttax0009-bp_no, + bp_nm like zttax0009-bp_nm, + mark TYPE c LENGTH 1, "수정 여부 + EXPORT TYPE C LENGTH 1, "신고 대상 여부 + END OF ty_record. + +*&---------------------------------------------------------------------* +*& Internal Table +*&---------------------------------------------------------------------* +*-- Main Internal Table. +DATA : gt_grid TYPE TABLE OF ty_record. + +*&---------------------------------------------------------------------* +*& Field Symbols +*&---------------------------------------------------------------------* +FIELD-SYMBOLS : TYPE table, + TYPE any. diff --git a/src/ztax0010_top.prog.xml b/src/ztax0010_top.prog.xml new file mode 100644 index 0000000..be6b30a --- /dev/null +++ b/src/ztax0010_top.prog.xml @@ -0,0 +1,12 @@ + + + + + + ZTAX0010_TOP + I + X + + + + diff --git a/src/ztf_asset_depr.ddls.asddls b/src/ztf_asset_depr.ddls.asddls new file mode 100644 index 0000000..eda2f22 --- /dev/null +++ b/src/ztf_asset_depr.ddls.asddls @@ -0,0 +1,26 @@ +@EndUserText.label: '감가상각 스케쥴표' +define table function ztf_asset_depr +returns +{ + key mandt : mandt; + key assettype : zassettype; + key assetcode : mconame4; + // key ASSETDATE : /sapquery/s_bdate; + // aname : /bofu/text; + // depr_method : zdepmethod; + // useful_life : abap.int1; + month_cnt : abap.int1; + start_ym : zstart_ym; + end_ym : zend_ym; + + // assetprice : s_sum; + yearmonth : vdm_yearmonth; + seq_no : zseq_no; + + @Semantics.amount.currencyCode: 'waers' + dep_amt : zdepamt; + WAERS : waers; + +} +implemented by method + zcl_custom_tax_amdp=>get_asset_depr_plan; diff --git a/src/ztf_asset_depr.ddls.baseinfo b/src/ztf_asset_depr.ddls.baseinfo new file mode 100644 index 0000000..e69de29 diff --git a/src/ztf_asset_depr.ddls.xml b/src/ztf_asset_depr.ddls.xml new file mode 100644 index 0000000..97bb759 --- /dev/null +++ b/src/ztf_asset_depr.ddls.xml @@ -0,0 +1,13 @@ + + + + + + ZTF_ASSET_DEPR + E + 감가상각 스케쥴표 + F + + + + diff --git a/src/zttax0008.tabl.xml b/src/zttax0008.tabl.xml new file mode 100644 index 0000000..3aa6fb0 --- /dev/null +++ b/src/zttax0008.tabl.xml @@ -0,0 +1,98 @@ + + + + + + ZTTAX0008 + E + TRANSP + X + [HTAX]자산 관리 + X + A + 1 + + + ZTTAX0008 + A + 0 + APPL0 + X + N + + + + MANDT + X + MANDT + 0 + X + E + + + ASSETTYPE + X + ZASSETTYPE + 0 + X + X + F + E + + + ASSETCODE + X + MCONAME4 + 0 + X + E + + + ASSETDATE + /SAPQUERY/S_BDATE + 0 + T + E + + + ANAME + /BOFU/TEXT + 0 + E + + + DEPR_METHOD + ZDEPMETHOD + 0 + X + F + E + + + USEFUL_LIFE + 0 + X + 000001 + INT1 + 000003 + INT1 + 내용연수 + + + ASSETPRICE + S_SUM + 0 + ZTTAX0008 + WAERS + E + + + WAERS + WAERS + 0 + E + + + + + diff --git a/src/zttax0009.tabl.xml b/src/zttax0009.tabl.xml new file mode 100644 index 0000000..43658db --- /dev/null +++ b/src/zttax0009.tabl.xml @@ -0,0 +1,55 @@ + + + + + + ZTTAX0009 + E + TRANSP + X + 거래처 관리 + X + A + 1 + + + ZTTAX0009 + A + 0 + APPL0 + X + N + + + + MANDT + X + MANDT + 0 + X + E + + + BP_NO + X + ZBPNO + 0 + X + E + + + BP_NM + ZBPNM + 0 + E + + + TEL_NO + DSTEL + 0 + E + + + + + diff --git a/src/zttax0010.tabl.xml b/src/zttax0010.tabl.xml new file mode 100644 index 0000000..7693566 --- /dev/null +++ b/src/zttax0010.tabl.xml @@ -0,0 +1,48 @@ + + + + + + ZTTAX0010 + E + TRANSP + X + [HTAX]신용카드 마스터 + A + 1 + + + ZTTAX0010 + A + 0 + APPL0 + X + N + + + + MANDT + X + MANDT + 0 + X + E + + + CARD_NO + X + ZCARD_NO + 0 + X + E + + + CARD_COMPANY + ZCARD_BUK + 0 + E + + + + + diff --git a/src/zttax0020.tabl.xml b/src/zttax0020.tabl.xml new file mode 100644 index 0000000..1340e17 --- /dev/null +++ b/src/zttax0020.tabl.xml @@ -0,0 +1,157 @@ + + + + + + ZTTAX0020 + E + TRANSP + X + [HTAX]카드사용내역 + X + A + 1 + + + ZTTAX0020 + A + 3 + APPL1 + N + + + + MANDT + X + MANDT + 0 + X + E + + + GJAHR + X + GJAHR + 0 + X + E + + + QUARTER + X + ZQUARTER + 0 + X + X + F + E + + + REG_NO + X + ZREGNO + 0 + X + E + + + CONFIRM_DATE + ZCONF_DATE + 0 + T + E + + + CARD_NO + ZCARD_NO + 0 + E + + + SHOP_REG_NO + ZBUSI_REGNO + 0 + E + + + SHOP_NM + ZSHOP_NM + 0 + E + + + WAERS + WAERS + 0 + E + + + SUPPLY_VALUE + ZSUPVAL + 0 + ZTTAX0020 + WAERS + E + + + TAX_AMOUNT + ZTAXAMT + 0 + ZTTAX0020 + WAERS + E + + + NON_TAXABLE + ZNOTAXABLE + 0 + ZTTAX0020 + WAERS + E + + + AMOUNT_SUPPLY + ZSUPAMT + 0 + ZTTAX0020 + WAERS + E + + + SHOP_TYPE + ZSHOPTYPE + 0 + X + F + E + + + BISINESS_TYPE + ZBUSITYPE + 0 + E + + + BISINESS_CATEGORY + ZBUSICATE + 0 + E + + + DEDUCTION_STATUS + ZDEDSTATUS + 0 + X + F + E + + + ETC + SWD_OBJTXT + 0 + E + + + + + diff --git a/src/zttax0030.tabl.xml b/src/zttax0030.tabl.xml new file mode 100644 index 0000000..3fc3618 --- /dev/null +++ b/src/zttax0030.tabl.xml @@ -0,0 +1,96 @@ + + + + + + ZTTAX0030 + E + TRANSP + X + [HTAX]공제여부 확정 변경 + X + A + 1 + + + ZTTAX0030 + A + 1 + APPL1 + N + + + + MANDT + X + MANDT + 0 + X + E + + + GJAHR + X + GJAHR + 0 + X + E + + + QUARTER + X + ZQUARTER + 0 + X + X + F + E + + + REG_NO + X + ZREGNO + 0 + X + E + + + ACCT + ZACCT + 0 + E + + + DEDUCTION_STATUS + ZDEDSTATUS + 0 + X + F + E + + + ORIGIN + ZORIGIN + 0 + E + + + DESCRIPT + ARBFND_DESCRIPTION + 0 + E + + + EXPORT + 0 + C + 000002 + CHAR + 000001 + CHAR + 신고 대상 여부 + + + + + diff --git a/src/zvtax0020.ddls.asddls b/src/zvtax0020.ddls.asddls new file mode 100644 index 0000000..f73a16b --- /dev/null +++ b/src/zvtax0020.ddls.asddls @@ -0,0 +1,71 @@ +@AbapCatalog.sqlViewName: 'ZVTAX0020' +@AbapCatalog.compiler.compareFilter: true +@AbapCatalog.preserveKey: true +@AccessControl.authorizationCheck: #NOT_REQUIRED +@EndUserText.label: '사업자카드사용경비처리이력' +@Metadata.ignorePropagatedAnnotations: true +define view zcds_tax0020 + as select + key p.gjahr, + key p.quarter, + key p.reg_no, + p.confirm_date, + q.card_company, + p.card_no, + p.shop_reg_no, + p.shop_nm, + @Semantics.currencyCode: true + p.waers, + @Semantics.amount.currencyCode: 'waers' + p.supply_value, + @Semantics.amount.currencyCode: 'waers' + p.tax_amount, + @Semantics.amount.currencyCode: 'waers' + p.non_taxable, + @Semantics.amount.currencyCode: 'waers' + p.amount_supply, + p.shop_type, + cast ( case p.shop_type + when '01' then '법인사업자' + when '02' then '일반과세자' + when '03' then '면세사업자' + when '04' then '간이과세자' + else '' + end as abap.char(10) ) as shop_ty_name, + p.bisiness_type, + p.bisiness_category, + cast( COALESCE(r.deduction_status, p.deduction_status) as zdedstatus) as deduction_status, + cast( case COALESCE(r.deduction_status, p.deduction_status) + when '01' then '불공제' + when '02' then '공제' + else '' + end as abap.char(5) ) as deduction_desc, + p.etc, + r.acct, + t.code_txt as acct_nm, + f.code_txt as gacct_nm, + r.origin, + s.code_txt as origin_nm, + r.descript, + r.export + from zttax0020 as p + left outer join zttax0010 as q on p.card_no = q.card_no + left outer join zttax0030 as r on p.gjahr = r.gjahr + and p.quarter = r.quarter + and p.reg_no = r.reg_no + left outer join zcat0020 as t + on t.appli = 'TX' + and t.grp = 'TAX01' + and t.spras = 'E' + and t.code = r.acct + left outer join zcat0020 as s + on s.appli = 'TX' + and s.grp = 'TAX02' + and s.spras = 'E' + and s.code = r.origin + left outer join zcat0020 as f + on f.appli = t.appli + and f.grp = t.grp + and f.spras = t.spras + and f.code = t.fld_02 + diff --git a/src/zvtax0020.ddls.baseinfo b/src/zvtax0020.ddls.baseinfo new file mode 100644 index 0000000..d343d15 --- /dev/null +++ b/src/zvtax0020.ddls.baseinfo @@ -0,0 +1,22 @@ +{ +"BASEINFO": +{ +"FROM": +[ +"ZCAT0020", +"ZTTAX0010", +"ZTTAX0020", +"ZTTAX0030" +], +"ASSOCIATED": +[], +"BASE": +[], +"ANNO_REF": +[], +"SCALAR_FUNCTION": +[], +"VERSION":0, +"ANNOREF_EVALUATION_ERROR":"" +} +} \ No newline at end of file diff --git a/src/zvtax0020.ddls.xml b/src/zvtax0020.ddls.xml new file mode 100644 index 0000000..92a8bd5 --- /dev/null +++ b/src/zvtax0020.ddls.xml @@ -0,0 +1,13 @@ + + + + + + ZVTAX0020 + E + test + V + + + +