SUBMIT的用法
创始人
2024-06-01 17:57:50
0

SUBMIT的用法

一、简介
  1. 系统MB52/MB51/MB5B等类似的报表 ,虽然数据很全面,执行效率也够快,但是经常会不满足用户需求(增添字段、添加查询条件等),很多ABAP 会选择去COPY出标准程序,然后去做修改,强烈不推荐此种方式,弊端太大,容易使标准程序出现问题,且效率低(特别涉及MSEG等数据库表)。

  2. 我们可以使用SUBMIT,此语法可将获取系统标准报表数据,然后你就可以自己去加一层壳来实现自己的定制。

  3. 语法:selscreen_options:主要是标准程序选择界面Field,通过F1去查看具体Field name。

    SUBMIT {rep|(name)} [selscreen_options]
    [list_options]
    [job_options]
    [AND RETURN].
    
二、Submit的使用方法和案例
  1. 下列案例是获取MB51的数据

  2. 有两个方法来建数据赋值

    • 方法一:获取ALV报表结果数据(不局限于严格意义上的ALV Grid、LIST报表也能获取到值),关键代码:

      *&---------------------------------------------------------------------*
      *&
      *& 获取MB5B数据 
      *&---------------------------------------------------------------------*
      DATA:lr_alv_data TYPE REF TO data. FIELD-SYMBOLS :  TYPE ANY TABLE .
      FIELD-SYMBOLS :  TYPE ANY. "LIKE LINE OF  it_tab . *&---------------------------------------------------------------------*
      *& "计算特殊库存E的期初期末
      *&---------------------------------------------------------------------*cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_falsemetadata = abap_falsedata     = abap_true ).CLEAR lr_alv_data.UNASSIGN .SUBMIT rm07mlbd                                         "MB5B特殊库存及搜索条件WITH matnr IN so_matnrWITH werks IN so_werksWITH lgort EQ so_lgort-low "循环获取每个库存地点的期初期末WITH sobkz EQ 'E'WITH datum IN so_budat"库存类型-特殊库存WITH lgbst EQ spaceWITH bwbst EQ spaceWITH sbbst EQ 'X'"设置WITH xsum EQ spaceWITH pa_sumfl EQ 'X'WITH xchar EQ spaceWITH xnomchb EQ spaceWITH xnomchb EQ spaceWITH nosto EQ spaceWITH pa_dbstd EQ 'X'AND RETURN.TRY."关键代码cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ).ASSIGN lr_alv_data->* TO .CATCH cx_salv_bs_sc_runtime_info.MESSAGE 'Unable to retrieve ALV data! Please try other conditions.' TYPE 'E'.ENDTRY.cl_salv_bs_runtime_info=>clear_all( )."IF  IS ASSIGNED.UNASSIGN .LOOP AT  ASSIGNING ."即所需要内表数据ENDLOOP.ENDIF.
      
    • 将执行结果放入MEMORY(此法用于结果不是很明确的ALV结构),关键代码:

      *&---------------------------------------------------------------------*
      *& Report  ZTEST_CALL_MB51
      *&
      *&---------------------------------------------------------------------*
      *&
      *& 获取MB51数据
      *&---------------------------------------------------------------------*REPORT  ztest_call_mb51.TYPE-POOLS:abap.
      TABLES:mseg,mara,mard.DATA:flag(01)    TYPE  c VALUE 'X', "Name for compatibility with MB03 "MAA EhP4no_list(01) TYPE  c VALUE 'X'. "Do not show the list             "MAA EhP4DATA: BEGIN OF export_list OCCURS 0,matnr TYPE mseg-matnr,maktx TYPE makt-maktx,werks TYPE mseg-werks,name1 TYPE t001w-name1,lgort TYPE mseg-lgort,charg TYPE mseg-charg,                              "351455bwtar TYPE mseg-bwtar,                              "351455bwart TYPE mseg-bwart,sobkz TYPE mseg-sobkz,btext TYPE t156t-btext,mblnr TYPE mseg-mblnr,mjahr TYPE mseg-mjahr,zeile TYPE mseg-zeile,budat TYPE mkpf-budat,erfmg TYPE mseg-erfmg,erfme TYPE mseg-erfme,lifnr TYPE mseg-lifnr,vgart TYPE mkpf-vgart,END OF export_list.SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-t01.
      SELECT-OPTIONS:so_werks FOR mseg-werks OBLIGATORY,so_matnr FOR mseg-matnr,so_mtart FOR mara-mtart,so_matkl FOR mara-matkl,so_lgort FOR mard-lgort.
      SELECT-OPTIONS so_mtr_i FOR mseg-matnr NO-DISPLAY .
      SELECTION-SCREEN: END OF BLOCK blk1.START-OF-SELECTION.EXPORT flag TO MEMORY ID 'MB51_FLAG'.EXPORT no_list TO MEMORY ID 'MB51_NOLIST' .EXPORT export_list TO MEMORY ID 'MB51_EXPORT_LIST'.SUBMIT rm07docsWITH matnr IN so_matnrWITH werks IN so_werksWITH lgort IN so_lgortWITH database EQ abap_trueWITH pa_dbstd EQ abap_trueWITH mb51_flag EQ flagWITH mb51_nolist EQ no_listEXPORTING LIST TO MEMORY AND RETURN.IMPORT export_list FROM MEMORY ID 'MB51_EXPORT_LIST'."关键代码FREE MEMORY ID 'MB51_EXPORT_LIST'.LOOP AT export_list."export_list 为需要的内表数据ENDLOOP.
  3. 执行结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-my8VyMW4-1678545481098)(D:\学习计划笔记\问题解决办法\IMAGE\image-20220523091900701.png)]

