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