调用 cl_salv_bs_runtime_info=>get_data_ref() 时类型不匹配 [英] Type mismatch when calling cl_salv_bs_runtime_info=>get_data_ref()

查看:22
本文介绍了调用 cl_salv_bs_runtime_info=>get_data_ref() 时类型不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里找到了一个我尝试应用的解决方案.

I found a solution here which I try to apply.

 cl_salv_bs_runtime_info=>set(
  EXPORTING
    display  = abap_false
    metadata = abap_false
    data     = abap_true
).

SUBMIT ('RM07MLBS')
AND RETURN.


DATA: lt_outtab TYPE STANDARD TABLE OF alv_t_t2.
FIELD-SYMBOLS: <lt_outtab> like lt_outtab.
DATA lo_data TYPE REF TO data.

TRY.
    " get data from SALV model"&nbsp;
    cl_salv_bs_runtime_info=>get_data_ref(
          IMPORTING
            r_data = lo_data
    ).
    ASSIGN lo_data->* to <lt_outtab>.
    BREAK-POINT.

  CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.

来源:http://zevolving.com/2015/07/salv-table-22-get-data-directly-after-submit/

但这行不通.我在这一行遇到类型不匹配错误:

But this does not work. I get a type mismatch error in this line:

ASSIGN lo_data->* to <lt_outtab>.

可能有什么问题?

有没有办法做到这一点?在运行时我不知道要调用哪个报告.

Is there a way to do this generic? At runtime I don't know which report is to be called.

我的总体目标是获得 XML 或 JSON 格式的报告.

My overall goal is to get the report in XML or JSON format.

推荐答案

在用户 mkysoft 的帮助下,这是工作解决方案,以 json 格式导出数据:

With the help of the answer of user mkysoft, this is the working solution, which exports the data in json format:

FUNCTION /Z_FOO/CALL_REPORT_XML.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  EXPORTING
*"     VALUE(EV_RESULT_JSON) TYPE  STRING
*"----------------------------------------------------------------------

DATA: lo_data        TYPE REF TO data.

" Let know the model
cl_salv_bs_runtime_info=>set(
 EXPORTING
   display  = abap_false
   metadata = abap_false
   data     = abap_true
).


SUBMIT ('RM07MLBS')
   WITH WERKS = '0557'
  AND RETURN.


" get data from SALV model
cl_salv_bs_runtime_info=>get_data_ref(
      IMPORTING
        r_data = lo_data
).

field-SYMBOLS <lv_data> type any table.
ASSIGN lo_data->* TO <lv_data>.
ev_result_json = /ui2/cl_json=>serialize( data = <lv_data> pretty_name = /ui2/cl_json=>pretty_mode-low_case ).

cl_salv_bs_runtime_info=>clear_all( ).

ENDFUNCTION.

这帮助我完成了它:https://blogs.sap.com/2011/07/07/gain-programmatic-access-to-data-of-sapgui-alv-reports/

这篇关于调用 cl_salv_bs_runtime_info=>get_data_ref() 时类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