欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

简单的ALV显示例子

废话不多说,直接上傻瓜代码。归根结底,就是要将显示的字段一行一行的放入fieldcat的表里。

"定义ALV数据变量
DATA:
  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
  WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
  WA_LAYOUT   TYPE SLIS_LAYOUT_ALV.
"定义ALV结构字段,使用宏的方式
DATA: POS TYPE I.
DEFINE ADD1.
  CLEAR wa_fieldcat.
  ADD 1 TO POS.
  WA_FIELDCAT-FIELDNAME = &1. "字段名称
  WA_FIELDCAT-TABNAME = &2. "字段所在的表
  WA_FIELDCAT-SELTEXT_M = &3."字段描述
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
END-OF-DEFINITION.
"透明表取数
SELECT AUFNR, AUART, ERNAM INTO TABLE @DATA(AUFK_TAB) FROM AUFK UP TO 10 ROWS.
CLEAR:WA_FIELDCAT,IT_FIELDCAT,WA_LAYOUT.
"增加显示字段
ADD1 'AUFNR' 'AUFK_TAB' '销售订单'.
ADD1 'AUART' 'AUFK_TAB' '销售类型'.
ADD1 'ERNAM' 'AUFK_TAB' '创建者'.
"ALV格式控制
WA_LAYOUT-ZEBRA                = 'X'.    "呈现颜色交替
WA_LAYOUT-COLWIDTH_OPTIMIZE    = 'X'.    "优化列宽选项是否设置
"调用ALV显示函数
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT          = WA_LAYOUT
    IT_FIELDCAT        = IT_FIELDCAT
  TABLES
    T_OUTTAB           = AUFK_TAB
  EXCEPTIONS
    PROGRAM_ERROR      = 1
    OTHERS             = 2.
IF SY-SUBRC <> 0.
ENDIF.

显示效果:

 

 

其中宏的一部分也可变成慢慢的将工作区加入进fieldcat表,见下一篇例子。

posted @ 2019-06-14 17:32  萧静默  阅读(597)  评论(0编辑  收藏  举报