普通报表

来源:互联网 发布:python帮助文档中文 编辑:程序博客网 时间:2024/04/28 21:07

INCLUDE ZPPR_0037TOP.


TABLES:marc,mvke,pbim,pbed,mard,zzj_pp_001.


*声明存放ALV显示内表类型
TYPES:BEGIN OF ty_alv_itab.
        INCLUDE STRUCTURE zzj_pp_001.
TYPES:lv(4),
END OF ty_alv_itab.

TYPES:BEGIN OF ty_pbim,
  matnr TYPE pbim-matnr,"物料
  werks TYPE pbim-werks,"工厂
  plnmg TYPE pbed-plnmg,"需求数量
  END OF ty_pbim.


TYPES:BEGIN OF  ty_matnr,
  matnr  TYPE  marc-matnr,
  werks  TYPE  marc-werks,
  plifz  TYPE  marc-plifz,"采购周期
  END OF   ty_matnr.



DATA:g_itab_fieldcat_lvc TYPE lvc_t_fcat,
     g_itab_sort_lvc TYPE lvc_t_sort.

DATA:ok_code_9000 LIKE sy-ucomm,"定义OK_CODE
     save_ok LIKE sy-ucomm.

*ALV变量
DATA:g_ischange,
      g_tabnm(30TYPE c VALUE 'ZZJ_PP_001',"维护表表名
      gs_variant TYPE disvariant, "定义格式
      gs_alv_itab TYPE ty_alv_itab,
      gt_alv_itab TYPE TABLE OF ty_alv_itab WITH HEADER LINE,
      gt_type_dec TYPE TABLE OF dd07t WITH HEADER LINE,
      gt_fieldcat TYPE lvc_t_fcat,"定义字段目录的属性
      gs_layout TYPE lvc_s_layo,
*      i_grid_settings TYPE lvc_s_glay, "显示回调
*      l_repid LIKE sy-repid, "当前程序名
      gt_exclude TYPE ui_functions,
      wcl_container TYPE REF TO cl_gui_docking_container,
      wcl_alv TYPE REF TO cl_gui_alv_grid.

*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
* 处理ALV事件类声明
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION."类方法
    METHODS:
*    工具栏自定义按钮
    handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
    IMPORTING e_object e_interactive,
*    监控按钮
    handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
    IMPORTING e_ucomm,
*    数据改变
    handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm,
*    数据改变后
    handle_data_changed_finished FOR EVENT data_changed_finished OF
cl_gui_alv_grid
   IMPORTING e_modified  et_good_cells.
ENDCLASS.                    "lcl_event_handler DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
* 处理ALV事件类实现
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
*  handle toolbar
  METHOD handle_toolbar.
    PERFORM handle_toolbar USING e_object e_interactive.
  ENDMETHOD.                    "handle_toolbar
*  handler user command
  METHOD handle_user_command.
    PERFORM handle_user_command USING e_ucomm.
  ENDMETHOD.                    "handle_user_command
*  handler data changed
  METHOD handle_data_changed.
    PERFORM handle_data_changed USING er_data_changed e_onf4"在ALV OO中我们可以通过DATA_CHANGE事件得到被修改的单元格的信息,
e_onf4_before e_onf4_after e_ucomm.
  ENDMETHOD.                    "handle_data_changed
*  handler data changed finished
  METHOD handle_data_changed_finished.
    PERFORM handle_data_changed_finished USING e_modified et_good_cells.
  ENDMETHOD.                    "handle_data_changed_finished
ENDCLASS.                    "lcl_event_handler IMPLEMENTATION



INCLUDE ZPPR_0037S01.


*&---------------------------------------------------------------------*
*&  包括                ZPPR_0037S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t1.
SELECT-OPTIONS:s_werks FOR marc-werks OBLIGATORY MEMORY ID zwk,"工厂
               s_matnr FOR marc-matnr."物料

PARAMETERS:p_budat LIKE marc-mmstd DEFAULT sy-datum."日期
SELECTION-SCREEN END OF BLOCK b1.

INCLUDE ZPPR_0037E01.


INITIALIZATION.
  t1 = '选择参数'.

AT SELECTION-SCREEN.

START-OF-SELECTION.

  IF p_budat = sy-datum.
    PERFORM  frm_get_data.
  ELSE.
    MESSAGE e000(zzj_001) WITH '输入的日期不正确'.
  ENDIF.

END-OF-SELECTION.

  CALL SCREEN 9000.


INCLUDE ZPPR_0037F01.


FORM FRM_GET_DATA .
  CLEAR:gt_alv_itab,gt_alv_itab[].
  DATA:lt_mard TYPE TABLE OF mard WITH HEADER LINE,
        lt_pbim TYPE TABLE OF ty_pbim WITH HEADER LINE,
        lt_vbap TYPE TABLE OF vbap WITH HEADER LINE,
        lt_pp TYPE TABLE OF zzj_pp_001 WITH HEADER LINE,
        lt_marc TYPE TABLE OF marc WITH HEADER LINE,
        lt_matnr TYPE TABLE OF ty_matnr WITH HEADER LINE.

*  取物料工厂数据
  SELECT
    t01~matnr"物料
    t01~werks"工厂
    t02~maktx"物料描述
*   t03~name1"工厂描述
      FROM marc AS t01
      INNER JOIN makt AS t02 ON t01~matnr = t02~matnr AND t02~spras = '1'
      INNER JOIN t001w AS t03 ON t01~werks = t03~werks
      INNER JOIN mara AS t04 ON t01~matnr = t04~matnr
      INTO CORRESPONDING FIELDS OF TABLE gt_alv_itab
    WHERE t01~werks IN s_werks
        AND t01~matnr IN s_matnr
        AND t04~mtart = 'FERT'.

*物料  采购周期
     SELECT
       matnr
       werks
       plifz"采购周期
       FROM marc
       INTO CORRESPONDING FIELDS OF TABLE lt_matnr
       WHERE matnr in s_matnr
         AND werks IN s_werks.

*  本月需求数量
  SELECT
    matnr "物料
    werks "工厂
    SUM( plnmg )  AS plnmg"需求数量
    FROM pbim AS t01
    INNER JOIN pbed AS t02 ON t01~bdzei = t02~bdzei
    INTO CORRESPONDING FIELDS OF TABLE lt_pbim
    WHERE werks IN s_werks
      AND  matnr IN s_matnr
      AND versb = '00'
*     AND pdatu IN r_now
      AND t01~loevr = ''
      AND t02~loevr = ''
    GROUP BY matnr werks.


*  库存数量
  SELECT
    matnr "物料
    werks"工厂
    lgort"库存地点
    labst"库存数
*   SUM( labst ) AS labst"库存数累计
    FROM mard
    INTO CORRESPONDING FIELDS OF TABLE lt_mard
    WHERE  werks IN s_werks
      AND  matnr IN s_matnr.
*       GROUP BY matnr werks.

*取最小批量
  SELECT
    matnr"物料
    werks"工厂
    bstmi"最小批量
    FROM marc
    INTO CORRESPONDING FIELDS OF TABLE lt_marc
    WHERE werks IN s_werks
      AND matnr IN s_matnr.

*  取保存数据
  SELECT *
    FROM zzj_pp_001
    INTO TABLE lt_pp
    WHERE werks IN s_werks
      AND matnr IN s_matnr.

  LOOP AT gt_alv_itab.
*    读取本月计划数量
    READ TABLE lt_pbim WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.

    IF sy-subrc = 0.
      gt_alv_itab-plnmg = lt_pbim-plnmg."计划数量
    ENDIF.

*    读取库存数量
    READ TABLE lt_mard WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.

    IF sy-subrc = 0.
      gt_alv_itab-labst = lt_mard-labst."库存数量
    ENDIF.


*    读取最小批量
    READ TABLE lt_marc WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.

    IF sy-subrc = 0.
      gt_alv_itab-bstmi = lt_marc-bstmi."最小批量
    ENDIF.

*  要求到货时间 = 当前日期 + 采购周期
    READ TABLE lt_matnr WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.

    IF sy-subrc = 0.
      gt_alv_itab-zyqdh = sy-datum + lt_matnr-plifz."要求到货时间
    ENDIF.

    READ TABLE lt_pp WITH KEY werks = gt_alv_itab-werks  matnr = gt_alv_itab-matnr.

    IF SY-SUBRC = 0.
      gt_alv_itab-zdjs = lt_pp-zdjs.
      gt_alv_itab-zwqcgdd = lt_pp-zwqcgdd.
      gt_alv_itab-zjxq = lt_pp-zjxq.
*      gt_alv_itab-bstmi = lt_pp-bstmi.
      gt_alv_itab-ztzsl = lt_pp-ztzsl.
      gt_alv_itab-zcgxdsl = lt_pp-zcgxdsl.
*      gt_alv_itab-zyqdh = lt_pp-zyqdh.
      gt_alv_itab-zyjdh = lt_pp-zyjdh.
    ENDIF.

    MODIFY gt_alv_itab.
    CLEAR gt_alv_itab.
  ENDLOOP.


ENDFORM.                    " FRM_GET_DATA
*&-------------------------------------------------

*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .
  IF wcl_container IS INITIAL.
    PERFORM frm_create_container."创建容器
    PERFORM frm_pre_layout."设置ALV样式
    PERFORM frm_pre_fieldcat."设置ALV字段
    PERFORM frm_upload_event."注册事件
    PERFORM frm_set_tab_display."显示ALV
  ELSE.
    PERFORM frm_refresh_data."刷新ALV

  ENDIF.

ENDFORM.                    " FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_CONTAINER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_CREATE_CONTAINER .
  CREATE OBJECT wcl_container
    EXPORTING
      repid = sy-repid
      dynnr = sy-dynnr "当前屏幕
      ratio = 95       "调整屏幕ALV的显示长度
      side  = cl_gui_docking_container=>dock_at_top."TOP-ALV贴着屏幕上端

  CREATE OBJECT wcl_alv
    EXPORTING
      i_parent = wcl_container.

ENDFORM.                    " FRM_CREATE_CONTAINER
*&---------------------------------------------------------------------*
*&      Form  FRM_PRE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_PRE_LAYOUT .
  gs_layout-zebra = 'X'.
  gs_layout-sel_mode = 'A'.
  gs_layout-cwidth_opt = 'X'.
  gs_layout-info_fname = 'ROWCOLOR'.
  gs_layout-stylefname = 'CELLSTYLES'.


ENDFORM.                    " FRM_PRE_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  FRM_PRE_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_PRE_FIELDCAT .
  PERFORM sub_fill_alv_fieldcat USING 'WERKS' '工厂' space space 'X' space.
  PERFORM sub_fill_alv_fieldcat USING 'MATNR' '物料号' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'MAKTX' '物料描述' space space space space.
  PERFORM sub_fill_alv_fieldcat USING 'PLNMG' '需求' space 'X' space 'X'.
  PERFORM sub_fill_alv_fieldcat USING 'LABST' '库存数量' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZDJS' '待检数' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZWQCGDD' '未清采购订单数(在途)' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZJXQ' '净需求'space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'BSTMI' '最小批量' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZTZSL' '调整数量' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZCGXDSL' '采购下单数量' space 'X' space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZYQDH' '要求到货时间' space space space space.
  PERFORM sub_fill_alv_fieldcat USING 'ZYJDH' '预计到货时间' 'X'space space space.


ENDFORM.                    " FRM_PRE_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  SUB_FILL_ALV_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0340   text
*      -->P_0341   text
*      -->P_SPACE  text
*      -->P_SPACE  text
*      -->P_0344   text
*      -->P_SPACE  text
*----------------------------------------------------------------------*
FORM SUB_FILL_ALV_FIELDCAT  USING p_fieldname "TYPE slis_fieldname
                                    p_reptext_ddic "LIKE dd03p-reptext
                                     P_edit" TYPE slis_edit_mask
                                      p_zero" TYPE c
                                       p_hotspot
                                        p_sum.
  DATA:l_fieldcat_lvc TYPE lvc_s_fcat.
  l_fieldcat_lvc-fieldname = p_fieldname.
  l_fieldcat_lvc-reptext = p_reptext_ddic.
  l_fieldcat_lvc-edit = p_edit.
  l_fieldcat_lvc-no_zero = p_zero.
  l_fieldcat_lvc-hotspot = p_hotspot.
  l_fieldcat_lvc-do_sum = p_sum.
  APPEND l_fieldcat_lvc to g_itab_fieldcat_lvc.

ENDFORM.                    " SUB_FILL_ALV_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_UPLOAD_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_UPLOAD_EVENT .
  DATA:lr_event_handler TYPE REF TO lcl_event_handler.
  CREATE OBJECT lr_event_handler.
  SET HANDLER lr_event_handler->handle_toolbar FOR wcl_alv.
  SET HANDLER lr_event_handler->handle_user_command FOR wcl_alv.

  CALL METHOD wcl_alv->register_edit_event"注册更新事件
  EXPORTING
    i_event_id = cl_gui_alv_grid=>mc_evt_modified"表示在单元格修改后回车或者其他操作时触发事件,此类型可用于多个单元格修改后修改后一起检查修改的值
    EXCEPTIONS
      error = 1
      OTHERS = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ENDIF.

  SET HANDLER lr_event_handler->handle_data_changed FOR wcl_alv.
  SET HANDLER lr_event_handler->handle_data_changed_finished FOR wcl_alv.

ENDFORM.                    " FRM_UPLOAD_EVENT
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_TAB_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_SET_TAB_DISPLAY .
  CALL METHOD wcl_alv->set_table_for_first_display
    EXPORTING
      i_save                        = 'A'
      i_default                     = 'X'
      is_layout                     = gs_layout
    CHANGING
      it_outtab                     = gt_alv_itab[]
      it_fieldcatalog               = g_itab_fieldcat_lvc
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.

  IF sy-subrc <> 0.

  ENDIF.

ENDFORM.                    " FRM_SET_TAB_DISPLAY


*&---------------------------------------------------------------------*
*&      Form  FRM_REFRESH_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_REFRESH_DATA .
  DATA:lw_stbl TYPE lvc_s_stbl.
  lw_stbl-row = 'X'.
  lw_stbl-col = 'X'.

  CALL METHOD wcl_alv->refresh_table_display
    EXPORTING
      is_stable = lw_stbl
    EXCEPTIONS
      finished  = 1
      OTHERS    = 2.

  IF sy-subrc <> 0.

  ENDIF.

ENDFORM.                    " FRM_REFRESH_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_SAVE_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_TEXT_002  text
*      -->P_TEXT_003  text
*      <--P_L_ANSWER  text
*----------------------------------------------------------------------*
FORM FRM_SAVE_DATA  USING p_title p_text CHANGING p_answer.
  DATA:lt_pp TYPE TABLE OF zzj_pp_001 WITH HEADER LINE.
  DATA:lt_row TYPE lvc_t_row.
  DATA:lt_row2 TYPE lvc_t_roid.

  CALL METHOD wcl_alv->get_selected_rows
    IMPORTING
      et_index_rows = lt_row
      et_row_no     = lt_row2.

  PERFORM frm_check_changed_data USING wcl_alv.

  LOOP AT gt_alv_itab.
    MOVE-CORRESPONDING gt_alv_itab TO lt_pp.
    APPEND lt_pp.
    CLEAR lt_pp.
  ENDLOOP.

  IF g_ischange = 'X'.
    IF p_title IS INITIAL OR p_text IS INITIAL.
      p_answer = '1'.
    ELSE.
      PERFORM frm_confirm USING p_title p_text CHANGING p_answer.
    ENDIF.

    IF p_answer = '1'.
      MODIFY (g_tabnm) FROM TABLE lt_pp.
      CLEAR g_ischange.

    ENDIF.

  ENDIF.

ENDFORM.                    " FRM_SAVE_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_CHECK_CHANGED_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_WCL_ALV  text
*----------------------------------------------------------------------*
FORM FRM_CHECK_CHANGED_DATA  USING PCL_ALV TYPE REF TO cl_gui_alv_grid.
  DATA:l_valid.
  CALL METHOD pcl_alv->check_changed_data
    IMPORTING
      e_valid = l_valid.

ENDFORM.                    " FRM_CHECK_CHANGED_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_CONFIRM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_TITLE  text
*      -->P_P_TEXT  text
*      <--P_P_ANSWER  text
*----------------------------------------------------------------------*
FORM FRM_CONFIRM  USING    P_TITLE
                           P_TEXT
                  CHANGING P_ANSWER.
  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      TITLEBAR      = p_title
      TEXT_QUESTION = p_text
    IMPORTING
      ANSWER        = p_answer.

  IF sy-subrc <> 0.

  ENDIF.

ENDFORM.                    " FRM_CONFIRM
*&---------------------------------------------------------------------*
*&      Form  HANDLE_TOOLBAR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_OBJECT  text
*      -->P_E_INTERACTIVE  text
*----------------------------------------------------------------------*
FORM HANDLE_TOOLBAR  USING     p_e_object TYPE REF TO cl_alv_event_toolbar_set
      p_e_interactive.

ENDFORM.                    " HANDLE_TOOLBAR
*&---------------------------------------------------------------------*
*&      Form  HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_UCOMM  text
*----------------------------------------------------------------------*
FORM HANDLE_USER_COMMAND  USING    P_E_UCOMM.

ENDFORM.                    " HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  HANDLE_DATA_CHANGED
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ER_DATA_CHANGED  text
*      -->P_E_ONF4  text
*      -->P_E_ONF4_BEFORE  text
*      -->P_E_ONF4_AFTER  text
*      -->P_E_UCOMM  text
*----------------------------------------------------------------------*
FORM HANDLE_DATA_CHANGED  USING   p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol
      p_e_onf4
      p_e_onf4_before
      p_e_onf4_after
      p_e_ucomm TYPE sy-ucomm.
  g_ischange = 'X'.

ENDFORM.                    " HANDLE_DATA_CHANGED
*&---------------------------------------------------------------------*
*&      Form  HANDLE_DATA_CHANGED_FINISHED
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_MODIFIED  text
*      -->P_ET_GOOD_CELLS  text
*----------------------------------------------------------------------*
FORM HANDLE_DATA_CHANGED_FINISHED   USING   p_e_modified
                       p_et_good_cells TYPE lvc_t_modi.
  DATA:ls_good_cells TYPE lvc_s_modi.
  LOOP AT p_et_good_cells INTO ls_good_cells ."WHERE fieldname = 'ZSFSC'.
    READ TABLE gt_alv_itab INDEX ls_good_cells-row_id.
    MODIFY gt_alv_itab INDEX ls_good_cells-row_id.
  ENDLOOP.
  PERFORM frm_refresh_data.

ENDFORM.                    " HANDLE_DATA_CHANGED_FINISHED


INCLUDE ZPPR_0037PBO.


*&---------------------------------------------------------------------*
*&  包括                ZPPR_0037PBO
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
  SET PF-STATUS 'STAT9000'.
  SET TITLEBAR 'TIT9000'.

ENDMODULE.                 " STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  DISPLAY_ALV_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE DISPLAY_ALV_9000 OUTPUT.
  PERFORM FRM_DISPLAY_ALV.

ENDMODULE.                 " DISPLAY_ALV_9000  OUTPUT


INCLUDE ZPPR_0037PAI.


*&---------------------------------------------------------------------*
*&  包括                ZPPR_0037PAI
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
  DATA:l_answer.
  save_ok = ok_code_9000.
  CASE save_ok.
    WHEN 'BACK'.
      IF g_ischange = 'X'.
        PERFORM frm_save_data USING text-002 text-003 CHANGING l_answer.
        IF l_answer <> 'A'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ELSE.
        LEAVE TO SCREEN 0.
      ENDIF.
    WHEN 'SAVE'.
      PERFORM frm_save_data USING space space CHANGING l_answer.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE EXIT_9000 INPUT.

ENDMODULE.                 " EXIT_9000  INPUT

原创粉丝点击