https://blog.csdn.net/m0_37062693/article/details/75050216

有些情况我们需要取一些标准报表的数据,如果自己重写比较复杂,用SUBMIT … AND RETURN可以调用标准报表并获取获取返回值。

参考:ZEROTEST69

语法:SUBMIT [程序名] WITH [调用程序屏幕的参数名]IN/=  值 AND RETURN

加上 EXPORTING LIST TO MEMORY 将程序返回的alv输出到MEMORY可以用函数取出

网上也有很多类似的例子,这里自己以MB5B测试了一个例子

列子:

  1. *&---------------------------------------------------------------------*

  2. *& Report ZEROTEST69

  3. *& 测试直接取MB5B 历史库存的数据

  4. *&---------------------------------------------------------------------*

  5. *&

  6. *&

  7. *&---------------------------------------------------------------------*

  8. REPORT zerotest69.

  9. TABLES: t001w,mard,mkpf.

  10. DATA:ls_data TYPE REF TO data.

  11. FIELD-SYMBOLS: <lt_data> TYPE table,

  12. <l_data> TYPE data.

  13. DATA BEGIN OF itab_list OCCURS 0.

  14. INCLUDE STRUCTURE abaplist.

  15. DATA END OF itab_list.

  16. DATA:BEGIN OF t_str OCCURS 0,

  17. str(20) TYPE c,

  18. END OF t_str.

  19. DATA: BEGIN OF vlist OCCURS 0, "这个调用程序ALV输出的长度要根据实际长度来确认

  20. filler1(100) TYPE c,

  21. field1(50) TYPE c,

  22. filler(50) TYPE c,

  23. field2(50) TYPE c,

  24. filler3(50) TYPE c,

  25. END OF vlist.

  26. DATA: str1(100) TYPE c,

  27. str2(100) TYPE c.

  28. SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.

  29. SELECT-OPTIONS:

  30. s_werks FOR t001w-werks,

  31. s_matnr FOR mard-matnr,

  32. s_budat FOR mkpf-budat.

  33. SELECTION-SCREEN END OF BLOCK bl1.

  34. START-OF-SELECTION.

  35. PERFORM get_mb5b_data.

  36. *&---------------------------------------------------------------------*

  37. *& Form get_mb5b_data

  38. *&---------------------------------------------------------------------*

  39. * text

  40. *----------------------------------------------------------------------*

  41. FORM get_mb5b_data.

  42. cl_salv_bs_runtime_info=>set(

  43. display = abap_false

  44. metadata = abap_false

  45. data = abap_true ).

  46. 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

  47. CALL FUNCTION 'LIST_FROM_MEMORY'

  48. TABLES

  49. listobject = itab_list

  50. EXCEPTIONS

  51. not_found = 4

  52. OTHERS = 8.

  53. CALL FUNCTION 'LIST_TO_ASCI'

  54. EXPORTING

  55. list_index = -1

  56. TABLES

  57. listasci = vlist

  58. listobject = itab_list

  59. EXCEPTIONS

  60. empty_list = 1

  61. list_index_invalid = 2

  62. OTHERS = 3.

  63. IF sy-subrc = 0.

  64. READ TABLE vlist INDEX 5.

  65. IF sy-subrc = 0 .

  66. SPLIT vlist-filler1 AT '' INTO TABLE t_str . "根据空格拆分

  67. ENDIF.

  68. ENDIF.

  69. DELETE t_str WHERE str = ''. "删除空行

  70. READ TABLE t_str INDEX 3.

  71. IF sy-subrc = 0.

  72. WRITE: t_str-str.

  73. ENDIF.

  74. * TRY.

  75. * cl_salv_bs_runtime_info=>get_data_ref(

  76. * IMPORTING r_data = ls_data ).

  77. *

  78. * ASSIGN ls_data->* TO <lt_data>.

  79. *

  80. * CATCH cx_salv_bs_sc_runtime_info.

  81. * MESSAGE '无法读取ALV数据' TYPE 'E'.

  82. * ENDTRY.

  83. *

  84. * cl_salv_bs_runtime_info=>clear_all( ).

  85. *

  86. * IF <lt_data> IS ASSIGNED.

  87. * LOOP AT <lt_data> ASSIGNING <l_data>.

  88. ** MOVE-CORRESPONDING <l_data> TO gt_tab.

  89. ** APPEND gt_tab.

  90. * ENDLOOP.

  91. * ENDIF.

  92. ENDFORM. "

