金税接口配置表维护程序(开发笔记)

*&---------------------------------------------------------------------*
*& Report ZFIR125
*&---------------------------------------------------------------------*
*& Author              :  NathanSun
*& Create Date         :  2020-04-28
*& Program Type        :  Report
*& Description         :  金税接口配置表维护程序
*&---------------------------------------------------------------------*
REPORT ZFIR125.

*&---------------------------------------------------------------------*
*& 包含               ZMMR112_TOP
*&---------------------------------------------------------------------*
TABLES:ZBILL.
TYPE-POOLS:SLIS,T001W,ICON.

*OOALV-DEFINITION
DATA GO_ALV_GRID     TYPE REF TO CL_GUI_ALV_GRID.
DATA GO_ALV_GRID_SUB TYPE REF TO CL_GUI_ALV_GRID.
DATA LO_CONTAINER    TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA OK_CODE         TYPE SY-UCOMM.
DATA OK_SAVE         TYPE SY-UCOMM.

*global fields
DATA: DRAGDROP_TREE      TYPE REF TO CL_DRAGDROP,
      DRAGDROP_ALV       TYPE REF TO CL_DRAGDROP,
      FLG_NEW,
      GRID               TYPE REF TO CL_GUI_ALV_GRID,
      GS_LAYOUT_ALV      TYPE LVC_S_LAYO,
      GS_TOOLBAR         TYPE STB_BUTTON,
      G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      G_CONTAINER_OBJECT TYPE REF TO CL_GUI_DOCKING_CONTAINER,
      G_DROPEFFECT       TYPE I,
      G_HANDLE_TREE      TYPE I,
      G_HANDLE_ALV       TYPE I,
      G_HIERARCHY_HEADER TYPE TREEV_HHDR,
      G_REPID            LIKE SY-REPID,
      CONTROLS_CREATED1,
      TREE1              TYPE REF TO CL_GUI_ALV_TREE,
      IT_NODE_KEY        TYPE  LVC_T_NKEY.
DATA: CONTROLS_CREATED.
DATA: GT_DATA TYPE TABLE OF ZBILL WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: S_KUNRG  FOR   ZBILL-KUNRG   MODIF ID C1 .                        "客户
SELECT-OPTIONS: S_BUKRS  FOR   ZBILL-BUKRS   MODIF ID C1 .                        "公司代码
SELECT-OPTIONS: S_MATNR  FOR   ZBILL-MATNR   MODIF ID C1 .                        "物料编号
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T02.
PARAMETERS: R1 RADIOBUTTON GROUP R1 USER-COMMAND UC1.
PARAMETERS: R2 RADIOBUTTON GROUP R1.
PARAMETERS: R3 RADIOBUTTON GROUP R1.
SELECTION-SCREEN END OF BLOCK B2.
*&---------------------------------------------------------------------*
*& 包含               ZMMR112_CLASS
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*       CLASS cl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CL_EVENT_RECEIVER DEFINITION.
  PUBLIC SECTION.
    " 声明单击事件的方法
    METHODS HANDLE_HOTSPOT_CLICK
                  FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
      IMPORTING E_ROW_ID E_COLUMN_ID.
    " 声明双击事件方法
    METHODS HANDLE_DOUBLE_CLICK
                  FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
      IMPORTING E_ROW E_COLUMN.
    " 声明TOOLBAR事件方法
    METHODS HANDLE_TOOLBAR
                  FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
      IMPORTING E_OBJECT E_INTERACTIVE.
    " 声明USER-COMMAND 事件方法
    METHODS HANDLE_COMMAND
                  FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
      IMPORTING E_UCOMM.
    "修改时触发
    METHODS HANDLE_DATA_CHANGED
                  FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
      IMPORTING ER_DATA_CHANGED.
    " ENTE时触发
    METHODS HANDLE_ENTER
                  FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID
      IMPORTING E_MODIFIED ET_GOOD_CELLS.
    "Drag
    METHODS HANDLE_ONDRAG
                  FOR EVENT ONDRAG OF CL_GUI_ALV_GRID
      IMPORTING E_ROW
                  E_COLUMN
                  ES_ROW_NO
                  E_DRAGDROPOBJ.
    "Drop
    METHODS HANDLE_ONDROP
                  FOR EVENT ONDROP OF CL_GUI_ALV_GRID
      IMPORTING E_ROW
                  E_COLUMN
                  E_DRAGDROPOBJ.
  PRIVATE SECTION.
