zoukankan      html  css  js  c++  java
  • 生产订单批量报工

    状态栏及屏幕设置见图

    *&---------------------------------------------------------------------*
    *& Report  ZPPR106
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT ZPPR106.

    TABLES: afko,afpo,aufk.

    TYPESBEGIN OF tp_output,
             box    TYPE xfeld,
             aufnr  TYPE afko-aufnr,    " 生产订单
             werks  TYPE afru-werks,    " 工厂
             plnbez TYPE afko-plnbez,   " 物料编码
             maktx  TYPE makt-maktx,    " 物料描述
             wrkst  TYPE mara-wrkst,    " 基本物料
             zcpgg  TYPE mara-zcpgg,    " 规格型号
             gamng  TYPE afko-gamng,    " 生产订单数量
             gmein  TYPE afko-gmein,    " 单位
             lmnga  TYPE afru-lmnga,    " 确认数量
             xmnga  TYPE afru-xmnga,    " 确认废品数量
             rmnga  TYPE afru-rmnga,    " 确认返工数量
    *         meinh  TYPE afru-meinh,    " 单位
             isdd   TYPE afru-isdd,     " 执行开始日期
             iedd   TYPE afru-iedd,     " 执行完成日期
             budat  TYPE afru-budat,    " 过账日期
             lmngv  TYPE afvv-lmnga,    " 已确认数量
             xmngv  TYPE afvv-xmnga,    " 已确认废品数量
             rmngv  TYPE afvv-rmnga,    " 已确认返工数量
             ltxa1  TYPE afru-ltxa1,    " 确认文本
             statu  TYPE char50,
             msg    TYPE bapi_msg,      " 消息
             fstyle TYPE lvc_t_styl,
             aufpl  TYPE afko-aufpl,
             objnr  TYPE aufk-objnr,
             ablad  TYPE afpo-ablad,
             rcol   TYPE char4,               "颜色
           END OF tp_output.
    DATA: gt_output TYPE STANDARD TABLE OF tp_output.


    TYPESBEGIN OF tp_afvv,
             aufpl TYPE afvv-aufpl,
             aplzl TYPE afvv-aplzl,
             gmnga TYPE afvv-gmnga,
             objnr TYPE afvc-objnr,
             lmnga TYPE afvv-lmnga,
             xmnga TYPE afvv-xmnga,
             rmnga TYPE afvv-rmnga,
           END OF tp_afvv.

    TYPESBEGIN OF tp_statu,
             objnr TYPE afvc-objnr,
             stat  TYPE jest-stat,
             txt04 TYPE tj02t-txt04,
             txt30 TYPE tj02t-txt30,
           END OF tp_statu.

    DATA: gt_fcat TYPE lvc_t_fcat,
          gs_layo TYPE lvc_s_layo.

    CONSTANTS: yx VALUE 'X'.

    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: p_werks TYPE afru-werks OBLIGATORY DEFAULT '3100'.
    SELECT-OPTIONS:s_aufnr FOR afko-aufnr,
                   s_fevor FOR afko-fevor,
                   s_gstrp FOR afko-gstrp"订单开始日期
                   s_gltrp FOR afko-gltrp,"完成日期
                   s_auart  FOR aufk-auart"订单类型
    *               s_ablad FOR afpo-ablad.

    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN:
      COMMENT 1(20TEXT-sys FOR FIELD p_syst1             MODIF ID fnr,
      POSITION 33.
    PARAMETERS:
      p_syst1 LIKE tj02t-txt04                           MODIF ID fnr,
      p_sysh1 LIKE jest-stat                    NO-DISPLAY.
    SELECTION-SCREEN
      POSITION 46.
    PARAMETERS:
      p_kz_e1   LIKE rcosa-excl1                           MODIF ID fnr.
    SELECTION-SCREEN:
      COMMENT 40(5TEXT-exc FOR FIELD p_kz_e1             MODIF ID fnr,
      COMMENT 52(3TEXT-and FOR FIELD p_syst2             MODIF ID fnr,
        POSITION 58.
    PARAMETERS:
      p_syst2 LIKE tj02t-txt04                           MODIF ID fnr,
      p_sysh2 LIKE jest-stat                    NO-DISPLAY.
    SELECTION-SCREEN
        POSITION 71.

    PARAMETERS:
      p_kz_e2   LIKE rcosa-excl1                           MODIF ID fnr.
    SELECTION-SCREEN:
        COMMENT 65(5TEXT-exc FOR FIELD p_kz_e2             MODIF ID fnr.

    SELECTION-SCREEN END   OF LINE.

    SELECTION-SCREEN END OF BLOCK blk1.


    INITIALIZATION.
      PERFORM frm_init_fcat.

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_syst1.
      PERFORM val_req_status IN PROGRAM ppio_entry IF FOUND USING 'P_SYST1' CHANGING p_syst1 p_sysh1.

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_syst2.
      PERFORM val_req_status IN PROGRAM ppio_entry IF FOUND USING 'P_SYST2' CHANGING p_syst2 p_sysh2.

    AT SELECTION-SCREEN ON p_syst1.
      PERFORM system_state_check IN PROGRAM ppio_entry IF FOUND USING yx CHANGING p_syst1 p_sysh1.

    AT SELECTION-SCREEN ON p_syst2.
      PERFORM system_state_check IN PROGRAM ppio_entry IF FOUND USING yx CHANGING p_syst2 p_sysh2.


    START-OF-SELECTION.
      PERFORM frm_get_data.

    END-OF-SELECTION.
      PERFORM frm_show_data.


    FORM frm_init_fcat.
      DATA: ls_fcat TYPE lvc_s_fcat.
      gs_layo-zebra 'X'.
      gs_layo-cwidth_opt 'X'.
      gs_layo-box_fname 'BOX'.
      gs_layo-stylefname 'FSTYLE'.
      gs_layo-info_fname 'RCOL'.

      DEFINE mro_fcat.
        CLEAR: ls_fcat.
        ls_fcat-fieldname = &1.
        ls_fcat-coltext = &2.
        ls_fcat-scrtext_l = &2.
        ls_fcat-scrtext_m = &2.
        ls_fcat-scrtext_s = &2.
        ls_fcat-no_zero 'X'.
        TRANSLATE ls_fcat-fieldname TO UPPER CASE.
        IF &3 NE space.
          ls_fcat-ref_field = ls_fcat-fieldname.
          ls_fcat-ref_table = &3.
          TRANSLATE ls_fcat-ref_table TO UPPER CASE.
        ENDIF.
        IF &1 EQ 'aufnr'" OR &1 EQ 'aufnr'.
          ls_fcat-hotspot 'X'.
          ls_fcat-key 'X'.
        ENDIF.
        ls_fcat-edit = &4.
        TRANSLATE ls_fcat-ref_table TO UPPER CASE.
        APPEND ls_fcat TO gt_fcat.
      END-OF-DEFINITION.

      mro_fcat 'aufnr' '生产订单' 'afko' space.
      mro_fcat 'werks' '工厂' space space.
      mro_fcat 'plnbez' '物料编码' space space.  mro_fcat 
    'maktx' '物料描述' space space.  mro_fcat 
    'wrkst' '基本物料' space space.  mro_fcat 
    'zcpgg' '产品规格' space space.  mro_fcat 
    'gamng' '生产订单数量' 'afko' space.  mro_fcat 
    'gmein' '单位' 'afko' space.  mro_fcat 
    'lmnga' '确认数量' 'afru' 'X'.  mro_fcat 
    'xmnga' '确认废品数量' 'afru' 'X'.  mro_fcat 
    'rmnga' '确认返工数量' 'afru' 'X'.  mro_fcat 
    'ablad' '卸货点' 'afpo' space.  mro_fcat 
    'isdd' '执行开始日期' 'afru' 'X'.  mro_fcat 
    'iedd' '执行完成日期' 'afru' 'X'.  mro_fcat 
    'budat' '过账日期' 'afru' 'X'.  mro_fcat 
    'lmngv' '已确认数量' 'afvv' space.  mro_fcat 
    'xmngv' '已确认废品数量' 'afvv' space.  mro_fcat 
    'rmngv' '已确认返工数量' 'afvv' space.  mro_fcat 
    'ltxa1' '确认文本' 'afru' 'X'.  mro_fcat 
    'statu' '系统状态' space space.  mro_fcat 
    'msg' '消息' space space.

    ENDFORM.



    *&---------------------------------------------------------------------*
    *& Form FRM_GET_DATA
    *&---------------------------------------------------------------------*
    *& text
    *&---------------------------------------------------------------------*
    *& -->  p1        text
    *& <--  p2        text
    *&---------------------------------------------------------------------*
    FORM frm_get_data .  
    DATA result3 TYPE string.  
    DATA c_test3 TYPE string.  
    DATA c_test6 TYPE string.                              "add by pengxz 20180903  
    DATA result2(4TYPE c.  
    DATA result TYPE string.  

    CONSTANTS:c_test TYPE string VALUE '002920|000178|002154|002154|002850|000178|000487|000054|003091|002553'.  
    CONSTANTS:c_zfc TYPE string VALUE 'sap_'.  
    DATA:c_test1 TYPE string .  
    DATA: lv_timestamp TYPE timestamp"UTC Time Stamp in Short Form (YYYYMMDDhhmmss)  
    GET TIME STAMP FIELD lv_timestamp.  
    DATA: lv_timestamp1 TYPE string .  c_test1 
    = c_zfc && lv_timestamp .  

    CONSTANTS:c_test2 TYPE string VALUE 'SAP消息通知'.  
    DATA: ls_style  TYPE lvc_s_styl.  
    DATA: lv_stprs TYPE stprs .  
    DATA: ls_output LIKE LINE OF gt_output,        lv_delfag 
    TYPE xfeld,        lv_index  
    LIKE sy-tabix.  

    DATA: lt_afvv  TYPE STANDARD TABLE OF tp_afvv,        ls_afvv  
    LIKE LINE OF lt_afvv,        lt_statu 

    TYPE STANDARD TABLE OF tp_statu,        ls_statu 
    LIKE LINE OF lt_statu,        lt_jest  

    TYPE STANDARD TABLE OF jest,        ls_jest  
    LIKE LINE OF lt_jest.  

    RANGES: rg_aufpl FOR afko-aufpl,          rg_objnr 
    FOR aufk-objnr,          rg_stati 
    FOR jest-stat,          rg_state 
    FOR jest-stat.  

    IF p_sysh1 NE space.    
    IF p_kz_e1 EQ space.      rg_stati
    -sign 'I'.      rg_stati
    -option 'EQ'.      rg_stati
    -low = p_sysh1.      
    APPEND rg_stati.    
    ELSE.      rg_state
    -sign 'I'.      rg_state
    -option 'EQ'.      rg_state
    -low = p_sysh1.      
    APPEND rg_state.    
    ENDIF.  
    ENDIF.  

    IF p_sysh2 NE space.    
    IF p_kz_e2 EQ space.      rg_stati
    -sign 'I'.      rg_stati
    -option 'EQ'.      rg_stati
    -low = p_sysh2.      
    APPEND rg_stati.    
    ELSE.      rg_state
    -sign 'I'.      rg_state
    -option 'EQ'.      rg_state
    -low = p_sysh2.      
    APPEND rg_state.    
    ENDIF.  
    ENDIF.  

    "排除技术性完成的,已删除的,已关闭的,已报工的  
    CLEAR: rg_state .  rg_state
    -sign 'I'.  rg_state
    -option 'EQ'.  rg_state
    -low 'I0045'.  
    APPEND rg_state.  

    CLEAR: rg_state .  rg_state
    -sign 'I'.  rg_state
    -option 'EQ'.  rg_state
    -low 'I0013'.  
    APPEND rg_state.  

    CLEAR: rg_state .  rg_state
    -sign 'I'.  rg_state
    -option 'EQ'.  rg_state
    -low 'I0046'.  
    APPEND rg_state.  

    CLEAR: rg_state .  rg_state
    -sign 'I'.  rg_state
    -option 'EQ'.  rg_state
    -low 'I0009'.  
    APPEND rg_state.

    *  CLEAR: rg_state .
    *  rg_state-sign = 'I'.
    *  rg_state-option = 'EQ'.
    *  rg_state-low = 'I0010'.
    *  APPEND rg_state.  

    SELECT afko~aufnr afpo~matnr as plnbez makt~maktx mara~wrkst mara~zcpgg aufk~werks         afko
    ~gamng afko~gmein afko~aufpl aufk~objnr afpo~ablad    
    INTO CORRESPONDING FIELDS OF TABLE gt_output    
    FROM afko   INNER 
    JOIN afpo      
    ON afko~aufnr EQ afpo~aufnr   INNER 
    JOIN aufk      
    ON afko~aufnr EQ aufk~aufnr   INNER 
    JOIN makt      
    ON afpo~matnr EQ makt~matnr     
    AND makt~spras EQ sy-langu   INNER 
    JOIN mara ON afpo~matnr EQ mara~matnr   
    WHERE afko~aufnr IN s_aufnr     
    AND afko~fevor IN s_fevor     
    AND afko~gstrp IN s_gstrp     
    AND afko~gltrp IN s_gltrp     
    AND aufk~auart IN s_auart     
    AND aufk~werks EQ p_werks     
    AND aufk~autyp EQ '10'     
    AND aufk~loekz EQ space.  

    CHECK sy-subrc EQ 0.  
    LOOP AT gt_output INTO ls_output.    
    IF rg_aufpl[] IS INITIAL OR ls_output-aufpl NOT IN rg_aufpl.      rg_aufpl
    -sign 'I'.      rg_aufpl
    -option 'EQ'.      rg_aufpl
    -low = ls_output-aufpl.      
    APPEND rg_aufpl.    
    ENDIF.    

    IF rg_objnr[] IS INITIAL OR ls_output-objnr NOT IN rg_objnr.      rg_objnr
    -sign 'I'.      rg_objnr
    -option 'EQ'.      rg_objnr
    -low = ls_output-objnr.      
    APPEND rg_objnr.    
    ENDIF.  
    ENDLOOP.  

    IF rg_objnr[] IS NOT INITIAL.    
    SELECT jest~objnr jest~stat tj02t~txt04 tj02t~txt30           tj02
    ~nodis      
    INTO CORRESPONDING FIELDS OF TABLE lt_statu      
    FROM jest INNER JOIN tj02t        
    ON jest~stat EQ tj02t~istat       
    AND tj02t~spras EQ sy-langu     INNER 
    JOIN tj02        
    ON jest~stat EQ tj02~istat       
    AND tj02~nodis EQ space     
    WHERE jest~objnr IN rg_objnr       
    AND jest~inact EQ space     
    ORDER BY jest~objnr ASCENDING tj02t~txt04 DESCENDING.  
    ENDIF.  

    IF rg_aufpl[] IS NOT INITIAL.    
    SELECT afvv~aufpl afvv~aplzl afvv~gmnga afvc~objnr           afvv
    ~lmnga afvv~xmnga afvv~rmnga      
    INTO CORRESPONDING FIELDS OF TABLE lt_afvv      
    FROM afvv INNER JOIN afvc        
    ON afvv~aufpl EQ afvc~aufpl       
    AND afvv~aplzl EQ afvc~aplzl     
    WHERE afvv~aufpl IN rg_aufpl       
    AND NOT EXISTS SELECT * FROM jest WHERE objnr EQ afvc~objnr AND stat EQ 'I0013' AND inact EQ space )     
    ORDER BY afvv~aufpl ASCENDING afvv~aplzl DESCENDING.  
    ENDIF.  


    LOOP AT gt_output INTO ls_output.    lv_index 
    = sy-tabix.    
    CLEAR: lv_delfag.    
    READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_output-aufpl.    
    IF sy-subrc EQ 0.      ls_output
    -lmngv = ls_afvv-lmnga.      ls_output
    -xmngv = ls_afvv-xmnga.      ls_output
    -rmngv = ls_afvv-rmnga.    
    ENDIF.    ls_output
    -isdd = sy-datum.    ls_output
    -iedd = sy-datum.    ls_output
    -budat = sy-datum.    ls_output
    -lmnga = ls_output-gamng ( ls_output-lmngv + ls_output-xmngv + ls_output-rmngv ).    
    LOOP AT lt_statu INTO ls_statu WHERE objnr EQ ls_output-objnr" AND stat IN rg_stat.      
    IF ls_output-statu EQ space.        ls_output
    -statu = ls_statu-txt04.      
    ELSE.        
    CONCATENATE ls_output-statu ls_statu-txt04 INTO ls_output-statu SEPARATED BY space.      
    ENDIF.    
    ENDLOOP.    

    " 排除范围内    
    IF rg_state[] IS NOT INITIAL.      
    CLEAR: lv_delfag.      
    LOOP AT rg_state.        
    READ TABLE lt_statu WITH KEY objnr = ls_output-objnr stat = rg_state-low TRANSPORTING NO FIELDS.        
    IF sy-subrc EQ 0.          lv_delfag 
    'X'.          
    EXIT.        
    ENDIF.      
    ENDLOOP.      
    IF lv_delfag EQ 'X'.        
    DELETE gt_output INDEX lv_index.        
    CONTINUE.      
    ENDIF.    
    ENDIF.    

    " 只查询范围内    
    IF rg_stati[] IS NOT INITIAL.      
    CLEAR: lv_delfag.      
    LOOP AT rg_stati.        
    READ TABLE lt_statu WITH KEY objnr = ls_output-objnr stat = rg_stati-low TRANSPORTING NO FIELDS.        
    IF sy-subrc NE 0.          lv_delfag 
    'X'.          
    EXIT.        
    ENDIF.      
    ENDLOOP.      
    IF lv_delfag EQ 'X'.        
    DELETE gt_output INDEX lv_index.        
    CONTINUE.      
    ENDIF.    
    ENDIF.    

    CLEAR: lv_stprs .
    *    SELECT SINGLE stprs INTO lv_stprs FROM mbew WHERE matnr = ls_output-plnbez AND bwkey = '1000' .

    *    IF lv_stprs = 0 OR lv_stprs IS INITIAL .
    *      ls_output-msg = 'W:物料无标准成本,无法报工自动入库' .
    *      CLEAR: ls_output-fstyle, ls_output-fstyle[].
    *      ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
    *      INSERT ls_style INTO TABLE ls_output-fstyle.
    *    ENDIF .

    *    IF ls_output-msg = 'W:物料无标准成本,无法报工自动入库' .
    *      ls_output-rcol = 'C610' .
    *    ENDIF .    

    MODIFY gt_output FROM ls_output INDEX lv_index.  
    ENDLOOP.  
    CLEAR: c_test6 .  
    LOOP AT gt_output INTO ls_output WHERE rcol 'C610'.    
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'      
    EXPORTING        
    input  = ls_output-aufnr      
    IMPORTING        
    output = ls_output-aufnr.    result 
    = ls_output-aufnr && '*' && ls_output-plnbez.    
    IF c_test6 EQ space.      c_test6 
    = result.      
    CLEAR result.    
    ELSE.      
    "CONCATENATE '下列工单物料无标准成本'c_test3 result '成本核算后,请仓库再入库,谢谢!'INTO c_test3.      
    CONCATENATE c_test6 ';'result INTO c_test6.    
    ENDIF.    
    CLEAR: ls_output .  
    ENDLOOP.

    *  IF c_test6 IS NOT INITIAL .
    *    CLEAR: c_test3 .
    *    CONCATENATE '下列工单物料无标准成本''('c_test6 ')''成本核算后,请再报工入库,谢谢!' INTO c_test3.
    *
    *    CLEAR: result3 .
    *    CALL FUNCTION 'ZWXCP_MESSAGE'
    *      EXPORTING
    *        l_userid      = c_test
    *        l_messageid   = c_test1
    *        l_title       = c_test2
    *        l_description = c_test3
    *      IMPORTING
    *        e_c           = result3.
    *  ENDIF .
    ENDFORM.


    *&---------------------------------------------------------------------*
    *& Form FRM_SHOW_DATA
    *&---------------------------------------------------------------------*
    *& text
    *&---------------------------------------------------------------------*
    *& -->  p1        text
    *& <--  p2        text
    *&---------------------------------------------------------------------*
    FORM frm_show_data .  
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'    
    EXPORTING      i_callback_program       
    = sy-repid      i_callback_pf_status_set 
    'FRM_SET_STATUS'      i_callback_user_command  
    'FRM_USER_COMMAND'      is_layout_lvc            
    = gs_layo      it_fieldcat_lvc          
    = gt_fcat      i_save                   
    'A'    
    TABLES      t_outtab                 
    = gt_output    
    EXCEPTIONS      program_error            
    1      
    OTHERS                   2.  
    IF sy-subrc <> 0.
    * Implement suitable error handling here  
    ENDIF.
    ENDFORM.


    FORM frm_set_status USING rt_extab TYPE slis_t_extab.  
    SET PF-STATUS 'ZPF_001'.  

    DATA: lo_grid TYPE REF TO cl_gui_alv_grid.  
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'    
    IMPORTING      e_grid 
    = lo_grid.  

    CALL METHOD lo_grid->register_edit_event    
    EXPORTING      i_event_id 
    = cl_gui_alv_grid=>mc_evt_modified.  
    IF sy-subrc <> 0.  
    ENDIF.

    ENDFORM.


    FORM frm_user_command USING r_ucomm LIKE sy-ucomm                            rs_selfield 
    TYPE slis_selfield.  
    IF r_ucomm  EQ '&CHDR'.    
    PERFORM frm_prohdr_create.    rs_selfield
    -refresh 'X'.  
    ELSEIF r_ucomm EQ '&IC1'.    
    IF rs_selfield-fieldname EQ 'AUFNR' AND rs_selfield-value NE space.      
    SET PARAMETER ID 'ANR' FIELD rs_selfield-value.      
    CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.    
    ENDIF.  
    ENDIF.

    ENDFORM.


    FORM frm_prohdr_create.  

    DATA: ls_output LIKE LINE OF gt_output,        ls_style  
    TYPE lvc_s_styl,        lv_index  
    LIKE sy-tabix.  
    DATA: ls_return TYPE bapiret1,        lt_detrtn 
    TYPE STANDARD TABLE OF bapi_coru_return,        ls_detrtn 
    LIKE LINE OF lt_detrtn,        lt_hdrlev 
    TYPE STANDARD TABLE OF bapi_pp_hdrlevel,        ls_hdrlev 
    LIKE LINE OF lt_hdrlev.  
    DATA:lt_merry TYPE VALUE 'X'.  
    CLEAR: ls_return, lt_hdrlev, lt_hdrlev[].  
    LOOP AT gt_output INTO ls_output WHERE box 'X' AND msg ''.    lv_index 
    = sy-tabix.    
    CHECK ls_output-fstyle[] IS INITIAL.    
    CLEAR: ls_hdrlev, lt_hdrlev[], lt_detrtn, lt_detrtn[], ls_return.    ls_hdrlev

    -orderid = ls_output-aufnr.        " 订单号    ls_hdrlev
    -fin_conf '1'.                   " 自动最终确认    ls_hdrlev
    -postg_date = ls_output-budat.     " 过账日期    ls_hdrlev
    -conf_text = ls_output-ltxa1.      " 确认文本    ls_hdrlev
    -conf_quan_unit = ls_output-gmein" 单位    ls_hdrlev
    -exec_start_date = ls_output-isdd" 确认执行开始日期    ls_hdrlev
    -exec_fin_date = ls_output-iedd.   " 确认执行完成日期    ls_hdrlev
    -yield = ls_output-lmnga.          " 确认数量    ls_hdrlev
    -scrap = ls_output-xmnga.          " 确认废品数量    ls_hdrlev
    -rework = ls_output-rmnga.         " 确认返工数量    
    APPEND ls_hdrlev TO lt_hdrlev.


    *  IF lt_hdrlev[] IS INITIAL.
    *    MESSAGE e208(00) WITH '请选择还未报工的订单数据'.
    *    RETURN.
    *  ENDIF.
    *  CHECK lt_hdrlev[] IS NOT INITIAL.    
    CALL FUNCTION 'BAPI_PRODORDCONF_CREATE_HDR'      
    IMPORTING        
    return        = ls_return      
    TABLES        athdrlevels   
    = lt_hdrlev        detail_return 
    = lt_detrtn.    

    IF ls_return-type 'S' OR ls_return-type EQ space.      
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'        
    EXPORTING          
    wait 'X'.    
    ELSE.      
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.    
    ENDIF.

    *    LOOP AT gt_output INTO ls_output WHERE box = 'X'.
    *    
    LOOP AT lt_detrtn INTO ls_detrtn FROM 1.      ls_output
    -msg = ls_detrtn-message.    
    ENDLOOP.    
    IF ls_return-type 'S' OR ls_return-type EQ space.      
    CLEAR: ls_output-fstyle, ls_output-fstyle[].      ls_style
    -style = cl_gui_alv_grid=>mc_style_disabled.      
    INSERT ls_style INTO TABLE ls_output-fstyle.    
    ENDIF.    
    MODIFY gt_output FROM ls_output INDEX lv_index.    
    CLEAR: ls_output, ls_detrtn, ls_return .    
    CLEAR: lt_detrtn, lt_detrtn[] .
    *    ENDLOOP.  
    ENDLOOP.
    ENDFORM.

    社会很单纯,复杂的是人
  • 相关阅读:
    mysql 查看存储过程 并导出
    mysql 添加记录或者删除记录
    mysql 修改表的字段
    搭建docker私有仓库
    安装gitlab并配置邮箱
    Mac 安装MySQL-python
    android studio 调试安装
    给定日期求星期几
    数字三角形
    程序设计实训-课程表管理系统项目中遇到的问题
  • 原文地址:https://www.cnblogs.com/coderfarmer/p/14641492.html
Copyright © 2011-2022 走看看