Dialog例子-工单排产

表结构:



效果图:




代码:

*&---------------------------------------------------------------------*
*& Report  ZPPT009
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZPPT009.

INCLUDE zppt009_top.
INCLUDE zppt009_getdata.
INCLUDE zppt009_coredel.



zppt009_top包括代码:

*&---------------------------------------------------------------------*
*&  包括                ZPPT009_TOP
*&---------------------------------------------------------------------*
TYPE-POOLS:slis,vrm.

TABLES sscrfields.
TABLES:zppt009afkoaufk,afpo,zppt009a.

DATA:gt_fcat TYPE lvc_t_fcat,
      gs_layout TYPE lvc_s_layo,
      wa_fieldcat TYPE lvc_s_fcat,
      tmp_fieldcat TYPE lvc_t_fcat,
      gt_fieldcat TYPE lvc_t_fcat,
      gt_exclude TYPE ui_functions,
      alv_grid TYPE REF TO cl_gui_alv_grid,
      container TYPE scrfname VALUE 'ZSR2',
      custom_container TYPE REF TO cl_gui_custom_container.

DATA:ls_layout TYPE disvariant.
DATAok_code LIKE sy-ucomm,
      save_ok LIKE ok_code.

DATAc_form_name TYPE tdsfname,
      c_form_title TYPE string.

DATAitab2 LIKE TABLE OF zppt009.
DATAitab LIKE TABLE OF zppt009 WITH HEADER LINE.
DATAit_out LIKE TABLE OF zppt009  WITH HEADER LINE.
DATAitab1 LIKE TABLE OF zppt009 WITH HEADER LINE.

DATABEGIN OF wa_werks,
  werks LIKE t001w-werks,
  name1 LIKE t001w-name1,
 END OF wa_werks.
DATA:it_werks LIKE TABLE OF wa_werks WITH HEADER LINE.

CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA:
      gi_index_rows TYPE lvc_t_row,
      g_selected_row LIKE lvc_s_row.

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS:
    handle_data_changed
    FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING er_data_changed.
ENDCLASS.                    "lcl_event_receiver DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_data_changed.
    PERFORM handle_data_changed USING er_data_changed.
  ENDMETHOD.                    "handle_data_changed
ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION

DATAg_alv_application TYPE REF TO lcl_event_receiver.
DATA:
      o_event_receiver TYPE REF TO lcl_event_receiver.
DATA:zcw TYPE lvc_t_cell,
      wa_cw TYPE lvc_s_cell.

SELECTION-SCREEN BEGIN OF SCREEN 9999 AS SUBSCREEN.
SELECT-OPTIONSs_werks FOR aufk-werks.
SELECT-OPTIONSs_aufnr FOR aufk-aufnr.
SELECT-OPTIONSs_ass FOR zppt009a-asslinename.
SELECTION-SCREEN END OF SCREEN 9999.

AT SELECTION-SCREEN OUTPUT.

START-OF-SELECTION.
  CALL SCREEN 100.





zppt009_getdata.包括代码

*&---------------------------------------------------------------------*
*&  包括                ZPPT009_GETDATA
*&---------------------------------------------------------------------*
FORM getdata.
  SELECT INTO CORRESPONDING FIELDS OF TABLE itab  FROM zppt009 WHERE werks IN s_werks AND aufnr IN s_aufnr AND assline IN s_ass.
  SORT itab BY werks assline aufnr yearperiod monthperiod.
ENDFORM.                    "getdata