ENDCLASS.                    "CL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
*       CLASS cl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CL_EVENT_RECEIVER IMPLEMENTATION.
  " 单击事件方法的实现
  METHOD HANDLE_HOTSPOT_CLICK.

  ENDMETHOD.                    "HANDLE_HOTSPOT_CLICK
  " 双击事件方法的实现
  METHOD HANDLE_DOUBLE_CLICK.

    GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY( ).
  ENDMETHOD.                    "HANDLE_DOUBLE_CLICK
  " 实现TOOLBAR事件方法
  METHOD HANDLE_TOOLBAR.

    DATA: LS_TOOLBAR TYPE STB_BUTTON.
    IF R3 IS INITIAL.
      DELETE E_OBJECT->MT_TOOLBAR WHERE FUNCTION = '&PRINT_BACK'.
      CLEAR: LS_TOOLBAR.
      LS_TOOLBAR-BUTN_TYPE = 3. " 分隔符
      APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
      CLEAR: LS_TOOLBAR.
      LS_TOOLBAR-FUNCTION = 'SAVE'.    "功能码
      LS_TOOLBAR-ICON = ICON_SYSTEM_SAVE.  " 图标名称
      LS_TOOLBAR-TEXT = '保存数据'.    " 按钮上显示的文本
      LS_TOOLBAR-QUICKINFO = '保存数据'.   " 图标的提示信息
      LS_TOOLBAR-BUTN_TYPE = 0.        " 0表示正常按钮
      LS_TOOLBAR-DISABLED = ''.        " X表示灰色,不可用
      APPEND LS_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
    ENDIF.

  ENDMETHOD.                    "HANDLE_TOOLBAR
  " 实现USER-COMMAND 事件方法
  METHOD HANDLE_COMMAND.
*  DATA: REF TYPE REF TO CL_GUI_ALV_GRID.
*  DATA : LV_STABLE TYPE LVC_S_STBL.   "刷新稳定性
**  RANGES: L_WERKS FOR T001W-WERKS.
**  RANGES: L_MATNR FOR MARA-MATNR.
*  DATA:L_BUKRS TYPE T001K-BUKRS.
*
*  LV_STABLE-ROW = '1'.
*  LV_STABLE-COL = '1'.
*
*  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
*    IMPORTING
*      E_GRID = REF.
*  CALL METHOD REF->CHECK_CHANGED_DATA.

    CASE E_UCOMM.
      WHEN 'SAVE'.
*        DEMO=>MAIN( ).
*        SORT gt_data[] BY bedat.
*        CALL METHOD go_alv_grid->refresh_table_display "内表改变时刷新ALV
*          EXPORTING
*            is_stable = lv_stable.

        PERFORM FOM_SAVEDATA .
      WHEN OTHERS.
    ENDCASE.

*  CALL METHOD REF->REFRESH_TABLE_DISPLAY
*    EXPORTING
*      IS_STABLE = LV_STABLE.


  ENDMETHOD.                    "HANDLE_COMMAND
  " 实现DATA_CHANGED 事件方法
  METHOD HANDLE_DATA_CHANGED.
    DATA GS_LAYOUT_ALV TYPE LVC_S_LAYO.
    DATA : LV_STABLE TYPE LVC_S_STBL.

    LV_STABLE-ROW = '1'.
    LV_STABLE-COL = '1'.

    GS_LAYOUT_ALV-CWIDTH_OPT = 'X'.

    CALL METHOD GO_ALV_GRID_SUB->SET_FRONTEND_LAYOUT
      EXPORTING
        IS_LAYOUT = GS_LAYOUT_ALV.

    CALL METHOD GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY
      EXPORTING
        IS_STABLE = LV_STABLE.

    CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
      EXPORTING
        CONTROL = GO_ALV_GRID_SUB.
    CALL METHOD CL_GUI_CFW=>FLUSH.

  ENDMETHOD.                    "handle_data_changed
  METHOD HANDLE_ENTER.
    DATA GS_LAYOUT_ALV TYPE LVC_S_LAYO.
    DATA : LV_STABLE TYPE LVC_S_STBL.

    LV_STABLE-ROW = '1'.
    LV_STABLE-COL = '1'.

    GS_LAYOUT_ALV-GRID_TITLE = '模具主档表配置表维护程序'."标题栏文本
    GS_LAYOUT_ALV-SEL_MODE   = 'D'.      "选择方式
    GS_LAYOUT_ALV-CWIDTH_OPT = 'X'.    "优化列宽

    CALL METHOD GO_ALV_GRID_SUB->SET_FRONTEND_LAYOUT
      EXPORTING
        IS_LAYOUT = GS_LAYOUT_ALV.

    CALL METHOD GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY
      EXPORTING
        IS_STABLE = LV_STABLE.

    CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
      EXPORTING
        CONTROL = GO_ALV_GRID_SUB.
    CALL METHOD CL_GUI_CFW=>FLUSH.

  ENDMETHOD.                    "HANDLE_MODIFY
