Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404636
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2008-10-16 14:29:27

REPORT Z_ALV_CONTEXT_MENU NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS.

DATA: BEGIN OF GT_OUTTAB OCCURS 0.
        INCLUDE STRUCTURE SFLIGHT.
DATA: END OF GT_OUTTAB.
DATA: GT_EVENTS       TYPE SLIS_T_EVENT.

DATA: G_REPID         LIKE SY-REPID,
      EVENT           TYPE SLIS_ALV_EVENT.

START-OF-SELECTION.

  G_REPID = SY-REPID. 
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE     = 4
    IMPORTING
      ET_EVENTS       = GT_EVENTS
    EXCEPTIONS
      LIST_TYPE_WRONG = 1
      OTHERS          = 2.
  IF SY-SUBRC = 0.
    REFRESH GT_EVENTS. 
    EVENT-NAME = 'CONTEXT_MENU'.
    EVENT-FORM = 'CONTEXT_MENU'.
    APPEND EVENT TO GT_EVENTS.
  ENDIF.

  SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE GT_OUTTAB UP TO 30 ROWS.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
      I_CALLBACK_PROGRAM          = G_REPID
      I_CALLBACK_USER_COMMAND     = 'USER_COMMAND'
      I_STRUCTURE_NAME            = 'SFLIGHT'
      IT_EVENTS                   = GT_EVENTS
    TABLES
      T_OUTTAB                    = GT_OUTTAB
    EXCEPTIONS
      PROGRAM_ERROR               = 1
      OTHERS                      = 2.
***********************************************************************
* FORM html_top_of_page
***********************************************************************
FORM HTML_TOP_OF_PAGE USING TOP TYPE REF TO CL_DD_DOCUMENT.
  CALL METHOD TOP->ADD_TEXT
    EXPORTING
      TEXT      = 'Hello world '
      SAP_STYLE = 'heading'.
  CALL METHOD TOP->ADD_GAP
    EXPORTING
      WIDTH = 100.
  CALL METHOD TOP->ADD_PICTURE
    EXPORTING
      PICTURE_ID = 'ENJOYSAP_LOGO'.
ENDFORM.                    "html_top_of_page
***********************************************************************
* Form  context_menu
***********************************************************************
FORM CONTEXT_MENU USING E_OBJECT TYPE REF TO CL_CTMENU.
  DATA: L_SMENU TYPE REF TO CL_CTMENU.
  IF E_OBJECT IS BOUND.
 
    CREATE OBJECT L_SMENU.
    CALL METHOD L_SMENU->ADD_FUNCTION
      EXPORTING
        FCODE = 'HIDE'
        TEXT  = 'Hide Column'.
    CALL METHOD E_OBJECT->ADD_SUBMENU
      EXPORTING
        MENU = L_SMENU
        TEXT = 'Hide'.
  ENDIF.
ENDFORM.                    "CONTEXT_MENU
***********************************************************************
* Form  user_command
***********************************************************************
FORM USER_COMMAND  USING R_UCOMM TYPE SY-UCOMM
                         LS_SELFIELD TYPE SLIS_SELFIELD.

  DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID,
        T_CATALOG TYPE LVC_T_FCAT,
        W_CATALOG TYPE LVC_S_FCAT,
        L_REPID  TYPE SY-REPID.
  CASE R_UCOMM.

    WHEN 'HIDE'.
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
        IMPORTING
          E_CALLBACK_PROGRAM = L_REPID
          E_GRID             = G_GRID
          ET_FIELDCAT_LVC    = T_CATALOG.
      CHECK L_REPID = G_REPID.
      IF G_GRID IS BOUND AND T_CATALOG[] IS NOT INITIAL.
 
        W_CATALOG-NO_OUT = 'X'. 
        MODIFY T_CATALOG FROM W_CATALOG TRANSPORTING NO_OUT WHERE FIELDNAME = LS_SELFIELD-FIELDNAME.
        IF SY-SUBRC = 0. 
          CALL METHOD G_GRID->SET_FRONTEND_FIELDCATALOG
            EXPORTING
              IT_FIELDCATALOG = T_CATALOG.
        ENDIF.
      ENDIF.
  ENDCASE.
  LS_SELFIELD-REFRESH = 'X'.
ENDFORM.                    "USER_COMMAND
阅读(2038) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~