弹出窗口的ALV

 

有哥们问弹出窗口的ALV如何做。
其实,ALV还是那个ALV,只不过容器变化了一下而已,如下例:

REPORT  z_barry_dialog_alv.

DATA:con_diabox TYPE REF TO cl_gui_dialogbox_container.
DATA: l_alv TYPE REF TO cl_gui_alv_grid ,
      lt_sflight TYPE TABLE OF sflight .
DATA: ok_code LIKE sy-ucomm.
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
   on_close FOR EVENT close OF cl_gui_dialogbox_container IMPORTING sender.
ENDCLASS.                    "lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
  METHOD on_close.
    CALL METHOD sender->free.
    FREE: con_diabox, l_alv.
  ENDMETHOD.                    "on_close
ENDCLASS.                    "lcl_event_handler IMPLEMENTATION

START-OF-SELECTION.
  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'M100'.

  SELECT * FROM sflight INTO TABLE lt_sflight.
  IF con_diabox IS INITIAL.
    CREATE OBJECT con_diabox
      EXPORTING
        width   = 600
        height  = 200
        top     = 70
        left    = 140
        caption = 'Title'
      EXCEPTIONS
        OTHERS  = 1.
    SET HANDLER lcl_event_handler=>on_close FOR con_diabox .

    CREATE OBJECT l_alv
      EXPORTING
        i_parent = con_diabox.
  ENDIF.
  CALL METHOD l_alv->set_table_for_first_display
    EXPORTING
      i_structure_name = 'SFLIGHT'
    CHANGING
      it_outtab        = lt_sflight.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'BACK'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值