* Function : To list stock take
* Download to dos:
* - use menu path List=>Save=>File...
* - select unconverted format
* - enter file name in dos format
REPORT ZPHYLIST LINE-SIZE 132 NO STANDARD PAGE HEADING
LINE-COUNT 65(001).
TABLES: ISEG,
IKPF,
MBEW.
SELECT-OPTIONS: S_IBLNR FOR IKPF-IBLNR,
S_WERKS FOR IKPF-WERKS,
S_LGORT FOR IKPF-LGORT,
S_MATNR FOR ISEG-MATNR,
S_GIDAT FOR IKPF-GIDAT DEFAULT SY-DATUM.
SELECTION-SCREEN SKIP.
PARAMETERS: C_XZAEL AS CHECKBOX DEFAULT 'X',
C_XDIFF AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN SKIP.
PARAMETERS: X_ZERO AS CHECKBOX.
DATA: P_WERKS LIKE IKPF-WERKS,
P_LGORT LIKE IKPF-LGORT,
W_DIFF LIKE ISEG-MENGE,
L_BTTL LIKE ISEG-MENGE,
L_PTTL LIKE ISEG-BUCHM,
L_DTTL LIKE ISEG-MENGE,
L_DVAL LIKE ISEG-DMBTR,
P_BTTL LIKE ISEG-MENGE,
P_PTTL LIKE ISEG-BUCHM,
P_DTTL LIKE ISEG-MENGE,
P_DVAL LIKE ISEG-DMBTR,
W_DMBTR LIKE ISEG-DMBTR,
W_UCOST TYPE P DECIMALS 4,
W_SPRICE TYPE P DECIMALS 4,
W_LEN TYPE I.
FORMAT INTENSIFIED OFF.
SELECT * FROM IKPF WHERE IBLNR IN S_IBLNR AND
WERKS IN S_WERKS AND
LGORT IN S_LGORT AND
GIDAT IN S_GIDAT AND
SOBKZ NE 'O'
ORDER BY WERKS LGORT IBLNR.
IF P_WERKS IS INITIAL.
P_WERKS = IKPF-WERKS.
P_LGORT = IKPF-LGORT.
ENDIF.
IF P_WERKS NE IKPF-WERKS.
SKIP.
FORMAT INTENSIFIED ON.
WRITE:/ ' ** ', P_LGORT, 'Location Total',
056(14) L_PTTL,
072(14) L_BTTL,
088(14) L_DTTL,
118(14) L_DVAL.
SKIP.
FORMAT COLOR COL_TOTAL.
WRITE:/ ' **** ', P_WERKS, 'Plant Total',
056(14) P_PTTL,
072(14) P_BTTL,
088(14) P_DTTL,
118(14) P_DVAL.
FORMAT INTENSIFIED OFF.
FORMAT COLOR OFF.
P_WERKS = IKPF-WERKS.
P_LGORT = IKPF-LGORT.
CLEAR: L_BTTL, P_BTTL, L_PTTL, P_PTTL, L_DTTL, P_DTTL,
L_DVAL, P_DVAL.
NEW-PAGE.
ENDIF.
IF P_LGORT NE IKPF-LGORT.
FORMAT INTENSIFIED ON.
ULINE AT /46(86).
WRITE:/ ' ** ', P_LGORT, 'Location Total',
056(14) L_PTTL,
072(14) L_BTTL,
088(14) L_DTTL,
118(14) L_DVAL.
FORMAT INTENSIFIED OFF.
SKIP.
SKIP.
P_LGORT = IKPF-LGORT.
CLEAR: L_BTTL, L_PTTL, L_DTTL, L_DVAL.
ENDIF.
SELECT * FROM ISEG WHERE IBLNR = IKPF-IBLNR AND
XZAEL = C_XZAEL AND
XDIFF = C_XDIFF
ORDER BY ZEILI.
IF ISEG-XNZAE = 'X'.
CONTINUE.
ENDIF.
W_LEN = STRLEN( ISEG-MATNR ).
IF W_LEN = 1.
CONTINUE.
ENDIF.
CHECK S_MATNR.
W_DIFF = ISEG-MENGE - ISEG-BUCHM.
IF X_ZERO NE 'X'.
CHECK W_DIFF NE 0.
ENDIF.
CLEAR: MBEW-VPRSV, W_UCOST.
IF ISEG-XDIFF NE 'X'.
CLEAR MBEW-VPRSV.
SELECT SINGLE * FROM MBEW WHERE MATNR
= ISEG-MATNR AND
BWKEY = ISEG-WERKS.
IF MBEW-VPRSV = 'S'.
W_UCOST = MBEW-STPRS / MBEW-PEINH.
ELSE.
W_UCOST = MBEW-VERPR / MBEW-PEINH.
ENDIF.
W_DMBTR = W_DIFF * W_UCOST.
ELSE.
IF W_DIFF < 0.
W_DMBTR = ISEG-DMBTR * -1.
ELSE.
W_DMBTR = ISEG-DMBTR.
ENDIF.
W_UCOST = W_DMBTR / W_DIFF.
ENDIF.
WRITE: /001 ISEG-WERKS,
008 ISEG-IBLNR,
020 ISEG-ZEILI,
026 ISEG-MATNR,
046 ISEG-LGORT,
056(14) ISEG-MENGE,
072(14) ISEG-BUCHM,
088(14) W_DIFF NO-ZERO,
104(12) W_UCOST NO-ZERO,
118(14) W_DMBTR NO-ZERO.
* if iseg-xloek = 'X'.
* write: 118 '** deleted item'.
* else.
L_BTTL = L_BTTL + ISEG-BUCHM.
P_BTTL = P_BTTL + ISEG-BUCHM.
L_PTTL = L_PTTL + ISEG-MENGE.
P_PTTL = P_PTTL + ISEG-MENGE.
L_DVAL = L_DVAL + W_DMBTR.
P_DVAL = P_DVAL + W_DMBTR.
L_DTTL = L_DTTL + W_DIFF.
P_DTTL = P_DTTL + W_DIFF.
CLEAR: W_SPRICE, W_UCOST.
ENDSELECT.
ENDSELECT.
FORMAT INTENSIFIED ON.
ULINE AT /46(86).
WRITE:/ ' ** ', P_LGORT, 'Location Total',
056(14) L_PTTL,
072(14) L_BTTL,
088(14) L_DTTL,
118(14) L_DVAL.
SKIP.
FORMAT COLOR COL_TOTAL.
WRITE:/ ' **** ', P_WERKS, 'Plant Total',
056(14) P_PTTL,
072(14) P_BTTL,
088(14) P_DTTL,
118(14) P_DVAL.
FORMAT INTENSIFIED OFF.
FORMAT COLOR OFF.
TOP-OF-PAGE.
WRITE: / SY-DATUM, SY-UZEIT,
50 'Physical Inventory
Documents', 110 SY-UNAME,
120 'Page', SY-PAGNO.
SKIP.
ULINE.
WRITE:/001 'Plant',
008 'Doc No',
020 'Line',
026 'Material',
046 'Location',
056 '
Phy Inv',
072 '
Book Bal',
088 '
Difference',
104 ' Unit Cost',
118 '
Diff (S$)'.
ULINE.
SKIP.
Return to SAP Hints and Tips on Configuration and
ABAP/4 Programming