ABAP:SUBMIT执行其他报表并返回的数据
来源:互联网 发布:现货原油软件下载 编辑:程序博客网 时间:2024/05/15 23:48
有些情况我们需要取一些标准报表的数据,如果自己重写比较复杂,用SUBMIT … AND RETURN可以调用标准报表并获取获取返回值。
参考:ZEROTEST69
语法:SUBMIT [程序名] WITH [调用程序屏幕的参数名]IN/= 值 AND RETURN
加上 EXPORTING LIST TO MEMORY 将程序返回的alv输出到MEMORY可以用函数取出
网上也有很多类似的例子,这里自己以MB5B测试了一个例子
列子:
*&---------------------------------------------------------------------**& Report ZEROTEST69*& 测试直接取MB5B 历史库存的数据*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT zerotest69.TABLES: t001w,mard,mkpf.DATA:ls_data TYPE REF TO data.FIELD-SYMBOLS: <lt_data> TYPE table, <l_data> TYPE data.DATA BEGIN OF itab_list OCCURS 0. INCLUDE STRUCTURE abaplist.DATA END OF itab_list.DATA:BEGIN OF t_str OCCURS 0, str(20) TYPE c,END OF t_str.DATA: BEGIN OF vlist OCCURS 0, "这个调用程序ALV输出的长度要根据实际长度来确认 filler1(100) TYPE c, field1(50) TYPE c, filler(50) TYPE c, field2(50) TYPE c, filler3(50) TYPE c, END OF vlist.DATA: str1(100) TYPE c, str2(100) TYPE c.SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.SELECT-OPTIONS: s_werks FOR t001w-werks, s_matnr FOR mard-matnr, s_budat FOR mkpf-budat.SELECTION-SCREEN END OF BLOCK bl1.START-OF-SELECTION. PERFORM get_mb5b_data.*&---------------------------------------------------------------------**& Form get_mb5b_data*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM get_mb5b_data. cl_salv_bs_runtime_info=>set( display = abap_false metadata = abap_false data = abap_true ). SUBMIT rm07mlbd WITH werks IN s_werks WITH matnr IN s_matnr WITH datum IN s_budat WITH lgbst = 'X' AND RETURN EXPORTING LIST TO MEMORY."TCODE:MB5B CALL FUNCTION 'LIST_FROM_MEMORY' TABLES listobject = itab_list EXCEPTIONS not_found = 4 OTHERS = 8. CALL FUNCTION 'LIST_TO_ASCI' EXPORTING list_index = -1 TABLES listasci = vlist listobject = itab_list EXCEPTIONS empty_list = 1 list_index_invalid = 2 OTHERS = 3. IF sy-subrc = 0. READ TABLE vlist INDEX 5. IF sy-subrc = 0 . SPLIT vlist-filler1 AT '' INTO TABLE t_str . "根据空格拆分 ENDIF. ENDIF. DELETE t_str WHERE str = ''. "删除空行 READ TABLE t_str INDEX 3. IF sy-subrc = 0. WRITE: t_str-str. ENDIF.* TRY.* cl_salv_bs_runtime_info=>get_data_ref(* IMPORTING r_data = ls_data ).** ASSIGN ls_data->* TO <lt_data>.** CATCH cx_salv_bs_sc_runtime_info.* MESSAGE '无法读取ALV数据' TYPE 'E'.* ENDTRY.** cl_salv_bs_runtime_info=>clear_all( ).** IF <lt_data> IS ASSIGNED.* LOOP AT <lt_data> ASSIGNING <l_data>.** MOVE-CORRESPONDING <l_data> TO gt_tab.** APPEND gt_tab.* ENDLOOP.* ENDIF.ENDFORM. "
测试界面:
测试结果:
输出的库存和MB5B的结果是一样的
MB5B界面:
MB5B结果:
字符串处理一下可以得到总库存:
测试控制台:
参考:http://blog.csdn.net/zhongguomao/article/details/50924058
阅读全文
0 0
- ABAP:SUBMIT执行其他报表并返回的数据
- ABAP中对其他程序的调用(SUBMIT)
- abap submit 的使用方法
- android打开其他应用的activity并返回数据
- 启动其他 Activity并返回数据
- 启动其他的Activity并返回结果
- ABAP SUBMIT
- ABAP报表的事件
- ABAP报表的事件
- ABAP-报表的事件
- ABAP报表的事件
- ABAP-报表的事件
- 接收从其他app返回的数据
- SAP ABAP子程序SUBMIT调用的方法
- abap submit 的使用方法 不同情况
- abap submit 的使用方法
- abap submit 的使用方法 不同情况
- SAP ABAP子程序SUBMIT调用的方法
- 在RecyclerView的子布局中使用EditText,在第一项输入数据滚动出可视界面后,再次回到第一项后,输入的数据没有了
- RecyclerView条目宽度显示为一半
- const有哪些作用?
- 算法--一揽子排序算法(1)
- 微型四轴设计之通过arduino读取MPU6050原始数据
- ABAP:SUBMIT执行其他报表并返回的数据
- 天津大学OJ_2017_07_12比赛I题L-The math problem
- JVM参数:-XX:ReservedCodeCacheSize
- Linux养成笔记
- mysql数据库破解方法
- keras系列︱seq2seq系列相关实现与案例(feedback、peek、attention类型)
- XML的dom4j解析器测试
- ==和equals的区别
- save与Update的合并操作