SAP SALV05 给SALV设置GUI抬头文本

1.效果:

1

2.代码:

  • SE24->cl_salv_display_settings
    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,
               END OF ty_sflight.
    
        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.
    
    ENDCLASS.
    
    CLASS lcl_report IMPLEMENTATION.
      METHOD get_data.
        SELECT carrid connid fldate price currency
        FROM sflight
        INTO  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.
    
        o_salv->display( ).
      ENDMETHOD.
    
      METHOD set_pf_status.
        DATA: lo_functions TYPE REF TO cl_salv_functions_list.
    
    *    "设置默认状态栏
    *    lo_functions = co_alv->get_functions( ).       "获取状态栏对象
    *    lo_functions->set_default( abap_true ).        "设置默认的状态栏
    *    lo_functions->set_detail( abap_true ).         "激活查看细节按钮
    *    lo_functions->set_print( abap_true ).          "激活打印按钮
    *    "激活其他功能键请查看 SE24->CL_SALV_FUNCTIONS_LIST
    
        "设置自定义状态栏
        co_alv->set_screen_status(
        pfstatus = 'STANDARD_FULLSCREEN'
        report = sy-repid
        set_functions = co_alv->c_functions_all ).
    
      ENDMETHOD.
    
      METHOD set_layout.
        DATA: lo_layout TYPE REF TO cl_salv_layout,
              l_vari    TYPE slis_vari,
              ls_key    TYPE salv_s_layout_key.
    
        lo_layout = co_alv->get_layout( ).               "获取layout对象
        ls_key-report = sy-repid.                        "设置布局全局Key
        lo_layout->set_key( ls_key ).
        lo_layout->set_save_restriction( 3 ).            "删除保存布局的限制 Value 3 = IF_SALV_C_LAYOUT=>RESTRICT_NONE
    
        l_vari = '/Z001'.                                "默认使用布局:Z001 SAP默认:L_VARI = 'DEFAULT'.
        lo_layout->set_initial_layout( l_vari ).         "设置使用默认布局
      ENDMETHOD.
    
      METHOD set_top_of_page.
        DATA: lo_header TYPE REF TO cl_salv_form_layout_grid,
              lo_label  TYPE REF TO cl_salv_form_label,
              lo_flow   TYPE REF TO cl_salv_form_layout_flow.
    
        CREATE OBJECT lo_header.
    
        lo_label = lo_header->create_label( row = 1 column = 1 ).   "创建一个样式
        lo_label->set_text( '页头标题加粗文本:' ).
    
        lo_flow = lo_header->create_flow( row = 2  column = 1 ).
        lo_flow->create_text( text = '第一行文本:' tooltip = '提示文本' ).
    
        lo_flow = lo_header->create_flow( row = 3  column = 1 ).
        lo_flow->create_text( text = '文本' tooltip = '文本' ).
    
        co_alv->set_top_of_list( lo_header ).                     "输出自定义页头到对象
        co_alv->set_top_of_list_print( lo_header ).               "打印页头
      ENDMETHOD.
    
      METHOD set_end_of_page.
        DATA: lo_footer TYPE REF TO cl_salv_form_layout_grid,
              lo_label  TYPE REF TO cl_salv_form_label,
              lo_flow   TYPE REF TO cl_salv_form_layout_flow.
    
        CREATE OBJECT lo_footer.
    
        lo_label = lo_footer->create_label( row = 1 column = 1 ).   "创建一个样式
        lo_label->set_text( '页尾标题加粗文本:' ).
    
        lo_flow = lo_footer->create_flow( row = 2  column = 1 ).
        lo_flow->create_text( text = '第一行文本:' tooltip = '提示文本' ).
    
        lo_flow = lo_footer->create_flow( row = 3  column = 1 ).
        lo_flow->create_text( text = 'DATE:' tooltip = 'DATE:' ).
    
        lo_flow = lo_footer->create_flow( row = 3  column = 2 ).
        lo_flow->create_text( text = sy-datum tooltip = sy-datum ).
    
        co_alv->set_end_of_list( lo_footer ).                        "输出自定义页尾到对象
        co_alv->set_end_of_list_print( lo_footer ).                  "打印页尾
      ENDMETHOD.
    
      METHOD set_display_setting.
        DATA: lo_display TYPE REF TO cl_salv_display_settings.
    
        lo_display = co_alv->get_display_settings( ).                "获取对象            "
        lo_display->set_list_header( 'SALV Demo 005' ).              "设置GUI抬头文本
      ENDMETHOD.
    
    ENDCLASS.
    
    START-OF-SELECTION.
      DATA: lo_report TYPE REF TO lcl_report.
    
      CREATE OBJECT lo_report. "实例化SALV对象
    
      lo_report->get_data( ).                            "获取数据
      lo_report->salv_output( ).                         "输出
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值