Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7189281
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2008-10-29 10:07:03

*&---------------------------------------------------------------------*
*& Report  Z_BARRY_ALV_GRID_EVENT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_barry_alv_grid_event.

DATA: itab TYPE TABLE OF sflight .
DATA: ok_code LIKE sy-ucomm .
DATA: go_grid             TYPE REF TO cl_gui_alv_grid,
      go_custom_container TYPE REF TO cl_gui_custom_container.

CLASS lcl_event_receiver DEFINITION DEFERRED .
DATA: event_receiver TYPE REF TO lcl_event_receiver.

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS catch_doubleclick
    FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row
              e_column
              es_row_no .
ENDCLASS.                    "lcl_event_receiver DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD catch_doubleclick.
    CALL METHOD cl_gui_cfw=>set_new_ok_code
      EXPORTING
        new_code = 'BACK'.
    CALL METHOD cl_gui_cfw=>flush.

  ENDMETHOD.                    "catch_doubleclick
ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION

START-OF-SELECTION.
  CALL SCREEN 0100 .

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN100'.
  IF go_grid IS INITIAL.
    CREATE OBJECT go_grid
      EXPORTING
        i_parent = cl_gui_container=>screen0.

    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->catch_doubleclick FOR go_grid.

    SELECT * FROM sflight INTO TABLE itab UP TO 10 ROWS.

    CALL METHOD go_grid->set_table_for_first_display
      EXPORTING
        i_structure_name = 'SFLIGHT'
      CHANGING
        it_outtab        = itab.
  ENDIF.
ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'BACK'.
      LEAVE PROGRAM.
  ENDCASE.
  CLEAR ok_code .
ENDMODULE.                 " USER_COMMAND_0100  INPUT

 

另注:CL_GUI_ALV_GRID的SET_REGISTERED_EVENTS方法系统没有实现,不让使用

阅读(9082) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-03-30 22:11:31

请教一下,白老师: 就是,OO ALV的工具栏是包含在CONTAINER里面的。而系统又给DIALOG程序默认了一个应用工具栏的位置。有没有什么办法把OO ALV的工具栏弄到应用工具栏的位置上呢?或者,不显示应用工具栏那个位置也行。