ABAP SALV-刷新、弹框

01 功能说明

上篇:ABAP SALV-样式(列、行、单元格)

本系列将通过模拟用户与开发者之间的对话场景,来逐步演示SALV的使用。

在本篇中,我们将延续前文内容,解决用户最新提出的需求。今天我们的主题是SALV模型中的另外两个功能:如何 刷新ALV以及如何添加按钮并 弹框展示数据。相信通过亲自操作,你能够快速的理解和掌握这些知识点。

让我们一起动手尝试一下,看看如何实现这些功能吧!

02 功能效果

第20天 用户说:刷新ALV

上次添加的复选框点击不起作用,需要修复一下。

    CASE column.
      WHEN 'CBOX'.
        CHECK p_day20 = 'X'.
        FIELD-SYMBOLS <spfli> LIKE gs_spfli.
        READ TABLE gt_spfli ASSIGNING <spfli> INDEX row.
        IF <spfli>-cbox = 'X' .
          <spfli>-cbox = ''.
        ELSE.
          <spfli>-cbox = 'X'.
        ENDIF.

        "刷新ALV
        DATA ls_stable  TYPE lvc_s_stbl.
        ls_stable-row = 'X'.
        ls_stable-col = 'X'.

        go_salv->refresh(
          EXPORTING
            s_stable     = ls_stable
            refresh_mode = if_salv_c_refresh=>soft
        ).
      WHEN OTHERS.
    ENDCASE.

在这里插入图片描述

第21天 用户说:添加按钮弹出ALV

工具栏新增航班信息按钮,点击展示所选航线对应的航班信息。

    IF p_day21 = 'X'.
      lo_functions->add_function(
        EXPORTING
          name     = 'DISP'
          icon     = '@7T@'
          text     = '航班信息'
          tooltip  = '所选航线的航班信息'
          position = if_salv_c_function_position=>right_of_salv_functions
        ).
    ENDIF.



  CASE e_salv_function.
      WHEN 'DISP'.
        CHECK p_day21 = 'X'.
        DATA lt_sflight TYPE TABLE OF sflight.
        LOOP AT gt_spfli INTO gs_spfli WHERE cbox = 'X'.
          SELECT * FROM sflight
          APPENDING TABLE lt_sflight
           WHERE carrid = gs_spfli-carrid
             AND connid = gs_spfli-connid.
        ENDLOOP.

        DATA lo_salv TYPE REF TO cl_salv_table.
        DATA lo_functions_list TYPE REF TO cl_salv_functions_list.
        DATA lo_columns_table TYPE REF TO cl_salv_columns_table.
        TRY .
            cl_salv_table=>factory(
              IMPORTING
                r_salv_table = lo_salv
              CHANGING
                t_table      = lt_sflight
            ).
          CATCH cx_salv_msg.
        ENDTRY.

        lo_salv->set_screen_popup(
          EXPORTING
            start_column = 5
            end_column   = 100
            start_line   = 5
            end_line     = 25
        ).

        lo_functions_list 
ABAP Enhancement-Section是一种ABAP语言中的扩展机制,它允许我们在SAP标准程序中进行修改和增强。通过使用ABAP Enhancement-Section,我们可以在标准程序的不同部分插入自定义代码,以满足特定的业务需求。 ABAP Enhancement-Section的使用步骤如下: 1. 找到要修改或增强的SAP标准程序。 2. 使用ABAP Developer Tools或ABAP Workbench打开该程序。 3. 在程序中找到适合插入自定义代码的位置。 4. 在找到的位置上创建一个新的ABAP Enhancement-Section。 5. 给这个新的ABAP Enhancement-Section起一个合适的名字。 6. 在ABAP Enhancement-Section中编写自定义的代码,实现对标准程序的修改或增强。 7. 保存所有的修改并激活程序。 ABAP Enhancement-Section的优点在于它能够实现定制化的扩展,而无需对SAP标准程序进行修改。这样一来,在升级或修补SAP系统时,我们的修改不会丢失或被覆盖。同时,ABAP Enhancement-Section还能提高代码的可读性和可维护性,因为我们的自定义代码与标准代码分离,易于理解和调试。 ABAP Enhancement-Section支持多种类型的扩展,如隐式增强(Implicit Enhancement)和显示增强(Explicit Enhancement)。隐式增强是指在标准程序中创建一个新的ABAP Enhancement-Section并插入自定义代码。显示增强是指通过在标准程序中用特定的注释标记出扩展点,然后在自定义代码中引用这些扩展点。 总而言之,ABAP Enhancement-Section是一种非常有用的扩展机制,可以帮助我们在SAP标准程序中实现修改和增强,同时保持程序的稳定性和可升级性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值