ALV demo:cl_salv_table&nbs…

效果图:
ALV <wbr>demo:cl_salv_table <wbr>(ICONs <wbr>and <wbr>Tooltips)


code:

*&---------------------------------------------------------------------*
*& Report  ZLM_ALV_010
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZLM_ALV_010 .
CLASS lcl_main  DEFINITION .
    PUBLIC  SECTION .
        DATA o_salv  TYPE  REF  TO cl_salv_table  .
        TYPES :
            BEGIN  OF ty_output ,
                status  TYPE char10 ,
                field1  TYPE char30 ,
            END    OF ty_output .
        DATA : t_output  TYPE  STANDARD  TABLE  OF ty_output .
        METHODS :
            select_data ,
            generate_alv .
ENDCLASS .                     "lcl_main DEFINITION
*
START-OF-SELECTION .
    DATA : o_main  TYPE  REF  TO lcl_main .
    CREATE OBJECT  o_main .
    o_main ->select_data (  ) .
    o_main ->generate_alv (  ) .
*
CLASS lcl_main  IMPLEMENTATION .
    METHOD select_data .
        INCLUDE :  .
        DATA : ls_output  LIKE  LINE  OF t_output .
        DO  TIMES .
            ls_output -status  icon_green_light .
            ls_output -field1  sy -uname .
            APPEND ls_output  TO t_output .
            ls_output -status  icon_yellow_light .
            APPEND ls_output  TO t_output .
            ls_output -status  icon_red_light .
            APPEND ls_output  TO t_output .
            ls_output -status  icon_led_green .
            APPEND ls_output  TO t_output .
            ls_output -status  icon_led_red .
            APPEND ls_output  TO t_output .
            ls_output -status   icon_led_yellow .
            APPEND ls_output  TO t_output .
        ENDDO .
    ENDMETHOD .                     "select_Data
    METHOD generate_alv .
        DATA : lo_functions                        TYPE  REF  TO cl_salv_functions_list .
        DATA : lo_functional_settings    TYPE  REF  TO cl_salv_functional_settings .
        DATA : lo_tooltips                          TYPE  REF  TO cl_salv_tooltips ,
                    lv_value                                TYPE lvc_value .
        DATA : lo_columns                            TYPE  REF  TO cl_salv_columns .
        DATA : lo_column                              TYPE  REF  TO cl_salv_column_table .

        INCLUDE :  .
*
ALV Object
        TRY .
                cl_salv_table =>factory (
                    IMPORTING
                        r_salv_table  o_salv
                    CHANGING
                        t_table            t_output  ) .
            CATCH cx_salv_msg .                                 "#EC NO_HANDLER
        ENDTRY .

Functions
        lo_functions  o_salv ->get_functions (  ) .
        lo_functions ->set_all ( abap_true  ) .

*... set the columns
        lo_columns  o_salv ->get_columns (  ) .
        "lo_columns->set_optimize( abap_true ).
        TRY .
                lo_column  ?=  lo_columns ->get_column (  'STATUS'  ) .
                lo_column ->set_icon ( if_salv_c_bool_sap =>true  ) .
                lo_column ->set_long_text (  'Hover for Tooltip'  ) .
                lo_column ->set_alignment ( if_salv_c_alignment => centered  ) .
                lo_column ->set_output_length (  20  ) .
            CATCH cx_salv_not_found .                           "#EC NO_HANDLER
        ENDTRY .


*...Tooltips
        lo_functional_settings  o_salv ->get_functional_settings (  ) .
        lo_tooltips  lo_functional_settings ->get_tooltips (  ) .
        TRY .
                lv_value  icon_green_light .
                lo_tooltips ->add_tooltip (
                    TYPE    cl_salv_tooltip =>c_type_icon
                    VALUE   lv_value
                    tooltip  'Everything is Processed'  ) .             "#EC NOTEXT
            CATCH cx_salv_existing .                            "#EC NO_HANDLER
        ENDTRY .
        TRY .
                lv_value  icon_yellow_light .
                lo_tooltips ->add_tooltip (
                    TYPE    cl_salv_tooltip =>c_type_icon
                    VALUE   lv_value
                    tooltip  'Partially processed'  ) .                 "#EC NOTEXT
            CATCH cx_salv_existing .                            "#EC NO_HANDLER
        ENDTRY .
        TRY .
                lv_value  icon_red_light .
                lo_tooltips ->add_tooltip (
                    TYPE    cl_salv_tooltip =>c_type_icon
                    VALUE   lv_value
                    tooltip  'Nothing Yet processed'  ) .               "#EC NOTEXT
            CATCH cx_salv_existing .                            "#EC NO_HANDLER
        ENDTRY .

*... display the table
        o_salv ->display (  ) .

    ENDMETHOD .                     "generate_alv

ENDCLASS .                     "lcl_main IMPLEMENTATION
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值