zoukankan      html  css  js  c++  java
  • SUBMIT RM07DOCS【MB51】 获取返回清单,抓取标准报表数据

    *&---------------------------------------------------------------------*
    *& 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.
  • 相关阅读:
    133
    132
    131
    130
    129
    128
    2019.10.16考试解题报告
    2019.10.15考试解题报告
    洛谷 P1352 没有上司的舞会
    2019.10.13考试解题报告
  • 原文地址:https://www.cnblogs.com/rainysblog/p/7867571.html
Copyright © 2011-2022 走看看