十八、SALV 读取其他SALV的显示结果

58 篇文章 3 订阅

读取其他SALV的显示结果

一、主要功能
  1. SALV有个神奇的功能,就是submit其他SALV程序后能直接取得显示的结果。通常情况下,可以将submit的SALV显示结果发送到内存中(SUBMIT … EXPORTING LIST TO MEMORY. ),然后通过函数LIST_FROM_MEMORY读取,通过WRITE_LIST写入,这么做虽说也能得到其他SALV的程序运行结果,但是比较繁琐。

  2. 下面结果通过类CL_SALV_BS_RUNTIME_INFO来实现的步骤:

    • 将Submit的salv设置为不显示模式

      " 设定SALV运行模式,
      cl_salv_bs_runtime_info=>set(
       EXPORTING
         display  = abap_false  "不显示
         metadata = abap_false
         data     = abap_true
      ).
      
    • submit SALV程序

      SUBMIT salv_demo_table_simple AND RETURN.
      
    • 调用cl_salv_bs_runtime_info=>get_data_ref()取得结果

      TRY.
          "取得运行数据
          cl_salv_bs_runtime_info=>get_data_ref(
                IMPORTING
                  r_data = go_data
          ).
      *   数据赋值
          ASSIGN go_data->* TO <git_outtab>.
      
        CATCH cx_salv_bs_sc_runtime_info.
      ENDTRY.
      
二、实现与代码
*&---------------------------------------------------------------------*
*& Report ZABAP_SALV18
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZABAP_SALV18.

DATA: git_outtab TYPE STANDARD TABLE OF alv_t_t2.
FIELD-SYMBOLS: <git_outtab> LIKE git_outtab.
DATA go_data TYPE REF TO data.

" 设定SALV运行模式,
cl_salv_bs_runtime_info=>set(
 EXPORTING
   display  = abap_false  "不显示
   metadata = abap_false
   data     = abap_true
).

SUBMIT salv_demo_table_simple
  AND RETURN.

TRY.
    "取得运行数据
    cl_salv_bs_runtime_info=>get_data_ref(
          IMPORTING
            r_data = go_data
    ).
*   数据赋值
    ASSIGN go_data->* TO <git_outtab>.

  CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.
CALL METHOD cl_salv_bs_runtime_info=>clear_all.
三、执行结果
  1. submit的salv_demo_table_simple是SAP系统内置的一个SALV demo程序,运行后显示10条数据,如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iCtN21cq-1678760094032)(D:\学习计划笔记\SALV\IMAGE\image-20220418151531675.png)]

  2. zabap_salv18运行debug,salv_demo_table_simple运行后显示的数据被保存到表<GIT_OUTTAB>中。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZoWju6CL-1678760094032)(D:\学习计划笔记\SALV\IMAGE\image-20220418151200418.png)]

  3. 通过这种方法也可以得到某些标准程序ALV的显示结果,很方便,比如MB5B(对应程序RM07MLBD)的ALV显示结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP SALV(SAP List Viewer)是一个用于在SAP系统中创建和显示报表的工具。要在ABAP SALV报表中添加复选框(checkbox),你可以按照以下步骤进行操作: 1. 定义内表(table):首先,你需要定义一个内表来存储数据和复选框的状态。可以使用`TYPES`关键字定义一个包含所需字段的结构。 2. 填充内表数据:将需要显示的数据填充到内表中。可以使用`APPEND`语句将数据行添加到内表中。 3. 创建SALV对象:使用`CL_SALV_TABLE`类创建一个SALV对象,并将内表作为参数传递给构造方法。 4. 添加复选框列:通过调用`ADD_CHECKBOX_COLUMN`方法,为SALV对象添加一个复选框列。可以指定该列的标题和字段名。 5. 显示报表:使用`DISPLAY`方法显示SALV报表。 下面是一个简单的示例代码: ```abap DATA: lt_data TYPE TABLE OF (your_structure), lo_salv TYPE REF TO cl_salv_table. * 定义内表类型 TYPES: BEGIN OF ty_data, field1 TYPE data_type, field2 TYPE data_type, checkbox TYPE abap_bool, END OF ty_data. * 填充内表数据 APPEND VALUE #( field1 = value1 field2 = value2 ) TO lt_data. * 创建SALV对象 lo_salv = cl_salv_table=>factory( ). * 添加复选框列 lo_salv->add_checkbox_column( title = 'CheckBox' fieldname = 'CHECKBOX' ). * 设置内表数据 lo_salv->set_table_for_first_display( exporting i_structure_name = 'TY_DATA' changing it_outtab = lt_data ). * 显示报表 lo_salv->display( ). ``` 这段代码将在SALV报表中显示一个复选框列,用户可以选择或取消选择复选框。请根据你的实际需求修改字段名称、数据类型和内表数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值