*&---------------------------------------------------------------------*
*&      Form  alvdata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM alvdata.
  DATA:it_fcat TYPE lvc_t_fcat WITH HEADER LINE,
        ls_fcat TYPE lvc_s_fcat,
        l_col_pos LIKE lvc_s_fcat-col_pos,
        l_tabix LIKE sy-tabix.
  CLEAR gt_fcat[].
  CLEAR ls_fcat.

  ls_fcat-fieldname 'CHE'.
  ls_fcat-coltext '选择'.
  ls_fcat-checkbox 'X'.
  ls_fcat-outputlen 2.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname 'WERKS'.
  ls_fcat-coltext  =  '工厂'.
  ls_fcat-outputlen 4.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'T001W'.
  ls_fcat-ref_field 'WERKS'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname   =  'ASSLINE'.
  ls_fcat-coltext  =  '流水线'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'ZPPT009'.
  ls_fcat-ref_field 'ASSLINE'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'IDNRK'.
  ls_fcat-coltext  =  '物料号'.
  ls_fcat-outputlen 12.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'MARA'.
  ls_fcat-ref_field 'MATNR'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'AUFNR'.
  ls_fcat-coltext  =  '工单号'.
  ls_fcat-outputlen 12.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'AFKO'.
  ls_fcat-ref_field 'AUFNR'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'MATNR'.
  ls_fcat-coltext  =  '成品料号'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'MARA'.
  ls_fcat-ref_field 'MATNR'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'QLRQ'.
  ls_fcat-coltext  =  '齐料日期'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'ZPPT009'.
  ls_fcat-ref_field 'QLRQ'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'JHSCRQ'.
  ls_fcat-coltext  =  '开工日期'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  ls_fcat-ref_table 'ZPPT009'.
  ls_fcat-ref_field 'JHSCRQ'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'XCTS'.
  ls_fcat-coltext  =  '相差天数'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'GDXQSL'.
  ls_fcat-coltext  =  '需求数量'.
  ls_fcat-outputlen 10.
  "ls_fcat-decimals = 0.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'GDQLSL'.
  ls_fcat-coltext  =  '缺料数量'.
  ls_fcat-outputlen 10.
  "ls_fcat-decimals = 3.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'QLBL'.
  ls_fcat-coltext  =  '缺料比率'.
  ls_fcat-outputlen 10.
  "ls_fcat-decimals = 3.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'SALENO'.
  ls_fcat-coltext  =  '销售订单号'.
  ls_fcat-outputlen 10.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'YEARPERIOD'.
  ls_fcat-coltext  =  '年份'.
  ls_fcat-outputlen 4.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'MONTHPERIOD'.
  ls_fcat-coltext  =  '月份'.
  ls_fcat-outputlen 2.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D1'.
  ls_fcat-coltext  =  '1号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D2'.
  ls_fcat-coltext  =  '2号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D3'.
  ls_fcat-coltext  =  '3号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D4'.
  ls_fcat-coltext  =  '4号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D5'.
  ls_fcat-coltext  =  '5号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D6'.
  ls_fcat-coltext  =  '6号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D7'.
  ls_fcat-coltext  =  '7号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.
  ls_fcat-fieldname  =  'D8'.
  ls_fcat-coltext  =  '8号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D9'.
  ls_fcat-coltext  =  '9号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D10'.
  ls_fcat-coltext  =  '10号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D11'.
  ls_fcat-coltext  =  '11号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D12'.
  ls_fcat-coltext  =  '12号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D13'.
  ls_fcat-coltext  =  '13号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D14'.
  ls_fcat-coltext  =  '14号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D15'.
  ls_fcat-coltext  =  '15号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D16'.
  ls_fcat-coltext  =  '16号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D17'.
  ls_fcat-coltext  =  '17号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D18'.
  ls_fcat-coltext  =  '18号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D19'.
  ls_fcat-coltext  =  '19号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D20'.
  ls_fcat-coltext  =  '20号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D21'.
  ls_fcat-coltext  =  '21号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D22'.
  ls_fcat-coltext  =  '22号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D23'.
  ls_fcat-coltext  =  '23号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D24'.
  ls_fcat-coltext  =  '24号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D25'.
  ls_fcat-coltext  =  '25号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D26'.
  ls_fcat-coltext  =  '26号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D27'.
  ls_fcat-coltext  =  '27号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D28'.
  ls_fcat-coltext  =  '28号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D29'.
  ls_fcat-coltext  =  '29号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D30'.
  ls_fcat-coltext  =  '30号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'D31'.
  ls_fcat-coltext  =  '31号'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.

  ls_fcat-fieldname  =  'TOTALQTY'.
  ls_fcat-coltext  =  '总计'.
  ls_fcat-outputlen 6.
  ls_fcat-edit 'X'.
  APPEND ls_fcat TO gt_fcat.
  CLEAR ls_fcat.
