OO ALV 使用TOP-OF-PAGE

35 篇文章 1 订阅

1、定义

 

DATA: GO_DOCKING_C TYPE REF TO CL_GUI_DOCKING_CONTAINER,  "屏幕docking
      GO_SPLITTER  TYPE REF TO CL_GUI_SPLITTER_CONTAINER,   "屏幕分割
      GO_TOP_C     TYPE REF TO CL_GUI_CONTAINER,   "TOP OF PAGE 容器
      GO_ALV_C     TYPE REF TO CL_GUI_CONTAINER,   "ALV 容器
      GO_FOOT_C    TYPE REF TO CL_GUI_CONTAINER,   "页脚
      GO_ALV_100   TYPE REF TO CL_GUI_ALV_GRID.      "ALV控件

DATA: GO_DYNDOC_ID  TYPE REF TO CL_DD_DOCUMENT,  "文档
      GO_HTML_CNTRL TYPE REF TO CL_GUI_HTML_VIEWER. "HTML CONTRL PROXY CLASS

2、CLASS 定义

CLASS LCL_ALV_EVENT_HANDLER DEFINITION.

  PUBLIC SECTION.

    METHODS: TOP_OF_PAGE  FOR EVENT TOP_OF_PAGE OF CL_GUI_ALV_GRID

      IMPORTING E_DYNDOC_ID.
ENDCLASS.

 3、CLASS 实施

CLASS LCL_ALV_EVENT_HANDLER IMPLEMENTATION.

  METHOD TOP_OF_PAGE.

    PERFORM TOP_OF_PAGE USING E_DYNDOC_ID.

  ENDMETHOD.
ENDCLASS.

DATA:GO_EVEN_100 TYPE REF TO LCL_ALV_EVENT_HANDLER.

 4、 展示

  IF GO_SPLITTER IS INITIAL .
    CREATE OBJECT GO_SPLITTER
      EXPORTING
        PARENT  = CL_GUI_CONTAINER=>SCREEN0
        ROWS    = 2
        COLUMNS = 1.
    CALL METHOD GO_SPLITTER->GET_CONTAINER
      EXPORTING
        ROW       = 1
        COLUMN    = 1
      RECEIVING
        CONTAINER = GO_TOP_C.
    CALL METHOD GO_SPLITTER->GET_CONTAINER
      EXPORTING
        ROW       = 2
        COLUMN    = 1
      RECEIVING
        CONTAINER = GO_ALV_C.
  ENDIF.
  CALL METHOD GO_SPLITTER->SET_ROW_HEIGHT
    EXPORTING
      ID     = 1
      HEIGHT = 10.

  IF GO_ALV_100 IS INITIAL.
    CREATE OBJECT GO_ALV_100
      EXPORTING
        I_PARENT = GO_ALV_C.
  ENDIF.
  IF GO_DYNDOC_ID_T IS INITIAL.
    CREATE OBJECT GO_DYNDOC_ID_T
      EXPORTING
        STYLE = 'ALV_GRID'.
  ENDIF.

      4-4、注册事件

  CREATE OBJECT GO_EVEN_100.
  SET HANDLER GO_EVEN_100->TOP_OF_PAGE FOR GO_ALV_100.

    4-5、调用方法,显示ALV

CALL METHOD GO_ALV_100->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_VARIANT                    = PS_VARIANT
      I_SAVE                        = 'A'
      IS_LAYOUT                     = PS_LAYOUT
      IT_TOOLBAR_EXCLUDING          = PT_EXCE[]
    CHANGING
      IT_OUTTAB                     = GT_ALV
      IT_FIELDCATALOG               = PT_FIELDCAT[]
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.

    4-6、初始化

    

  CALL METHOD GO_DYNDOC_ID->INITIALIZE_DOCUMENT
    EXPORTING
      BACKGROUND_COLOR = CL_DD_AREA=>COL_TEXTAREA.

     4-7、process event

  CALL METHOD GO_ALV_100->LIST_PROCESSING_EVENTS
    EXPORTING
      I_EVENT_NAME = 'TOP_OF_PAGE'
      I_DYNDOC_ID  = GO_DYNDOC_ID.

    5、FORM

 

FORM TOP_OF_PAGE  USING  DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
  DATA:DL_TEXT(255) TYPE C .
* 文本
  CLEAR DL_TEXT.
  CALL METHOD DG_DYNDOC_ID->ADD_TEXT
    EXPORTING
      TEXT         = 'TOP OF PAGE'
      SAP_STYLE    = CL_DD_AREA=>HEADING
      SAP_FONTSIZE = CL_DD_AREA=>LARGE
      SAP_COLOR    = CL_DD_AREA=>LIST_HEADING_INT.
* 换行
  CALL METHOD DG_DYNDOC_ID->NEW_LINE.
* 空格
  CALL METHOD DG_DYNDOC_ID->ADD_GAP.

  IF GO_HTML_CNTRL IS INITIAL.
    CREATE OBJECT GO_HTML_CNTRL
      EXPORTING
        PARENT = GO_TOP_C.
  ENDIF.

  CALL METHOD GO_DYNDOC_ID->MERGE_DOCUMENT.
  GO_DYNDOC_ID->HTML_CONTROL = GO_HTML_CNTRL.
  CALL METHOD GO_DYNDOC_ID->DISPLAY_DOCUMENT
    EXPORTING
      REUSE_CONTROL      = 'X'
      PARENT             = GO_TOP_C
    EXCEPTIONS
      HTML_DISPLAY_ERROR = 1.
ENDFORM.

     

 

 

               

      

           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值