SAP MRP MD04运行结果展示

来源:互联网 发布:xmind mac 编辑:程序博客网 时间:2024/04/28 05:08

内容是MD04中需求和库存的内容。MD04将一个物料显示了一张表,我们现在需要的是一个物料一行的表。

        你可以使用function:MD_STOCK_REQUIREMENTS_LIST_API。输入物料号工厂号,他下面所有的表头和行项目信息全部都会取出来。你只需要把function返回给你的信息组织一下,选取一部分放到报表就可以了。

        选择屏幕输入:

        物料号 单值

        工厂        单值 默认0080

        MRP area 单值 默认0080

 

        报表展示的信息有:

1.        MD04中所有信息,除此之外还包括:

2.        表头内容:

        Material Number

Plant

Deletion Indicator

Material Description (Short Text)

Material Type

Material Group

Base Unit of Measure

Plant-Specific Material Status

MRP Type

Procurement Type

Special procurement type

Mixed MRP indicator

3.        表行内内容,要求,一个需求一行,MD04内所有有的内容需要在报表里,除此之外,另加入:

需求产生日期,需求产生,需求计划单日期,计划单需求释放日期,采购订单生成日期或生产订单生成日期,发货日期等。总之流程每一个步骤的日期都加上。这些在function返回的内容里都有,你可以拿测试数据取出来看,然后添加到报表中。

报表要求生成ALV,并且双击点击物料的时候,可以链接到物料主数据查看页面(MM03);点击工单号的时候,可以链接到该工单浏览页面(CO03),点击采购申请或采购订单时,可以链接到采购申请或采购单浏览界面(ME23N)。