* Drag & Drop
  METHOD HANDLE_ONDRAG.
    CHECK NOT E_ROW IS INITIAL.

*    PERFORM DISPLAY_FLIGHTS USING NODE_KEY.
*    CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE EXPORTING NEW_CODE =
*    FCODE_ENTR.
  ENDMETHOD.
* Drag & Drop
  METHOD HANDLE_ONDROP.
    CHECK NOT E_ROW IS INITIAL.
*
  ENDMETHOD.
ENDCLASS.                    "cl_event_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*& 包含               ZMMR112_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_MONTH_LASTDAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM GET_MONTH_LASTDAY .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SCREEN_SETTING .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_GETDATA .
  CLEAR GT_DATA[] .
  SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_DATA[] FROM ZBILL
    WHERE KUNRG  IN S_KUNRG
      AND BUKRS  IN S_BUKRS
      AND MATNR  IN S_MATNR
      .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form CREATETREECONTROL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM CREATETREECONTROL .

  DATA L_FCAT_CACHE    TYPE LVC_T_FCAT.
  DATA WA_LAYOUT_CACHE TYPE LVC_S_LAYO.
  DATA WA_FIELD        TYPE LVC_S_FCAT.
  DATA LO_EVENT        TYPE REF TO CL_EVENT_RECEIVER.

  CREATE OBJECT LO_CONTAINER
    EXPORTING
      CONTAINER_NAME = 'CONT01'.

  CREATE OBJECT GO_ALV_GRID_SUB
    EXPORTING
      I_PARENT = LO_CONTAINER.

  CALL METHOD GO_ALV_GRID_SUB->REGISTER_EDIT_EVENT
    EXPORTING
      I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER
    EXCEPTIONS
      ERROR      = 1
      OTHERS     = 2.

  DEFINE FILL_FIELD.
    WA_FIELD-FIELDNAME = &1.
    WA_FIELD-COLTEXT = &2.

    IF WA_FIELD-FIELDNAME = 'MATNR' .
      WA_FIELD-REF_TABLE = 'MARA'.
      WA_FIELD-REF_FIELD = 'MATNR'.
    ENDIF.

    IF WA_FIELD-FIELDNAME = 'MAKTX' .
      WA_FIELD-REF_TABLE = 'MAKT'.
      WA_FIELD-REF_FIELD = 'MAKTX'.
    ENDIF.

    IF WA_FIELD-FIELDNAME = 'BUKRS' .
      WA_FIELD-REF_TABLE = 'ZTMJZD'.
      WA_FIELD-REF_FIELD = 'BUKRS'.
    ENDIF.

    IF WA_FIELD-FIELDNAME = 'MSMRQ'
        OR WA_FIELD-FIELDNAME = 'MSMRQ1'
        OR WA_FIELD-FIELDNAME = 'MSMRQ2'
        OR WA_FIELD-FIELDNAME = 'MSMRQ3'
         .
      WA_FIELD-REF_TABLE = 'ZTMJZD'.
      WA_FIELD-REF_FIELD = 'MSMRQ'.
    ENDIF.

    IF R1 IS NOT INITIAL.
      IF WA_FIELD-FIELDNAME = 'FKTYP'
        OR WA_FIELD-FIELDNAME = 'FKKTX'
        OR WA_FIELD-FIELDNAME = 'FKRMT'
        OR WA_FIELD-FIELDNAME = 'FKINS'
        OR WA_FIELD-FIELDNAME = 'SSFLBM'
        OR WA_FIELD-FIELDNAME = 'SHUILV'
        OR WA_FIELD-FIELDNAME = 'MAME_EN'
        .
        WA_FIELD-EDIT = 'X'.
      ENDIF.

    ELSEif R2 IS NOT INITIAL.
      WA_FIELD-EDIT = 'X'.
    ENDIF.

    IF WA_FIELD-FIELDNAME =  'ZFLAG' .
      WA_FIELD-CHECKBOX = 'X'.
      WA_FIELD-EDIT = 'X'.
    ENDIF.

    APPEND WA_FIELD TO L_FCAT_CACHE .
    CLEAR WA_FIELD.
  END-OF-DEFINITION.

  FILL_FIELD :
        'KUNRG'    '客户',
        'BUKRS'    '公司',
        'MATNR'    '物料编码',
        'FKTYP'    '出具发票类型',
        'FKKTX'    '开票名称',
        'FKRMT'    '开票规格',
        'FKINS'    '开票单位',
        'SSFLBM'   '税收分类编码',
        'SHUILV'   '税率',
        'MAME_EN'  '客户名称有中英文'.

  CREATE OBJECT LO_EVENT.
  SET HANDLER LO_EVENT->HANDLE_TOOLBAR FOR GO_ALV_GRID_SUB.
  SET HANDLER LO_EVENT->HANDLE_COMMAND FOR GO_ALV_GRID_SUB.
  SET HANDLER LO_EVENT->HANDLE_ONDROP  FOR GO_ALV_GRID_SUB.
