ALV OO相关学习

一个简单的学习例子(基于screen的alv)













执行按钮后

点击左上角的修改按钮



偷了个小懒,没有根据模块池的方式做。

REPORT  Z_TEST_STL002.

TABLES T001.

SELECT-OPTIONS S_BUKRS FOR t001-BUKRS.
SELECT-OPTIONS S_ORT01 FOR t001-ORT01.

DATA:OK_CODE TYPE SY-UCOMM,
     SAVE_OK TYPE SY-UCOMM,
     G_C_CTR TYPE SCRFNAME VALUE 'ALV_GRID_OO_CTRL',
     G_GRID             TYPE REF TO CL_GUI_ALV_GRID,
     G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
     GS_LAYOUT          TYPE LVC_S_LAYO.
DATA GT_T001 TYPE TABLE OF T001.

START-OF-SELECTION.
call SCREEN 0100.




*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.

  SET PF-STATUS 'ST001'.
  SET TITLEBAR 'TT001'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  INIT_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE INIT_0100 OUTPUT.

  IF G_CUSTOM_CONTAINER IS INITIAL.
    CREATE OBJECT G_CUSTOM_CONTAINER
           EXPORTING CONTAINER_NAME G_C_CTR.
    CREATE OBJECT G_GRID
           EXPORTING I_PARENT G_CUSTOM_CONTAINER.
    GS_LAYOUT-EDIT 'X'.
    SELECT *
      FROM T001
      INTO TABLE GT_T001
     WHERE BUKRS IN S_BUKRS
       AND ORT01 IN S_ORT01.

设置初期显示数据
     CALL  METHOD G_GRID ->SET_TABLE_FOR_FIRST_DISPLAY
          EXPORTING I_STRUCTURE_NAME  'T001'
                   IS_LAYOUT         GS_LAYOUT
          CHANGING  IT_OUTTAB         GT_T001 .

初始默认可编辑状态
     CALL  METHOD G_GRID ->SET_READY_FOR_INPUT
           EXPORTING I_READY_FOR_INPUT  1 .
   ENDIF .

ENDMODULE .                  " INIT_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100  INPUT .
  SAVE_OK  OK_CODE .
   CLEAR OK_CODE .
   CASE SAVE_OK .
     WHEN  'EXIT' .
       LEAVE  PROGRAM .
     WHEN  'SWITCH' .
       PERFORM SWITCH_EDIT_MODE .
     WHEN  OTHERS .
*     do nothing
   ENDCASE .
ENDMODULE .                  " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  SWITCH_EDIT_MODE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SWITCH_EDIT_MODE  .

   IF G_GRID ->IS_READY_FOR_INPUT EQ  0 .

可编辑状态
     CALL  METHOD G_GRID ->SET_READY_FOR_INPUT
                      EXPORTING I_READY_FOR_INPUT  1 .
   ELSE .

不可编辑状态
     CALL  METHOD G_GRID ->SET_READY_FOR_INPUT
                      EXPORTING I_READY_FOR_INPUT  0 .
   ENDIF .
ENDFORM .                     " SWITCH_EDIT_MODE








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值