[html] view plain copy
  1. *&---------------------------------------------------------------------*  
  2. *& Report  XXXXXXXX  
  3. *&---------------------------------------------------------------------*  
  4. *&PROGRAM NAME : <ZPP003>  
  5. *---------------------------------------------------------------------*  
  6. * VERSION:            V1.0  
  7. * DATE CREATED :      2016/07/26  
  8. * CREATED BY   :      Ma Haifeng  
  9. * TRANSPORT REQUEST:  XXXXXXXXXX  
  10. * DESCRIPTION  :      Stock Requirements List  
  11. * request raised by:  Li honghua  
  12.   
  13. REPORT zpp003.  
  14.   
  15. ********************************  
  16. * INNITIALIZATION  
  17. ********************************  
  18.   
  19. TABLES : marc,mdlv.  
  20.   
  21. TYPES : BEGIN OF ltype_marc,  
  22.         matnr TYPE marc-matnr,  
  23.         werks TYPE marc-werks,  
  24.         END OF ltype_marc.  
  25.   
  26. TYPES : BEGIN OF ltype_malv,  
  27.         berid TYPE mdlv-berid,  
  28.         END OF ltype_malv.  
  29.   
  30. DATA : lt_display TYPE TABLE OF zspp_require_list,  
  31.        ls_display LIKE LINE OF lt_display.  
  32.   
  33. ********************************  
  34. * SELECTION-SCREEN  
  35. ********************************  
  36.   
  37. SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME.  
  38.   
  39. PARAMETER m_matnr LIKE  marc-matnr.  
  40. PARAMETER m_werks LIKE  marc-werks DEFAULT '0080'.  
  41.   
  42. SELECTION-SCREEN END OF BLOCK blk01.  
  43.   
  44. PERFORM frm_get_data.  
  45.   
  46. PERFORM frm_alv_display.  
  47.   
  48. ********************************  
  49. * START OF SELECTION  
  50. ********************************  
  51. *&---------------------------------------------------------------------*  
  52. *&      Form  FRM_GET_DATA  
  53. *&---------------------------------------------------------------------*  
  54. *       text  
  55. *----------------------------------------------------------------------*  
  56. *  -->  p1        text  
  57. *  <--  p2        text  
  58. *----------------------------------------------------------------------*  
  59. FORM frm_get_data .  
  60.   
  61.   DATA : lt_innerinfo TYPE TABLE OF mdez,  
  62.          ls_innerinfo LIKE LINE OF lt_innerinfo.  
  63.   
  64.   DATA : lt_headinfo TYPE TABLE OF mt61d,  
  65.          ls_headinfo LIKE LINE OF lt_headinfo.  
  66.   
  67.   DATA : lt_innerinfo2 TYPE TABLE OF mdps,  
  68.          ls_innerinfo2 LIKE LINE OF lt_innerinfo2.  
  69.   
  70.   CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'  
  71.     EXPORTING  
  72.       matnr                    = m_matnr  
  73.       werks                    = m_werks  
  74.     IMPORTING  
  75.       e_mt61d                  = ls_headinfo  
  76. *     E_MDKP                   =  
  77. *     E_CM61M                  =  
  78. *     E_MDSTA                  =  
  79. *     E_ERGBZ                  =  
  80.     TABLES  
  81.       mdpsx                    = lt_innerinfo2  
  82.       mdezx                    = lt_innerinfo  
  83. *     MDSUX                    =  
  84.     EXCEPTIONS  
  85.       material_plant_not_found = 1  
  86.       plant_not_found          = 2  
  87.       OTHERS                   = 3.  
  88.   
  89.   
  90.   LOOP AT lt_innerinfo INTO ls_innerinfo.  
  91.   
  92.     ls_display-dat00 = ls_innerinfo-dat00.  
  93.     ls_display-delb0 = ls_innerinfo-delb0.  
  94.     ls_display-extra = ls_innerinfo-extra.  
  95.     ls_display-umdat = ls_innerinfo-umdat.  
  96.     ls_display-auskt = ls_innerinfo-auskt.  
  97.     ls_display-mng01 = ls_innerinfo-mng01.  
  98.     ls_display-mng02 = ls_innerinfo-mng02.  
  99.     ls_display-lgort = ls_innerinfo-lgort.  
  100.     ls_display-dat01 = ls_innerinfo-dat01.  
  101.     ls_display-dat02 = ls_innerinfo-dat02.  
  102.     ls_display-dat03 = ls_innerinfo-dat03.  
  103.   
  104.     APPEND ls_display TO lt_display.  
  105.   
  106.   ENDLOOP.  
  107.   
  108.   LOOP AT lt_display INTO ls_display WHERE extra NE 'Safety Stock' .  
  109.   
  110.     READ TABLE lt_innerinfo2 INTO ls_innerinfo2 INDEX sy-tabix - 1.  
  111.     IF ls_innerinfo2-delkz = 'LA'.  "//采购订单  
  112.       ls_display-delnr = ls_innerinfo2-delnr.  
  113.     ELSEIF ls_innerinfo2-delkz = 'VC'.  "//销售订单  
  114.       ls_display-zdelnr = ls_innerinfo2-delnr.  
  115.     ELSEIF ls_innerinfo2-delkz = 'AR'.  "//工单  
  116.       ls_display-del12 = ls_innerinfo2-del12.  
  117.     ENDIF.  
  118.   
  119.     MODIFY lt_display FROM ls_display. "//index sy-tabix.  
  120.   
  121.   ENDLOOP.  
  122.   
  123.   LOOP AT lt_display INTO ls_display.  
  124.   
  125.     ls_display-matnr = ls_headinfo-matnr.  
  126.     ls_display-werks = ls_headinfo-werks.  
  127.     ls_display-lvorm = ls_headinfo-lvorm.  
  128.     ls_display-maktx = ls_headinfo-maktx.  
  129.     ls_display-mtart = ls_headinfo-mtart.  
  130.     ls_display-matkl = ls_headinfo-matkl.  
  131.     ls_display-meins = ls_headinfo-meins.  
  132.     ls_display-mmsta = ls_headinfo-mmsta.  
  133.     ls_display-dismm = ls_headinfo-dismm.  
  134.     ls_display-beskz = ls_headinfo-dismm.  
  135.     ls_display-sobsl = ls_headinfo-sobsl.  
  136.     ls_display-miskz = ls_headinfo-miskz.  
  137.   
  138.     MODIFY lt_display FROM ls_display.  
  139.   ENDLOOP.  
  140.   
  141. ENDFORM.                    " FRM_GET_DATA  
  142. *&---------------------------------------------------------------------*  
  143. *&      Form  FRM_ALV_DISPLAY  
  144. *&---------------------------------------------------------------------*  
  145. *       text  
  146. *----------------------------------------------------------------------*  
  147. *  -->  p1        text  
  148. *  <--  p2        text  
  149. *----------------------------------------------------------------------*  
  150. FORM frm_alv_display .  
  151.   
  152.   
  153.   DATA : ls_layout   TYPE slis_layout_alv.  
  154.   DATA : lt_fieldcat TYPE slis_t_fieldcat_alv.  
  155.   DATA : l_repid     TYPE sy-repid.  
  156.   PERFORM frm_build_fieldcat CHANGING lt_fieldcat.  
  157.   PERFORM frm_build_layout CHANGING ls_layout.  
  158.   
  159.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'  
  160.     EXPORTING  
  161.       i_callback_program       = sy-repid  
  162.       it_fieldcat              = lt_fieldcat  
  163.       is_layout                = ls_layout  
  164.       i_callback_user_command  = 'FRM_USER_COMMAND'  
  165. *     i_callback_pf_status_set = 'FRM_PF_STATUS_SET'  
  166.     TABLES  
  167.       t_outtab                 = lt_display.  
  168.   
  169. ENDFORM.                    " FRM_ALV_DISPLAY  
  170. *&---------------------------------------------------------------------*  
  171. *&      Form  frm_build_fieldcat  
  172. *&---------------------------------------------------------------------*  
  173. *       text  
  174. *----------------------------------------------------------------------*  
  175. *      -->CT_FIELDCAT  text  
  176. *----------------------------------------------------------------------*  
  177. FORM frm_build_fieldcat  CHANGING ct_fieldcat TYPE slis_t_fieldcat_alv.  
  178.   
  179.     DATA : ls_fieldcat LIKE LINE OF ct_fieldcat.  
  180.     REFRESH ct_fieldcat.  
  181.   
  182.   CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'  
  183.     EXPORTING  
  184.       i_structure_name = 'ZSPP_REQUIRE_LIST'  
  185.     CHANGING  
  186.       ct_fieldcat      = ct_fieldcat.  
  187.   
  188.    LOOP AT ct_fieldcat INTO ls_fieldcat.  
  189.   
  190.     CASE ls_fieldcat-fieldname.  
  191.       WHEN 'ZDELNR'.  
  192.         IF sy-langu = '1'.  
  193.           ls_fieldcat-seltext_l = '销售订单'.  
  194.         ELSE.  
  195.           ls_fieldcat-seltext_l = 'Sales Order'.  
  196.           ls_fieldcat-seltext_m = 'Sales Order'.  
  197.           ls_fieldcat-seltext_s = 'Sales Order'.  
  198.         ENDIF.  
  199.   
  200.       WHEN 'DELNR'.  
  201.         IF sy-langu = '1'.  
  202.           ls_fieldcat-seltext_l = '采购订单'.  
  203.         ELSE.  
  204.           ls_fieldcat-seltext_l = 'Purchase Order'.  
  205.           ls_fieldcat-seltext_m = 'Purchase Order'.  
  206.           ls_fieldcat-seltext_s = 'Purchase Order'.  
  207.         ENDIF.  
  208.   
  209.        WHEN 'DEL12'.  
  210.         IF sy-langu = '1'.  
  211.           ls_fieldcat-seltext_l = '工单'.  
  212.         ELSE.  
  213.           ls_fieldcat-seltext_l = 'Work Order'.  
  214.           ls_fieldcat-seltext_m = 'Work Order'.  
  215.           ls_fieldcat-seltext_s = 'Work Order'.  
  216.         ENDIF.  
  217.     ENDCASE.  
  218.   
  219.     MODIFY ct_fieldcat FROM ls_fieldcat TRANSPORTING seltext_l seltext_m seltext_s.  
  220.   
  221.   ENDLOOP.  
  222. ENDFORM.                    "frm_build_fieldcat  
  223. *&---------------------------------------------------------------------*  
  224. *&      Form  frm_build_layout  
  225. *&---------------------------------------------------------------------*  
  226. *       text  
  227. *----------------------------------------------------------------------*  
  228. *      -->CS_LAYOUT  text  
  229. *----------------------------------------------------------------------*  
  230. FORM frm_build_layout  CHANGING cs_layout TYPE slis_layout_alv.  
  231.   
  232.   CLEAR cs_layout.  
  233.   MOVE 'X' TO cs_layout-detail_popup.  
  234.   MOVE 'X' TO cs_layout-colwidth_optimize.  
  235.   MOVE 'COLOR' TO cs_layout-info_fieldname.  
  236. *  MOVE 'SELECTED' TO cs_layout-box_fieldname.  
  237.   
  238. ENDFORM.                    " FRM_BUILD_LAYOUT  
  239. *&---------------------------------------------------------------------*  
  240. *&      Form  sub_user_command  
  241. *&---------------------------------------------------------------------*  
  242. *       text  
  243. *----------------------------------------------------------------------*  
  244. *      -->R_UCOMM           text  
  245. *      -->US_SELECTE_FIELD  text  
  246. *----------------------------------------------------------------------*  
  247. FORM frm_user_command USING r_ucomm LIKE sy-ucomm  
  248.                       us_selecte_field TYPE slis_selfield.  
  249.   CASE r_ucomm.  
  250.     WHEN '&IC1'.                 "双击事件的功能码  
  251.       READ TABLE lt_display INTO ls_display INDEX us_selecte_field-tabindex.  
  252.   
  253.       IF us_selecte_field-fieldname = 'MATNR'.  
  254.   
  255.         SET PARAMETER ID 'MAT' FIELD ls_display-matnr.  
  256.         CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.  
  257.   
  258.       ELSEIF us_selecte_field-fieldname = 'DEL12'.  
  259.   
  260.         SET PARAMETER ID 'ANR' FIELD ls_display-del12.  
  261.         CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.  
  262.   
  263.       ELSEIF us_selecte_field-fieldname = 'DELNR'.  
  264.   
  265.         SET PARAMETER ID 'BES' FIELD ls_display-delnr.  
  266.         CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.  
  267.   
  268.       ELSEIF us_selecte_field-fieldname = 'ZDELNR'.  
  269.   
  270.         SET PARAMETER ID 'AUN' FIELD ls_display-zdelnr.  
  271.         CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.  
  272.   
  273.       ENDIF.  
  274.   
  275.   ENDCASE.  
  276. ENDFORM.                    " SUB_USER_COMMAND  

0 0
原创粉丝点击