*Candy 20090922 for check need input password?
CLEAR L_PLANT.
SELECT SINGLE * FROM ZCM04
WHERE DOCNUMBER = ZCM03-DOCNUMBER
AND DOCYEAR = ZCM03-DOCYEAR.
IF SY-SUBRC = 0.
SELECT SINGLE * FROM ZMM048
WHERE WERKS = ZCM04-WERKS
AND BJECT = 'PASSWORD'
AND VALUE = 'ACTIVE'.
IF SY-SUBRC = 0.
F_PWD ='Y'.
ELSE.
F_PWD ='N'.
ENDIF.
ENDIF.
ENDMODULE. " get_document_data INPUT
*&--------------------------------------------
*& Form get_order_components
*&----------------------------------------------------
MODULE CHECK_SLOC INPUT.
*DATA:L_CNT TYPE I.
*DATA:L_PLANT LIKE ZCM04-WERKS.
CLEAR L_PLANT.
SELECT SINGLE PWERK INTO L_PLANT
FROM AFPO WHERE AUFNR = ZCM03-AUFNR.
SELECT COUNT(*) INTO L_CNT
FROM T001L WHERE WERKS = L_PLANT
AND LGORT = T001L-LGORT.
IF L_CNT = 0.
MESSAGE S000 WITH 'Storage location' T001L-LGORT
' IS NOT EXIST.'.
ENDIF.
ENDMODULE.
*---------------------------------------------------
* FORM. EXPLORE_BOM
*
*---------------------------------------------------
* ........
*
*--------------------------------------------------
FORM. EXPLORE_BOM.
DATA:L_MATNR LIKE AFPO-MATNR.
DATA:L_PLANT LIKE AFPO-PWERK.
DATA:OUTPUT_BOM LIKE ZBOM_EXPL OCCURS 0 WITH HEADER LINE.
DATA:L_ENMNG LIKE ZCM03-ENMNG.
DATA:L_LGORT LIKE ZCM03-LGORT.
DATA:L_CHARG LIKE ZCM04-CHARG.
DATA:L_RSNUM LIKE RESB-RSNUM.
DATA:L_MEINS LIKE MARA-MEINS. "Storage unit
DATA:L_BOM_MEINS LIKE MARA-MEINS."bom unit
DATA:L_CHANGELV LIKE STPO-MENGE. "zhuan huan bi li
DATA:L_BOMDATE LIKE STPO-DATUV.
DATA:L_MPQ LIKE MARC-BSTRF.
DATA:L_QPA LIKE RESB-ESMNG.
DATA:L_MPQCNT TYPE I.
L_ENMNG = ZCM03-ENMNG.
L_BOMDATE = STPO-DATUV.
ZCM03-LGORT = T001L-LGORT.
L_LGORT = ZCM03-LGORT.
CLEAR L_RSNUM.
SELECT SINGLE RSNUM INTO (L_RSNUM) FROM AFKO WHERE
AUFNR = ZCM03-AUFNR.
CLEAR L_MATNR.
CLEAR L_PLANT.
SELECT MATNR WERKS INTO (L_MATNR,L_PLANT) FROM
RESB WHERE RSNUM = L_RSNUM.
CALL FUNCTION 'ZRFC_PP_PCE_0009'
EXPORTING
L_MATNR = L_MATNR
L_WERKS = L_PLANT
L_STLAN = '1'
L_DATUV = L_BOMDATE
L_DATUB = L_BOMDATE
L_MEHRS = '1'
L_FRONT_END = ' '
* L_WO = ' '
TABLES
T_ZBOM_EXPL = OUTPUT_BOM
.
* CLEAR L_MATNR.
* CLEAR L_PLANT.
ENDSELECT.
* CLEAR OUTPUT_BOM.
* CALL FUNCTION 'ZRFC_PP_PCE_0005'
* EXPORTING
* L_MATNR = IMAST-MATNR
* L_WERKS = IMAST-WERKS
* L_STLAN = '1'
* L_DATUV = SY-DATUM
* L_DATUB = SY-DATUM
* L_MEHRS = '1'
* L_FRONT_END = ' '
* TABLES
* T_ZBOM_EXPL = OUTPUT_BOM
* .
REFRESH ZCM04TAB. CLEAR ZCM04TAB.
LASTDOCITEM = 0.
DATA:L_SOBSL LIKE MARC-SOBSL.
LOOP AT OUTPUT_BOM.
CLEAR L_SOBSL.
CLEAR L_CHARG.
SELECT SINGLE SOBSL INTO L_SOBSL FROM MARC WHERE
MATNR = OUTPUT_BOM-IDNRK AND WERKS = L_PLANT.
IF L_SOBSL = '50'.
CONTINUE.
ENDIF.
ADD 1 TO LASTDOCITEM.
ZCM04TAB-DOCITEM = LASTDOCITEM.
ZCM04TAB-MATNR = OUTPUT_BOM-IDNRK.
ZCM04TAB-WERKS = L_PLANT.
ZCM04TAB-LGORT = L_LGORT.
CALL FUNCTION 'ZRFC_PP_PCE_0010'
EXPORTING
C_MATNR = OUTPUT_BOM-IDNRK
C_WERKS = L_PLANT
C_LGORT = L_LGORT
IMPORTING
C_CHARG = L_CHARG.
ZCM04TAB-CHARG = L_CHARG.
CLEAR L_MEINS.
CLEAR L_BOM_MEINS.
SELECT SINGLE MEINS INTO L_MEINS FROM MARA
WHERE MATNR = OUTPUT_BOM-IDNRK.
L_BOM_MEINS = OUTPUT_BOM-MEINS.
L_CHANGELV = 1.
IF L_MEINS <> L_BOM_MEINS.
IF L_MEINS = 'G' AND L_BOM_MEINS = 'KG'.
L_CHANGELV = 1000.
ELSE.
IF L_MEINS = 'KG' AND L_BOM_MEINS = 'G'.
L_CHANGELV = 1 / 1000.
ELSE.
MESSAGE S000 WITH 'change rate have not exists'.
ENDIF.
ENDIF.
ENDIF.
ZCM04TAB-ERFME = L_MEINS.
ZCM04TAB-PLFMG = OUTPUT_BOM-U_MENGE * L_ENMNG * L_CHANGELV.
ZCM04TAB-ERFMG = OUTPUT_BOM-U_MENGE * L_ENMNG * L_CHANGELV.
* ZCM04TAB-RSNUM = RESBTAB-RSNUM.
* ZCM04TAB-RSPOS = RESBTAB-RSPOS.
APPEND ZCM04TAB. CLEAR ZCM04TAB.
ENDLOOP.
DESCRIBE TABLE ZCM04TAB LINES ITEMCTRL-LINES.
ENDFORM.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666168/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666168/