测试界面:

测试结果:

输出的库存和MB5B的结果是一样的

MB5B界面:

MB5B结果:

字符串处理一下可以得到总库存:

测试控制台:

参考:http://blog.csdn.net/zhongguomao/article/details/50924058

ABAP:SUBMIT执行其他报表并返回的数据相关推荐

  1. 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法

    在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...

  2. java执行cmd命令,返回结果中文乱码问题解决

    java执行cmd命令,返回结果中文乱码问题解决 参考文章: (1)java执行cmd命令,返回结果中文乱码问题解决 (2)https://www.cnblogs.com/kwaitfort/p/90 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )

    文章目录 前言 一.等待远程进程 mmap 函数执行完毕 二.从寄存器中获取进程返回值 三.博客资源 前言 前置博客 : [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | ...

  4. python执行系统命令后获取返回值的几种方式集合

    第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for lin ...

  5. 原生sql 查询返回一个实体_python连接SQLServer执行给定的查询SQL语句,并返回结果数据...

    今天写这篇文章的初衷就是在我昨天发表的文章<Python连接SQLServer数据库执行增删改查操作>后,一些读者反馈说跟Python完全没有关系,这里我想说的是:内容的确是与Python ...

  6. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  7. python执行cmd并返回是否成功_python脚本执行CMD命令并返回结果的例子

    最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...

  8. python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子

    最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...

  9. [datatable]关于在DataTable中执行DataTable.Select(“条件“)返回DataTable的解决方法

    [datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 参考文章: (1)[datatable]关于在Da ...

最新文章

  1. 全球及中国LCP行业应用项目布局及产能规模预测报告2021版
  2. python中while循环_Python第12课:while循环案例 打印输出有规律的造型
  3. Cytology: Diagnostic Principles and Clinical Correlates 细胞学: 诊断原则与临床相关性 PDF
  4. 文本字符串中提取数据进行分析
  5. uniapp底部弹出框效果
  6. 给tomcat 配置https
  7. PC-[WIN7]此计算机无法联接家庭组
  8. Alphabet旗下自动驾驶部门Waymo将在匹兹堡设立办公室
  9. 从iOS的图片圆角想到渲染
  10. python之twisted模块安装
  11. windows下mongodb安装与使用
  12. Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
  13. python去重脚本
  14. 某Y易盾滑块acToken、data逆向分析
  15. oracle trim函数用法详解
  16. 第10章第27节:使用Psychedelic waves生成梦幻般的波纹图像 [PowerPoint精美幻灯片实战教程]
  17. 三角形边长求高的c语言函数公式,c 求,已知三角形三边边长为abc,利用公式求面积...
  18. Windows中缺少mfc140.dll文件解决方法
  19. 计算机原理【七】之 输入输出系统
  20. 计算机专业投cssci,经管类CSSCI投稿经验与审稿时间 5

热门文章

  1. 回馈读者【赠技术书通知】
  2. 一文了解 2018年最火爆的30个机器学习项目
  3. CoGAN 和 SeGAN
  4. 徐尧:如何搭建好的数据指标体系?
  5. 大数据系统软件国家工程实验室给大家拜年啦!
  6. 剑指offer:数组中重复的数字
  7. GitHub推出云端IDE,几秒完成开发环境配置,今后可以在浏览器里使用VS Code了
  8. 情人节到了!这枝18星「黑玫瑰」只送给你
  9. 清华校友陈怡然、杨越组队进军AI芯片市场,成立苹芯科技,最新Pre-A轮斩获近千万美元...
  10. AI圈真魔幻!谷歌最新研究表明卷积在NLP预训练上竟优于Transformer?LeCun暧昧表态...