码迷,mamicode.com
首页 > 其他好文 > 详细

SUBMIT RM07DOCS【MB51】 获取返回清单,抓取标准报表数据

时间:2017-11-20 19:13:21      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:pos   object   initial   pid   vga   return   call   ons   []   

*&---------------------------------------------------------------------*
*& Report  YT_SUBMIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YT_SUBMIT.


  DATA: LV_VA TYPE SLIS_VARI.

  FIELD-SYMBOLS: <LT_PAY_DATA> TYPE ANY TABLE,
                 <LT_TEMP>     TYPE ANY TABLE,
                 <LS_DATA>.

  DATA LR_PAY_DATA              TYPE REF TO DATA.

  DATA: LT_MCHA   TYPE TABLE OF MCHA,
        LT_KNA1   TYPE TABLE OF KNA1,
        LT_T001L  TYPE TABLE OF T001L,
        LT_CSKT   TYPE TABLE OF CSKT,
        LT_MM0004 TYPE TABLE OF ZTCOFCO_MM_0004,
        LT_LFA1   TYPE TABLE OF LFA1.

****选择屏幕全部为空需要给物料赋值*防止弹出警告
  IF S_MATNR[] IS INITIAL.
    S_MATNR-SIGN = I.
    S_MATNR-OPTION = CP.
    S_MATNR-LOW = *.
    APPEND S_MATNR.
  ENDIF.

***检查是否有MB51的权限
  AUTHORITY-CHECK OBJECT S_TCODE
           ID TCD FIELD MB51.
  IF SY-SUBRC <> 0.
    MESSAGE S006 WITH MB51 DISPLAY LIKE E.
    LEAVE LIST-PROCESSING.
  ENDIF.

  SELECT SINGLE DCPFM INTO GV_DCPFM
          FROM USR01
          WHERE BNAME = SY-UNAME.


  PERFORM FRM_GET_VARIANT CHANGING LV_VA."获取程序变式

***为后续获取ALV数据做设置
  CL_SALV_BS_RUNTIME_INFO=>SET(
     EXPORTING
       DISPLAY  = ABAP_FALSE
       METADATA = ABAP_FALSE
       DATA     = ABAP_TRUE ).




  SUBMIT RM07DOCS                " Tcode MB51
    WITH MATNR IN S_MATNR   "物料
    WITH WERKS IN S_WERKS   "工厂
    WITH LGORT IN S_LGORT   "库位
    WITH CHARG IN S_CHARG   "批次
    WITH LIFNR IN S_LIFNR   "供应商
    WITH KUNNR IN S_KUNNR   "客户
    WITH BWART IN S_BWART   "移动类型
    WITH SOBKZ IN S_SOBKZ   "特殊库存
    WITH AUFNR IN S_AUFNR   "生产订单
    WITH KOSTL IN S_KOSTL   "成本中心
    WITH MAT_KDAU IN S_KDAU   "销售订单
    WITH MAT_KDPO IN S_KDPO   "销售订单行项目
    WITH RSNUM IN S_RSNUM   "预留
    WITH RSPOS IN S_RSPOS   "预留行
    WITH BUDAT IN S_BUDAT "过账日期
    WITH USNAM IN S_USNAM   "用户
    WITH VGART IN S_VGART
    WITH MBLNR IN S_MBLNR
    WITH MJAHR IN S_MJAHR
    WITH XBLNR IN S_XBLNR
    WITH RHIER_L = ‘‘
    WITH RFLAT_L = ABAP_TRUE"扁平结构
    WITH DATABASE = ABAP_TRUE "读取数据库
    WITH ALV_DEF = LV_VA"变式
      AND RETURN.


  TRY.
      CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
        IMPORTING R_DATA = LR_PAY_DATA ).
      ASSIGN LR_PAY_DATA->* TO <LT_PAY_DATA>.

    CATCH CX_SALV_BS_SC_RUNTIME_INFO.
  ENDTRY.
  CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
  IF <LT_PAY_DATA> IS ASSIGNED.


    LOOP AT <LT_PAY_DATA> ASSIGNING <LS_DATA>.
      MOVE-CORRESPONDING <LS_DATA> TO GS_ALV.
      APPEND GS_ALV TO GT_ALV.
    ENDLOOP.


*&---------------------------------------------------------------------*
*&      Form  FRM_GET_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_LV_VA  text
*----------------------------------------------------------------------*
FORM FRM_GET_VARIANT  CHANGING CV_VA.
* prepare the areas for the different display variants
*  repid = sy-repid.

  DATA: LS_DEF_VARIANTE  LIKE DISVARIANT,
        LS_VARIANTE_FLAT LIKE DISVARIANT,
        LS_VARIANTE      LIKE DISVARIANT.

  MOVE  : RM07DOCS              TO  LS_VARIANTE-REPORT,
         RM07DOCS              TO  LS_VARIANTE_FLAT-REPORT,
          DETA                TO  LS_VARIANTE_FLAT-HANDLE.

* the display variant is depending on the seleted mode of
* the SAP-LIST-VIEWER : look for both variants

* a) Get default variant for the hierarchic list
  LS_DEF_VARIANTE = RM07DOCS.

  CALL FUNCTION REUSE_ALV_VARIANT_DEFAULT_GET
    EXPORTING
      I_SAVE     = A
    CHANGING
      CS_VARIANT = LS_DEF_VARIANTE
    EXCEPTIONS
      NOT_FOUND  = 2.

  IF SY-SUBRC = 0.
    MOVE  LS_DEF_VARIANTE-VARIANT    TO  CV_VA.
  ELSE.

* b) Get default variant for the non-hierarchic list
    LS_DEF_VARIANTE = LS_VARIANTE_FLAT.

    CALL FUNCTION REUSE_ALV_VARIANT_DEFAULT_GET
      EXPORTING
        I_SAVE     = A
      CHANGING
        CS_VARIANT = LS_DEF_VARIANTE
      EXCEPTIONS
        NOT_FOUND  = 2.

    IF SY-SUBRC = 0.
      MOVE  LS_DEF_VARIANTE-VARIANT    TO  CV_VA.
    ENDIF.
  ENDIF.

ENDFORM.

 

SUBMIT RM07DOCS【MB51】 获取返回清单,抓取标准报表数据

标签:pos   object   initial   pid   vga   return   call   ons   []   

原文地址:http://www.cnblogs.com/rainysblog/p/7867571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!