*  SET HANDLER LO_EVENT->HANDLE_DATA_CHANGED  FOR GO_ALV_GRID_SUB.
  SET HANDLER LO_EVENT->HANDLE_ENTER  FOR GO_ALV_GRID_SUB.
  WA_LAYOUT_CACHE-GRID_TITLE = '金税接口配置表维护程序'."标题栏文本
  WA_LAYOUT_CACHE-SEL_MODE   = 'D'.      "选择方式
  WA_LAYOUT_CACHE-CWIDTH_OPT = 'X'.    "优化列宽
*   HANDLE FOR D'N'D
*  WA_LAYOUT_CACHE-S_DRAGDROP-ROW_DDID = G_HANDLE_ALV.

  CALL METHOD GO_ALV_GRID_SUB->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT       = WA_LAYOUT_CACHE
    CHANGING
      IT_FIELDCATALOG = L_FCAT_CACHE
      IT_OUTTAB       = GT_DATA[].

*    CLEAR GT_DATA_D[].
  GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY( ).

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_SAVEDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FOM_SAVEDATA .
  DATA:CHECK1 TYPE C .
  DATA:CHECK2 TYPE C .
  DATA:LV_MARA TYPE  MARA .
  DATA:LV_KNB1 TYPE  KNB1 .
  SORT GT_DATA BY BUKRS MATNR .
  DELETE GT_DATA[] WHERE KUNRG IS INITIAL AND BUKRS IS INITIAL AND MATNR IS INITIAL.
*  LOOP AT GT_DATA.
*    SELECT SINGLE * INTO @DATA(GT_MARC) FROM MARC
*      WHERE BUKRS = @GT_DATA-BUKRS
*        AND MATNR = @GT_DATA-MATNR
*        .
*    CLEAR CHECK1 .
*    CLEAR CHECK2 .
*    IF SY-SUBRC <> 0.
*      DATA(LV_BUKRS) = GT_DATA-BUKRS .
*      DATA(LV_MATNR1) = GT_DATA-MATNR .
*      CHECK1 = 'X'.
*      EXIT.
*    ENDIF.
*
*    SELECT SINGLE * INTO @DATA(GT_MARA) FROM MARA
*      WHERE MATNR = @GT_DATA-MATNR
*        AND MTART = 'Z005'
*        .
*    IF SY-SUBRC <> 0.
*      DATA(LV_MATNR2) = GT_DATA-MATNR .
*      CHECK2 = 'X'.
*      EXIT.
*    ENDIF.
*    CLEAR GT_DATA .
*  ENDLOOP.
*  IF CHECK1 IS INITIAL AND CHECK2 IS INITIAL.