相关内容

热门资讯

怎么在安卓系统装windows... 你是不是也和我一样,对安卓手机的强大性能爱不释手,但又时不时地想念Windows系统的熟悉界面和那些...
kindle安卓系统壁纸设置,... 亲爱的Kindle用户,你是否曾为你的Kindle设备挑选过一款心仪的壁纸呢?今天,就让我带你一起探...
一加降级安卓系统,回顾与展望 你有没有想过,你的手机系统升级后,竟然还能降级回旧版本?这听起来是不是有点像穿越时空的魔法?没错,今...
凤凰安卓电视系统安装,畅享智能... 亲爱的读者们,你是否也像我一样,对凤凰安卓电视系统安装充满了好奇?想象一台普通的电视,通过安装这个系...
如何更换安卓系统手机,安卓系统... 你有没有想过,你的安卓手机用久了,是不是有点儿卡顿了呢?别急,今天就来教你怎么给它换换“血”,让它焕...
国家粮油统计安卓系统,智能数据... 你有没有想过,每天我们吃的粮食,背后竟然有这么多的故事和数据呢?没错,今天就要带你走进国家粮油统计的...
台电双系统安卓更新,畅享双平台... 你知道吗?最近台电的双系统安卓更新可是引起了不小的轰动呢!作为一个紧跟科技潮流的数码爱好者,我可是迫...
安卓系统上打开caj,Andr... 你有没有遇到过这种情况:手里拿着一本看起来超级有料的电子书,打开一看,哎呀妈呀,竟然是CAJ格式!别...
装安卓手机系统教程,安卓手机系... 你有没有想过,让你的安卓手机也能装上Windows系统,体验一下不一样的操作界面呢?没错,今天就要来...
安卓系统不供应华为,安卓系统不... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是安卓系统不再供应华为了!这可不仅仅是两个公司之间的...
安卓哪个系统功耗小些,揭秘哪个... 你有没有发现,手机用着用着,电池就有点不给力了?尤其是安卓手机,系统更新换代快,但功耗问题却一直让人...
免费升级安卓系统吗,畅享智能新... 亲爱的读者们,你是否也像我一样,对安卓系统的免费升级充满了好奇和期待呢?想象你的手机从老旧的系统升级...
运行安卓app的系统,系统版本... 你有没有想过,你的手机里那些运行得风生水起的安卓应用,它们究竟是在什么样的系统下翩翩起舞的呢?今天,...
安卓系统保存照片,安卓系统照片... 手机里的照片是不是越来越多,你有没有想过,这些珍贵的回忆是怎么被安卓系统保存下来的呢?今天,就让我带...
手机安卓系统会卡吗,安卓手机系... 你有没有发现,手机用久了,尤其是安卓系统,有时候会变得有点“慢吞吞”的?这不,今天就来聊聊这个话题,...
安卓系统自己安装mim,And... 你有没有发现,你的安卓手机最近有点儿“聪明”了呢?它竟然自己动手安装了MIM(Mirroring)应...
iwork10安卓系统,创新办... 你有没有发现,最近你的手机是不是变得越来越卡了?别急,别急,让我来给你介绍一款神器——iWork10...
安卓手机装deepin系统,安... 你有没有想过给你的安卓手机换换口味呢?别再局限于那些千篇一律的操作系统了,今天就来给你揭秘如何让你的...
安卓系统不收钱吗,安卓系统免费... 你有没有想过,为什么安卓系统不用你掏腰包呢?是不是觉得它就像那免费的午餐,来者不拒,享用起来毫无负担...
8848系统是安卓的,安卓生态... 你知道吗?在手机操作系统的大千世界里,有一个特别的存在,那就是8848系统。它可不是什么小角色,而是...