POP ALV DEMO

REPORT ZII_RKP_TEST.

DATA:
  BEGIN OF ls_data,
    modtext TYPE modtext_d,
  END OF ls_data,
  lt_data LIKE TABLE OF ls_data.

CLASS cl_event_handler DEFINITION.

  PUBLIC SECTION.

    CLASS-DATA:
      lo_popup TYPE REF TO cl_salv_table.

    CLASS-METHODS on_function_click
      FOR EVENT if_salv_events_functions~added_function
        OF cl_salv_events_table IMPORTING e_salv_function.
ENDCLASS.

CLASS cl_event_handler IMPLEMENTATION.

  METHOD on_function_click.

    CASE e_salv_function.
      WHEN 'GOON'.
        lo_popup->close_screen( ).
*       do action
      WHEN 'ABR'.
        lo_popup->close_screen( ).
*       cancel
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  PERFORM main.

FORM main.

  DATA:
    lo_popup     TYPE REF TO cl_salv_table,
    lo_events    TYPE REF TO cl_salv_events_table.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE lt_data
    FROM modsapt
    WHERE sprsl = 'EN'
      AND name LIKE 'S%'.

  TRY.
      CALL METHOD cl_salv_table=>factory
        IMPORTING
          r_salv_table = lo_popup
        CHANGING
          t_table      = lt_data.

*     register handler for actions
      lo_events = lo_popup->get_event( ).
      SET HANDLER cl_event_handler=>on_function_click FOR lo_events.
*     save reference to access object from handler
      cl_event_handler=>lo_popup = lo_popup.

*     use gui-status ST850 from program SAPLKKB
      lo_popup->set_screen_status( pfstatus      = 'ST850'
                                   report        = 'SAPLKKBL' ).

*     display as popup
      lo_popup->set_screen_popup( start_column = 1
                                  end_column   = 60
                                  start_line   = 1
                                  end_line     = 10 ).

      lo_popup->display( ).

    CATCH cx_salv_msg.
      WRITE: / 'Error: ALV exception CX_SALV_MSG'.
  ENDTRY.
ENDFORM.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值