*ZFIR125 新增或修改做如下检查:客户+公司如果在KNB1查询不到,
*报错提示“客户”+客户编码+“在”+公司代码+“不存在”;
*物料如果在MARA查询不到,报错提示"物料编码+物料编码+“不存在”

  IF R2 IS NOT INITIAL.

    LOOP AT GT_DATA.

      SELECT SINGLE MATNR INTO LV_MARA-MATNR FROM MARA
        WHERE MATNR = GT_DATA-MATNR
        .
      IF SY-SUBRC <> 0.
        CHECK1 = 'X'.
        EXIT.
      ENDIF.

      SELECT SINGLE KUNNR INTO LV_KNB1-KUNNR FROM KNB1
        WHERE KUNNR = GT_DATA-KUNRG
          AND BUKRS = GT_DATA-BUKRS
          .

      IF SY-SUBRC <> 0.
        CHECK2 = 'X'.
        EXIT.
      ENDIF.

      CLEAR GT_DATA .
      CLEAR CHECK1 .
      CLEAR CHECK2 .
    ENDLOOP.

  ENDIF.

  IF CHECK1 IS INITIAL AND CHECK2 IS INITIAL.
    MODIFY ZBILL FROM TABLE GT_DATA[] .
    COMMIT WORK .
    MESSAGE '保存成功!'TYPE 'S' .
    CLEAR GT_DATA[] .
  ELSEIF CHECK1 IS NOT INITIAL.
    MESSAGE '物料编码:' && GT_DATA-MATNR && '不存在!'  TYPE 'S' DISPLAY LIKE 'E'.
  ELSEIF CHECK2 IS NOT INITIAL.
    MESSAGE '客户:' && GT_DATA-KUNRG && '在公司' && GT_DATA-BUKRS && '下不存在'  TYPE 'S' DISPLAY LIKE 'E'.
  ENDIF.

*  ELSEIF CHECK1 IS NOT INITIAL .
*    MESSAGE '模具' && LV_MATNR1 && '在工厂' && LV_BUKRS && '下' && '无主档数据' TYPE 'S' DISPLAY LIKE 'E'.
*  ELSEIF CHECK2 IS NOT INITIAL .
*    MESSAGE '模具' && LV_MATNR2 && '的类型并非Z005' TYPE 'S' DISPLAY LIKE 'E'.
*  ELSE .
*  ENDIF.

*    CLEAR GT_DATA_D[].
  GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& 包含               ZMMR112_PBO
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'PF_0100'.
  SET TITLEBAR  'TITLE_0100'.
  CHECK CONTROLS_CREATED IS INITIAL.
  CALL METHOD CL_GUI_CFW=>FLUSH."触发SAP GUI更新界面
  PERFORM CREATETREECONTROL.  "实例化ALV_GRID
  CONTROLS_CREATED = 'X'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module TREE_AND_DOCKING OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE TREE_AND_DOCKING OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SCREEN_SETTING_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE SCREEN_SETTING_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& 包含               ZMMR112_PAI
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  CANCEL  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT.
  LEAVE PROGRAM .
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  OK_SAVE = SY-UCOMM .
  CLEAR SY-UCOMM .
  CLEAR OK_CODE .
  CASE  OK_SAVE.
    WHEN 'BACK'  .
      LEAVE TO SCREEN 0 .
*    WHEN 'BT_8'  .
*      demo=>main( ).
    WHEN OTHERS .
  ENDCASE .
ENDMODULE.

INITIALIZATION .
  PERFORM GET_MONTH_LASTDAY.

AT SELECTION-SCREEN OUTPUT.

AT SELECTION-SCREEN.
  PERFORM SCREEN_SETTING.

START-OF-SELECTION.
  IF R1 IS NOT INITIAL OR R3 IS NOT INITIAL.
    PERFORM FOM_GETDATA .
  ELSEIF R2 IS NOT INITIAL.
    DO 50 TIMES.
      APPEND INITIAL LINE TO GT_DATA[] .
    ENDDO.
  ENDIF.
  CALL SCREEN 100.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值