效果图:

ALV demo 09:cl_salv_table ALV 弹出框_java


*&---------------------------------------------------------------------*
*& Report  ZLM_ALV005
*&  Sapliumeng   SAP干货铺 demo程序
*&---------------------------------------------------------------------*

REPORT ZLM_ALV008.

"参数定义
DATAGO_ALV    TYPE REF TO CL_SALV_TABLE,
      GO_FUNLST TYPE REF TO CL_SALV_FUNCTIONS_LIST.
DATAGT_DATA TYPE STANDARD TABLE OF SPFLI.
DATALO_CXROOT TYPE REF TO CX_ROOT,
      LV_EXCMSG TYPE        STRING.


START-OF-SELECTION.

"获取数据
SELECT FROM SPFLI INTO TABLE GT_DATA .

"创建 ALV 对象实例
TRY.
    CL_SALV_TABLE=>FACTORY(
      IMPORTING
        R_SALV_TABLE GO_ALV
      CHANGING
        T_TABLE      GT_DATA[] ).
  CATCH  CX_ROOT INTO LO_CXROOT.
    LV_EXCMSG LO_CXROOT->GET_TEXT).
    MESSAGE E000(OOWITH LV_EXCMSG.
ENDTRY.

GO_FUNLST GO_ALV->GET_FUNCTIONS).
GO_FUNLST->SET_ALL'X' ).


"设定弹出框位置及大小
IF GO_ALV IS BOUND.
  GO_ALV->SET_SCREEN_POPUP(
    START_COLUMN 10
    END_COLUMN  110
    START_LINE  5
    END_LINE    15 ).

  GO_ALV->DISPLAY).
ENDIF.


基于 CL_SALV_TABLE

的ALV demo到现在先告于段落了。 


后面抽时间写一个更复杂的使用 CL_SALV_TABLE 的demo。

这种方式其实项目里用的也不是很多。