• 简单的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表,见下一篇例子。

  • 相关阅读:
    86. 分隔链表
    85. 最大矩形
    84. 柱状图中最大的矩形
    82. 删除排序链表中的重复元素 II
    80. 删除排序数组中的重复项 II
    77. 组合
    java-xml
    java-反射
    springboot解决跨域问题(CorsConfig )
    解决oracle锁表
  • 原文地址:https://www.cnblogs.com/BruceKing/p/11024526.html
Copyright © 2020-2023  润新知