ENDFORM.                    "alvdata



zppt009_coredel.包括代码

*&---------------------------------------------------------------------*
*&  包括                ZPPT009_COREDEL
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS '009'.
  SET TITLEBAR 'T009'.
ENDMODULE.                    "status_0100 OUTPUT

*----------------------------------------------------------------------*
*  MODULE user_command_0100 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  save_ok =  ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN '&BACK' OR '&EXIT' OR '&CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN 'ZGET'.
      PERFORM getdata.
    WHEN 'ZSAVE'.
      CALL METHOD alv_grid->check_changed_data."单元格数据改变后直接点保存按钮判断数据是否更改
      PERFORM savedata.
    WHEN 'ZDEL'.
      PERFORM deldata.
  ENDCASE.
ENDMODULE.                    "user_command_0100 INPUT

*&---------------------------------------------------------------------*
*&      Form  savedata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM savedata.
  DATATYPE i.
  DATAs_proschno TYPE zppt009-proschno.
  DATAs_werks TYPE zppt009-werkss_mess(20TYPE c.
  DESCRIBE TABLE itab LINES c.
  IF 0.
    LOOP AT itab.
      IF itab-werks IS INITIAL.
        MESSAGE '请输入工厂' TYPE 'E'.
        EXIT.
      ENDIF.
      IF itab-assline IS INITIAL.
        MESSAGE '请输入拉号' TYPE 'E'.
        EXIT.
      ENDIF.
      IF itab-aufnr IS INITIAL.
        MESSAGE '请输入工单号' TYPE 'E'.
        EXIT.
      ENDIF.
      IF itab-yearperiod IS INITIAL.
        MESSAGE '请输入年份' TYPE 'E'.
        EXIT.
      ENDIF.
      IF itab-monthperiod IS INITIAL.
        MESSAGE '请输入月份' TYPE 'E'.
        EXIT.
      ENDIF.
      SELECT SINGLE werks INTO s_werks FROM zppt009 WHERE werks itab-werks AND aufnr itab-aufnr AND assline itab-assline AND yearperiod itab-yearperiod AND monthperiod itab-monthperiod.
      IF s_werks IS INITIAL.
        s_proschno itab-proschno.
        IF s_proschno IS INITIAL OR s_proschno ''.
          CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'
            EXPORTING
              object           'ZSERIALNO'
            EXCEPTIONS
              foreign_lock     1
              object_not_found 2
              system_failure   3
              OTHERS           4.

          CALL FUNCTION 'NUMBER_GET_NEXT'
            EXPORTING
              nr_range_nr             '00'
              object                  'ZSERIALNO'
              ignore_buffer           'X'
            IMPORTING
              number                  s_proschno
            EXCEPTIONS
              interval_not_found      1
              number_range_not_intern 2
              object_not_found        3
              quantity_is_0           4
              quantity_is_not_1       5
              interval_overflow       6
              buffer_overflow         7
              OTHERS                  8.

          CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'
            EXPORTING
              object 'ZSERIALNO'.
          SHIFT s_proschno  LEFT DELETING LEADING '0'.
          itab-proschno s_proschno .
          MODIFY itab.
        ENDIF.
      ELSE.
*        DATA: s_mess1(40) TYPE c.
*        s_mess1 = ''.
*        CONCATENATE '工厂' itab-werks '拉号' itab-assline '已经在' itab-yearperiod '年' itab-monthperiod '月排了工单'   itab-aufnr INTO s_mess1.
*        MESSAGE s_mess1 TYPE 'I'.
        EXIT.
      ENDIF.
      itab-xcts itab-jhscrq itab-qlrq.
      itab-qlbl itab-gdqlsl / itab-gdxqsl.
      DATAs_saleno TYPE vbak-vbeln.
      s_saleno ''.
      SELECT SINGLE kdauf INTO s_saleno FROM afpo WHERE aufnr itab-aufnr.
      itab-saleno s_saleno.
      itab-totalqty itab-d1 + itab-d2 + itab-d3 + itab-d4 + itab-d5 + itab-d6 + itab-d7 + itab-d8 + itab-d9 + itab-d10 + itab-d11 + itab-d12 + itab-d13 + itab-d14 + itab-d15 + itab-d16 + itab-d17 + itab-d18 + itab-d19 + itab-d20
      + itab-d21 + itab-d22 + itab-d23 + itab-d24 + itab-d25 + itab-d26 + itab-d27 + itab-d28 + itab-d29 + itab-d30 + itab-d31.
      MODIFY itab.
    ENDLOOP.
    SORT itab BY werks assline aufnr.
    DELETE ADJACENT DUPLICATES FROM itab COMPARING werks aufnr assline yearperiod monthperiod.
    MODIFY zppt009 FROM TABLE itab.
    IF sy-subrc 0.
      MESSAGE'保存成功' TYPE 'I'.
    ELSE.
      MESSAGE:'保存失败' TYPE 'E'.
    ENDIF.
  ENDIF.

ENDFORM.                    "savedata

*&---------------------------------------------------------------------*
*&      Form  deldata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM deldata.
  DATATYPE i.
  a 0.
  LOOP AT itab WHERE che EQ 'X'.
    a a + 1.
  ENDLOOP.
  IF 0.
    MESSAGE:'请选择需要删除的行项目' TYPE 'E'.
  ELSE.

    DATA:  wl_answer  TYPE c.
    CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
        text_question         '确定要删除选择的行项目吗?'
        icon_button_1         '确定' "是
        icon_button_2         '不确定'"否
        default_button        '2'
        display_cancel_button 'X'
        start_column          25
        start_row             6
      IMPORTING
        answer                wl_answer
      EXCEPTIONS
        text_not_found        1
        OTHERS                2.
    CASE wl_answer.
      WHEN '1'.
        DELETE itab WHERE che <> 'X'.
        DELETE zppt009 FROM TABLE itab.
        PERFORM getdata.
      WHEN '2'.
        LEAVE TO SCREEN 0.
      WHEN OTHERS.
    ENDCASE.
  ENDIF.
ENDFORM.                    "deldata
*----------------------------------------------------------------------*
*  MODULE displayalv OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE displayalv OUTPUT.

  IF custom_container IS INITIAL.
    CREATE OBJECT custom_container
    EXPORTING
      container_name container.
  ENDIF.

  IF alv_grid IS INITIAL.
    CREATE OBJECT alv_grid
    EXPORTING
      i_parent custom_container.
  ENDIF.

*       if g_alv_application is INITIAL.
*         CREATE OBJECT g_alv_application.
*         ENDIF.


  CLEAR gs_layout.
  ls_layout-report sy-repid.
  gs_layout-sel_mode 'C'.
  gs_layout-box_fname 'CHE'.
  gs_layout-zebra 'X'.

  PERFORM alvdata.

  CALL METHOD alv_grid->set_table_for_first_display
    EXPORTING
      is_layout            gs_layout
      it_toolbar_excluding gt_exclude
      i_save               'A'
    CHANGING
      it_outtab            itab[]
      it_fieldcatalog      gt_fcat[].

  CALL METHOD alv_grid->register_edit_event
    EXPORTING
      i_event_id cl_gui_alv_grid=>mc_evt_modified."修改单元格之后按回车或者执行其他操作时触发事件,此类型可用于多个单元格修改后一起检查修改的值
ENDMODULE.                    "displayalv OUTPUT

*&---------------------------------------------------------------------*
*&      Form  handle_data_changed
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_ER_DATA_CHANGED  text
*----------------------------------------------------------------------*
FORM handle_data_changed USING p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol.
  DATA:mod_data TYPE lvc_t_modi,
        wa_mod_data TYPE lvc_s_modi.
  mod_data p_er_data_changed->mt_mod_cells.
ENDFORM.                    "handle_data_changed



逻辑流如下:

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  MODULE displayalv.
  CALL SUBSCREEN scr01 INCLUDING sy-repid '9999'.

PROCESS AFTER INPUT.
  CALL SUBSCREEN scr01.
  MODULE user_command_0100.



屏幕设计如下:


子屏幕1名称为SCR01                       三个按钮分别为ZGET, ZSAVE, ZDEL

定制控制名为ZSR2




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值