SAP SALV08 设置SALV行列单元格的颜色属性

1.效果

  • 演示效果
    1

2.实现

  • 代码
    CLASS lcl_report DEFINITION.
      PUBLIC SECTION.
        TYPES: BEGIN OF ty_sflight,
                 carrid   TYPE sflight-carrid,
                 connid   TYPE sflight-connid,
                 fldate   TYPE sflight-fldate,
                 price    TYPE sflight-price,
                 currency TYPE sflight-currency,
                 t_color  TYPE lvc_t_scol,
               END OF ty_sflight.
    
        TYPES: ty_t_sflight TYPE TABLE OF ty_sflight WITH DEFAULT KEY.
    
        DATA: lt_sflight TYPE TABLE OF ty_sflight.
        DATA: o_salv TYPE REF TO cl_salv_table.
    
        METHODS: get_data.              "定义获取数据方法
        METHODS: salv_output.           "定义SALV输出方法
    
      PRIVATE SECTION.
        METHODS: set_pf_status          "定义设置SALV状态栏的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_layout             "定义设置SALV layout的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_top_of_page        "定义设置SALV 页头文本的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_end_of_page        "定义设置SALV 页尾文本的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_display_setting    "定义设置SALV GUI抬头文本的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_columns            "定义设置SALV 表列属性的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: set_hotspot            "定义设置SALV Hotspot的方法
          CHANGING co_alv TYPE REF TO cl_salv_table.
    
        METHODS: on_link_click          "定义设置SALV link单击事件的方法
          FOR EVENT link_click OF cl_salv_events_table
          IMPORTING row
                    column.
    
        METHODS: set_colors             "定义设置SALV 颜色属性的方法
          CHANGING co_alv     TYPE REF TO cl_salv_table
                   ct_sflight TYPE ty_t_sflight.
    ENDCLASS.
    
    CLASS lcl_report IMPLEMENTATION.
      METHOD get_data.
        SELECT carrid connid fldate price currency
        FROM sflight
        INTO CORRESPONDING FIELDS OF TABLE lt_sflight
        UP TO 50 ROWS.
      ENDMETHOD.
    
      METHOD salv_output.
        DATA: lx_msg TYPE REF TO cx_salv_msg.
    
        TRY.
            cl_salv_table=>factory(
            IMPORTING
              r_salv_table = o_salv
            CHANGING
              t_table = lt_sflight ).
          CATCH cx_salv_msg INTO lx_msg.
        ENDTRY.
    
        "call method set PF-Status
        CALL METHOD set_pf_status
          CHANGING
            co_alv = o_salv.
    
        "call method set Layout
        CALL METHOD set_layout
          CHANGING
            co_alv = o_salv.
    
        "call method set top-of-page
        CALL METHOD me->set_top_of_page
          CHANGING
            co_alv = o_salv.
    
        "call method set end-of-page
        CALL METHOD me->set_end_of_page
          CHANGING
            co_alv = o_salv.
    
        "call method set Disply_setting
        CALL METHOD set_display_setting
          CHANGING
            co_alv = o_salv.
    
        "call method set Columns
        CALL METHOD me->set_columns
          CHANGING
            co_alv = o_salv.
    
        "call method Set Hotspot
        CALL METHOD set_hotspot
          CHANGING
            co_alv = o_salv.
    
        "call method Set color
        CALL METHOD set_colors
          CHANGING
            co_alv     = o_salv
            ct_sflight = lt_sflight.
    
        "注册事件
        DATA: lo_events TYPE REF TO cl_salv_events_table.
    
        lo_events = o_salv->get_event( ).                             "获取事件对象
        SET HANDLER me->on_link_click FOR l
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值