ABAP:SUBMIT执行其他报表并返回的数据
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测试了一个例子
列子:
*&---------------------------------------------------------------------*
*& 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
ABAP:SUBMIT执行其他报表并返回的数据相关推荐
- 关于在DataTable中执行DataTable.Select(条件)返回DataTable的解决方法
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他 ...
- java执行cmd命令,返回结果中文乱码问题解决
java执行cmd命令,返回结果中文乱码问题解决 参考文章: (1)java执行cmd命令,返回结果中文乱码问题解决 (2)https://www.cnblogs.com/kwaitfort/p/90 ...
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )
文章目录 前言 一.等待远程进程 mmap 函数执行完毕 二.从寄存器中获取进程返回值 三.博客资源 前言 前置博客 : [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | ...
- python执行系统命令后获取返回值的几种方式集合
第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for lin ...
- 原生sql 查询返回一个实体_python连接SQLServer执行给定的查询SQL语句,并返回结果数据...
今天写这篇文章的初衷就是在我昨天发表的文章<Python连接SQLServer数据库执行增删改查操作>后,一些读者反馈说跟Python完全没有关系,这里我想说的是:内容的确是与Python ...
- Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...
- python执行cmd并返回是否成功_python脚本执行CMD命令并返回结果的例子
最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...
- python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子
最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...
- [datatable]关于在DataTable中执行DataTable.Select(“条件“)返回DataTable的解决方法
[datatable]关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法 参考文章: (1)[datatable]关于在Da ...
最新文章
- 全球及中国LCP行业应用项目布局及产能规模预测报告2021版
- python中while循环_Python第12课:while循环案例 打印输出有规律的造型
- Cytology: Diagnostic Principles and Clinical Correlates 细胞学: 诊断原则与临床相关性 PDF
- 文本字符串中提取数据进行分析
- uniapp底部弹出框效果
- 给tomcat 配置https
- PC-[WIN7]此计算机无法联接家庭组
- Alphabet旗下自动驾驶部门Waymo将在匹兹堡设立办公室
- 从iOS的图片圆角想到渲染
- python之twisted模块安装
- windows下mongodb安装与使用
- Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
- python去重脚本
- 某Y易盾滑块acToken、data逆向分析
- oracle trim函数用法详解
- 第10章第27节:使用Psychedelic waves生成梦幻般的波纹图像 [PowerPoint精美幻灯片实战教程]
- 三角形边长求高的c语言函数公式,c 求,已知三角形三边边长为abc,利用公式求面积...
- Windows中缺少mfc140.dll文件解决方法
- 计算机原理【七】之 输入输出系统
- 计算机专业投cssci,经管类CSSCI投稿经验与审稿时间 5
热门文章
- 回馈读者【赠技术书通知】
- 一文了解 2018年最火爆的30个机器学习项目
- CoGAN 和 SeGAN
- 徐尧:如何搭建好的数据指标体系?
- 大数据系统软件国家工程实验室给大家拜年啦!
- 剑指offer:数组中重复的数字
- GitHub推出云端IDE,几秒完成开发环境配置,今后可以在浏览器里使用VS Code了
- 情人节到了!这枝18星「黑玫瑰」只送给你
- 清华校友陈怡然、杨越组队进军AI芯片市场,成立苹芯科技,最新Pre-A轮斩获近千万美元...
- AI圈真魔幻!谷歌最新研究表明卷积在NLP预训练上竟优于Transformer?LeCun暧昧表态...