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)]

相关内容

热门资讯

ios系统与安卓互通吗 你有没有想过,为什么你的iPhone手机上的游戏,你的安卓手机上的好友也能玩?或者,你用安卓手机下载...
中国法律app安卓系统,便捷法... 你有没有发现,现在手机上各种各样的应用层出不穷,而在中国,法律相关的APP更是让人眼花缭乱。今天,就...
安卓系统漫画神器怎么用 你有没有发现,手机里装了那么多应用,有时候就是缺那么一个能让你轻松看漫画的神器?别急,今天就来给你揭...
哪个公司推出的安卓系统,引领移... 你有没有想过,我们每天离不开的安卓系统,究竟是由哪个公司推出的呢?没错,就是那个家喻户晓的谷歌(Go...
xp系统的电脑刷个安卓系统,电... 你有没有想过,你的老XP系统电脑,是不是也能来个华丽变身,摇身一变成为安卓系统的忠实粉丝呢?没错,今...
特斯拉安卓系统怎么样,创新科技... 特斯拉安卓系统怎么样?揭秘这款独特系统的魅力与挑战想象一辆汽车,它不仅是一台交通工具,更是一个移动的...
电视安卓系统区别相机,解析电视... 你有没有发现,家里的电视和手机,还有相机,它们都离不开一个神奇的东西——系统!今天,咱们就来聊聊这三...
安卓电脑系统哪个系统最好用,探... 你有没有想过,如果你的电脑也能像手机一样灵活多变,那该多好啊!想象你可以在电脑上玩手游,看视频,还能...
安卓系统高低影响价格吗,系统高... 你有没有想过,同样是手机,为什么有的便宜有的贵呢?这其中,安卓系统的版本可是起着不小的作用哦!今天,...
冠道支持安卓系统么,冠道安卓系... 你有没有想过,你的爱车冠道是不是也能跟上时代的潮流,支持安卓系统呢?这可是个让人心动的话题哦!今天,...
安卓和系统不兼容,揭秘不兼容问... 你有没有遇到过这种情况?手机里下载了一个超级酷炫的应用,结果一打开,哎呀妈呀,系统不兼容,直接闪退了...
安卓平板刷linux系统版本,... 你有没有想过给你的安卓平板来个“变身”大法?没错,就是刷上Linux系统版本!想象原本流畅的安卓系统...
安卓系统不支持网络,探索网络限... 你知道吗?最近我在网上看到一个让人哭笑不得的新闻,说的是安卓系统竟然不支持网络!这可真是让人大跌眼镜...
红魔系统属于安卓系统吗,安卓游... 你有没有听说过红魔系统?是不是好奇它到底是不是安卓系统的一员呢?今天,就让我带你一探究竟,揭开红魔系...
xos系统是安卓吗,揭秘其与安... 你有没有听说过XOS系统?是不是好奇它是不是安卓系统呢?今天,就让我带你一探究竟,揭开这个神秘面纱!...
whatsup安卓系统下载,便... Hey,亲爱的手机控们,是不是又到了你心痒痒想要升级手机系统的时候了?今天,咱们就来聊聊那让人心动的...
安卓点餐系统自己做,重塑餐饮服... 你有没有想过,自己动手打造一个安卓点餐系统呢?想象点餐时不再需要繁琐的操作,一键就能完成,是不是很酷...
安卓安装系统验证失败,原因排查... 最近是不是你也遇到了安卓安装系统验证失败的问题?别急,让我来给你详细说说这个让人头疼的小麻烦,让你一...
三方开源安卓系统,基于三方开源... 你知道吗?在安卓的世界里,除了谷歌的官方系统,还有许多其他有趣的版本在悄悄崛起。今天,就让我带你一起...
安卓系统最老版本下载 你有没有想过,手机里的安卓系统其实也有它的“老古董”呢?没错,就是那些最古老的安卓版本,它们就像时间...