Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

abap-mm

Former Member
0 Kudos

i want to get sstock for given material and quantity how to get and also for that batch

4 REPLIES 4

Former Member
0 Kudos

hi,

goto table mard and look for labst,

mard-labst --avaliable stock ,

regards,

vijay

Former Member
0 Kudos

tcode: se16

table name: MBEW

Former Member
0 Kudos

Hi

Check out this code:

Regards,

Raj

REPORT Z_MM_WEIGT_EVALU_REPORT LINE-SIZE 300 NO STANDARD PAGE HEADING.

TABLES: MARA, MARD, T001, T001W,T001L,MCHB,MSEG,MKPF,MBEW.

INCLUDE Z_MM_WGT_EVAL_REPORT_TOP.

SELECTION-SCREEN BEGIN OF BLOCK DATABASE-SELECTION

WITH FRAME .

SELECT-OPTIONS: MATNR FOR MARD-MATNR MEMORY ID MAT

MATCHCODE OBJECT MAT1,"Material no

BUKRS FOR T001-BUKRS MEMORY ID BUK, "CompanyCode

WERKS FOR T001W-WERKS MEMORY ID WRK, "Plant

  • LGORT FOR T001L-LGORT, "Storage loc

CHARG FOR MCHB-CHARG, "Batch Number

BWART FOR MSEG-BWART. "Movement ty

SELECTION-SCREEN SKIP.

SELECT-OPTIONS: DATUM FOR MKPF-BUDAT NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK DATABASE-SELECTION.

AT SELECTION-SCREEN.

IF DATUM-HIGH IS INITIAL.

MESSAGE E000(ZZ) WITH 'Enter the Closing date'.

ENDIF.

START-OF-SELECTION.

PERFORM GET_MATERIAL_DOCUMENTS.

PERFORM GET_CLOSING_BALANCES.

END-OF-SELECTION.

PERFORM PROCESS_OUTPUT.

TOP-OF-PAGE.

PERFORM FORM_TOP_OF_PAGE.

INCLUDE Z_MM_WGT_EVAL_REPORT_GET_CF01.

-


----


***INCLUDE Z_MM_WEIGT_EVALU_REPT_GET_CF01 .

----


FORM GET_CLOSING_BALANCES .

RANGES: G_RA_BWKEY FOR MBEW-BWKEY.

DATA: L_MSG TYPE REF TO IF_HRPA_MESSAGE_HANDLER.

DATA: L_SUMAMT TYPE MSEG-DMBTR.

FIELD-SYMBOLS: <FS> TYPE TY_MBEW.

G_RA_BWKEY[] = WERKS[].

****For Closing Balance

SELECT MATNR BWKEY BWTAR LBKUM SALK3

VPRSV

VERPR

STPRS

FROM MBEW

INTO TABLE I_MBEW

WHERE MATNR IN MATNR

AND BWKEY IN G_RA_BWKEY.

PERFORM UPDATE_MBEW.

****For Material Desc

SELECT MATNR MAKTX

FROM MAKT

INTO TABLE I_MAKT

WHERE MATNR IN MATNR.

****For storage location descip

SELECT WERKS

LGORT

LGOBE

INTO TABLE I_T001L

FROM T001L

WHERE WERKS IN WERKS.

  • AND LGORT IN LGORT.

***For plant descip

SELECT WERKS

NAME1

INTO TABLE I_T001W

FROM T001W

WHERE WERKS IN WERKS.

RANGES: R_DATE FOR SY-DATUM.

R_DATE-OPTION = 'BT'.

R_DATE-SIGN = 'I'.

IF DATUM-HIGH IS INITIAL.

R_DATE-LOW = DATUM-LOW.

ELSE.

R_DATE-LOW = DATUM-HIGH.

ENDIF.

DATA: L_DATE TYPE SY-DATUM,

L_OK TYPE C.

CALL FUNCTION 'HR_ECM_ADD_PERIOD_TO_DATE'

EXPORTING

ORIG_DATE = R_DATE-LOW

NUM_DAYS = '01'

MESSAGE_HANDLER = L_MSG

IMPORTING

RESULT_DATE = L_DATE

IS_OK = L_OK.

IF L_OK = 'X'.

R_DATE-LOW = L_DATE.

ENDIF.

IF DATUM-HIGH > SY-DATLO.

R_DATE-HIGH = DATUM-HIGH.

ELSE.

R_DATE-HIGH = SY-DATLO.

ENDIF.

APPEND R_DATE.

IF I_MKPF_CL[] IS NOT INITIAL.

SELECT MBLNR

MJAHR

MATNR

WERKS

LGORT

SHKZG

MENGE

DMBTR

FROM MSEG

INTO TABLE I_CLOSING

FOR ALL ENTRIES IN I_MKPF_CL

WHERE MBLNR = I_MKPF_CL-MBLNR

AND MJAHR = I_MKPF_CL-MJAHR .

IF SY-SUBRC = 0.

DELETE I_CLOSING WHERE WERKS NOT IN WERKS.

  • DELETE I_CLOSING WHERE LGORT NOT IN LGORT.

DELETE I_CLOSING WHERE MATNR NOT IN MATNR.

ENDIF.

ENDIF.

LOOP AT I_CLOSING.

I_CLOSEVAL-MATNR = I_CLOSING-MATNR.

I_CLOSEVAL-WERKS = I_CLOSING-WERKS.

I_CLOSEVAL-LGORT = I_CLOSING-LGORT.

I_CLOSEVAL-SHKZG = I_CLOSING-SHKZG.

I_CLOSEVAL-DMBTR = I_CLOSING-DMBTR.

I_CLOSEVAL-MENGE = I_CLOSING-MENGE.

COLLECT I_CLOSEVAL.

ENDLOOP.

***To Find closing value

SORT I_CLOSEVAL BY MATNR WERKS LGORT.

  • LOOP AT I_CLOSEVAL.

  • IF I_CLOSEVAL-SHKZG = 'S'.

  • L_SUMAMT = L_SUMAMT - I_CLOSEVAL-DMBTR.

  • ELSE.

  • L_SUMAMT = L_SUMAMT + I_CLOSEVAL-DMBTR.

  • ENDIF.

*

  • AT END OF WERKS.

  • READ TABLE I_MBEW ASSIGNING <FS>

  • WITH KEY MATNR = I_CLOSEVAL-MATNR

  • BWKEY = I_CLOSEVAL-WERKS.

  • IF SY-SUBRC = 0.

  • L_SUMAMT = ABS( L_SUMAMT ).

  • <FS>-SALK3 = <FS>-SALK3 - L_SUMAMT.

  • CLEAR L_SUMAMT.

  • ENDIF.

  • ENDAT.

  • ENDLOOP.

***Get the closing documents for the specific storage location

SELECT MATNR

WERKS

LABST

INSME

SPEME

INTO CORRESPONDING FIELDS OF TABLE I_MARD

FROM MARD

WHERE MATNR IN MATNR AND

WERKS IN WERKS.

  • AND LGORT IN LGORT.

ENDFORM. " get_closing_balances

&----


*& Form get_material_documents

&----


FORM GET_MATERIAL_DOCUMENTS.

RANGES: R_BWART FOR MSEG-BWART.

FIELD-SYMBOLS: <FS> TYPE TY_MATDOC.

FIELD-SYMBOLS: <FS1> TYPE TY_MATDOC.

SELECT MBLNR

MJAHR

BUDAT

FROM MKPF INTO TABLE I_MKPF

WHERE BUDAT GE DATUM-LOW.

I_MKPF_CL[] = I_MKPF[].

***Getting the current documents

DELETE I_MKPF WHERE BUDAT NOT IN DATUM. "R_DATE.

***Getting the closing balance documents

DELETE I_MKPF_CL WHERE BUDAT IN DATUM.

CHECK I_MKPF[] IS NOT INITIAL.

SELECT

MBLNR

MJAHR

ZEILE

BWART

MATNR

WERKS

LGORT

CHARG

BUKRS

MENGU

SHKZG

MENGE

MEINS

DMBTR

DMBUM

SMBLN

SJAHR

SMBLP

FROM MSEG

INTO CORRESPONDING FIELDS OF TABLE I_MATDOC

FOR ALL ENTRIES IN I_MKPF

WHERE MBLNR = I_MKPF-MBLNR

AND MJAHR = I_MKPF-MJAHR.

IF SY-SUBRC = 0.

DELETE I_MATDOC WHERE BUKRS NOT IN BUKRS.

DELETE I_MATDOC WHERE MATNR NOT IN MATNR.

DELETE I_MATDOC WHERE WERKS NOT IN WERKS.

  • DELETE I_MATDOC WHERE LGORT NOT IN LGORT.

DELETE I_MATDOC WHERE CHARG NOT IN CHARG.

DELETE I_MATDOC WHERE BWART NOT IN BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '321'.

APPEND R_BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '322'.

APPEND R_BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '343'.

APPEND R_BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '344'.

APPEND R_BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '349'.

APPEND R_BWART.

R_BWART-OPTION = 'EQ'.

R_BWART-SIGN = 'I'.

R_BWART-LOW = '350'.

APPEND R_BWART.

  • DELETE I_MATDOC WHERE BWART IN R_BWART. "Commented by Raj

SORT I_MATDOC DESCENDING BY SMBLN .

*- Commented by Raj on 18.07.2005

  • LOOP AT I_MATDOC ASSIGNING <FS> WHERE SMBLN IS NOT INITIAL.

*

  • READ TABLE I_MATDOC ASSIGNING <FS1> WITH KEY MBLNR = <FS>-SMBLN.

  • IF SY-SUBRC = 0.

  • CLEAR: <FS>-MBLNR, <FS1>-MBLNR.

  • ENDIF.

*

  • ENDLOOP.

DELETE I_MATDOC WHERE MBLNR IS INITIAL.

ENDIF.

*- Inserted by Raj on 18.07.2005

*- Update I_MATDOC with Material Type (MTART)

LOOP AT I_MATDOC.

CLEAR MARA-MTART.

SELECT SINGLE MTART INTO MARA-MTART

FROM MARA

WHERE MATNR = I_MATDOC-MATNR.

IF SY-SUBRC = 0.

I_MATDOC-MTART = MARA-MTART.

MODIFY I_MATDOC INDEX SY-TABIX TRANSPORTING MTART.

ENDIF.

ENDLOOP.

ENDFORM. " get_material_documents

&----


*& Form process_output

&----


FORM PROCESS_OUTPUT .

FIELD-SYMBOLS: <FS> TYPE TY_MATDOC.

DATA: REC_OUTPUT TYPE TY_OUTPUT,

V_KWERT TYPE KWERT,

L_OPNQTYSUM TYPE MSEG-MENGE,

L_QPNAMTSUM TYPE NETWR,

L_CLQTYSUM TYPE MSEG-MENGE,

L_RCQTYSUM TYPE MSEG-MENGE,

L_ISQTYSUM TYPE MSEG-MENGE,

L_RCAMTSUM TYPE NETWR,

L_ISAMTSUM TYPE NETWR,

L_CLAMTSUM TYPE NETWR.

DATA: L_POPER(2) TYPE N. " Added by Raj on 15.07.2005

*- Inserted by Raj on 18.07.2005 to filter some materials

RANGES: R_MATNR FOR MARA-MATNR.

R_MATNR-OPTION = 'EQ'.

R_MATNR-SIGN = 'I'.

R_MATNR-LOW = '80800003'.

APPEND R_MATNR.

CLEAR R_MATNR-LOW.

R_MATNR-OPTION = 'EQ'.

R_MATNR-SIGN = 'I'.

R_MATNR-LOW = '80800012'.

APPEND R_MATNR.

CLEAR R_MATNR-LOW.

R_MATNR-OPTION = 'EQ'.

R_MATNR-SIGN = 'I'.

R_MATNR-LOW = '80800018'.

APPEND R_MATNR.

CLEAR R_MATNR-LOW.

DELETE I_MATDOC WHERE MATNR IN R_MATNR.

*- End of insertion

LOOP AT I_MATDOC ASSIGNING <FS>.

REC_OUTPUT-WERKS = <FS>-WERKS.

  • REC_OUTPUT-LGORT = <FS>-LGORT.

REC_OUTPUT-MATNR = <FS>-MATNR.

REC_OUTPUT-MTART = <FS>-MTART.

REC_OUTPUT-MEINS = <FS>-MEINS.

IF <FS>-SHKZG = 'S'.

REC_OUTPUT-RCPQTY = <FS>-MENGE.

REC_OUTPUT-RCPVAL = <FS>-DMBTR.

ELSE.

REC_OUTPUT-ISSQTY = <FS>-MENGE.

REC_OUTPUT-ISSVAL = <FS>-DMBTR.

ENDIF.

COLLECT REC_OUTPUT INTO I_OUTPUT.

CLEAR REC_OUTPUT.

ENDLOOP.

DELETE I_OUTPUT WHERE MTART IS INITIAL.

PERFORM POPULATE_MARD.

SORT I_MARD BY WERKS MATNR.

SORT I_OUTPUT BY WERKS MATNR.

PERFORM POPULATE_MATDOC.

*- Inserted by Raj on 15.07.2005

PERFORM CALCULATE_RECD_RATE.

*- End of insertion

SORT I_CLOSEVAL BY WERKS MATNR SHKZG.

*- Display Output

PERFORM DISPLAY_DATA.

ENDFORM. " process_output

&----


*& Form FORM_TOP_OF_PAGE

&----


FORM FORM_TOP_OF_PAGE .

FORMAT COLOR 6 INVERSE INTENSIFIED.

WRITE : /80 'NAGARJUNA FERTILIZERS AND CHEMICALS INDIA LIMITED' COLOR 6

INVERSE INTENSIFIED

,

/65 'Weighted Average Valuation Statement for the period',

DATUM-LOW, 'To', DATUM-HIGH.

FORMAT COLOR OFF.

SKIP 3.

ULINE.

FORMAT COLOR 4.

WRITE : /18 'Item Code ' ,

50 'Description',

100 'Uom',

115 '<--


Opening--


>',

158 '<--


Receipts--


>',

210 '<--


Issues--


>',

260 '<--


Closing--


>'.

WRITE : /115 'Quantity',

142 'Value',

160 'Quantity',

178 'Rate',

195 'Value',

210 'Quantity',

232 'Rate',

250 'Value',

262 'Quantity',

280 'Rate',

295 'Value'.

ENDFORM. " FORM_TOP_OF_PAGE

&----


*& Form CALCULATE_RECD_RATE

&----


  • Calculate the Recvd Rate

----


FORM CALCULATE_RECD_RATE .

DATA: L_INDEX LIKE SY-TABIX,

L_ISSRATE TYPE KWERT, "Issue rate

L_ISSQTY TYPE MSEG-MENGE, "Issue quantity

L_ISSVAL TYPE MSEG-DMBTR, "Issue value

L_RECDRATE TYPE KWERT, "Receved rate

L_RCPQTY TYPE MSEG-MENGE, "Recepts quantity

L_RCPVAL TYPE MSEG-DMBTR. "Receiving value

DATA: BEGIN OF L_MATDOC OCCURS 0,

BUKRS LIKE T001-BUKRS,

WERKS LIKE MSEG-WERKS,

MTART LIKE MARA-MTART, " Material Type

MATNR LIKE MSEG-MATNR,

MBLNR LIKE MKPF-MBLNR,

MJAHR LIKE MKPF-MJAHR,

VGART LIKE MKPF-VGART,

BLART LIKE MKPF-BLART,

BUDAT LIKE MKPF-BUDAT,

CPUDT LIKE MKPF-CPUDT,

CPUTM LIKE MKPF-CPUTM,

LBBSA LIKE T156M-LBBSA,

BWAGR LIKE T156S-BWAGR,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

ZEILE LIKE MSEG-ZEILE,

BWART LIKE MSEG-BWART,

CHARG LIKE MSEG-CHARG,

MENGU LIKE MSEG-MENGU,

SHKZG LIKE MSEG-SHKZG,

MENGE LIKE MSEG-MENGE,

MEINS LIKE MSEG-MEINS,

DMBTR LIKE MSEG-DMBTR,

DMBUM LIKE MSEG-DMBUM,

RETAIL(01) TYPE C,

OIGLCALC(01) TYPE C,

OIGLSKU(07) TYPE P DECIMALS 3,

SMBLN LIKE MSEG-SMBLN, " No. doc

SJAHR LIKE MSEG-SJAHR, " Year

SMBLP LIKE MSEG-SMBLP, " Item in doc

MAKTX LIKE MAKT-MAKTX,

END OF L_MATDOC.

LOOP AT I_MATDOC.

MOVE-CORRESPONDING I_MATDOC TO L_MATDOC.

APPEND L_MATDOC.

CLEAR L_MATDOC.

ENDLOOP.

SORT L_MATDOC BY BUKRS WERKS MTART MATNR.

LOOP AT L_MATDOC.

AT NEW MTART.

CLEAR: L_RECDRATE, L_RCPQTY, L_RCPVAL,

L_ISSRATE, L_ISSQTY, L_ISSVAL.

ENDAT.

IF L_MATDOC-DMBTR > 0.

IF L_MATDOC-SHKZG = 'S'.

L_RCPQTY = L_RCPQTY + L_MATDOC-MENGE.

L_RCPVAL = L_RCPVAL + L_MATDOC-DMBTR.

ELSEIF L_MATDOC-SHKZG = 'H'.

L_ISSQTY = L_ISSQTY + L_MATDOC-MENGE.

L_ISSVAL = L_ISSVAL + L_MATDOC-DMBTR.

ENDIF.

ENDIF.

AT END OF MTART.

READ TABLE L_MATDOC INDEX SY-TABIX.

IF L_RCPQTY > 0.

L_RECDRATE = L_RCPVAL / L_RCPQTY.

ENDIF.

IF L_ISSQTY > 0.

L_ISSRATE = L_ISSVAL / L_ISSQTY.

ENDIF.

*- Read I_output and modify the receivables rate

READ TABLE I_OUTPUT WITH KEY WERKS = L_MATDOC-WERKS

  • LGORT = L_MATDOC-LGORT

MATNR = L_MATDOC-MATNR

BINARY SEARCH.

IF SY-SUBRC = 0.

L_INDEX = SY-TABIX.

I_OUTPUT-RCPRAT = L_RECDRATE.

I_OUTPUT-ISSRAT = L_ISSRATE.

MODIFY I_OUTPUT INDEX L_INDEX TRANSPORTING RCPRAT ISSRAT.

CLEAR: L_RECDRATE, L_ISSRATE.

ENDIF.

ENDAT.

ENDLOOP.

ENDFORM. " CALCULATE_RECD_RATE

&----


*& Form POPULATE_MARD

&----


FORM POPULATE_MARD .

CLEAR: I_MARD1, I_MARD1[].

LOOP AT I_MARD.

I_MARD1-MATNR = I_MARD-MATNR.

I_MARD1-WERKS = I_MARD-WERKS.

I_MARD1-LABST = I_MARD-LABST.

I_MARD1-INSME = I_MARD-INSME.

I_MARD1-SPEME = I_MARD-SPEME.

COLLECT I_MARD1.

ENDLOOP.

ENDFORM. " POPULATE_MARD

&----


*& Form POPULATE_MATDOC

&----


FORM POPULATE_MATDOC .

CLEAR: I_MATDOC1, I_MATDOC1[].

LOOP AT I_MATDOC.

MOVE-CORRESPONDING I_MATDOC TO I_MATDOC1.

APPEND I_MATDOC1.

CLEAR I_MATDOC1.

ENDLOOP.

ENDFORM. " POPULATE_MATDOC

&----


*& Form DISPLAY_DATA

&----


FORM DISPLAY_DATA .

DATA: L_INDEX LIKE SY-TABIX.

DATA: MT_OPENQTY TYPE MSEG-MENGE,

MT_OPENVAL TYPE MSEG-DMBTR,

MT_RECQTY TYPE MSEG-MENGE,

MT_RECVAL TYPE MSEG-DMBTR,

MT_ISSQTY TYPE MSEG-MENGE,

MT_ISSVAL TYPE MSEG-DMBTR,

MT_CLOSQTY TYPE MSEG-MENGE,

MT_CLOSVAL TYPE MSEG-DMBTR,

GT_OPENQTY TYPE MSEG-MENGE,

GT_OPENVAL TYPE MSEG-DMBTR,

GT_RECQTY TYPE MSEG-MENGE,

GT_RECVAL TYPE MSEG-DMBTR,

GT_ISSQTY TYPE MSEG-MENGE,

GT_ISSVAL TYPE MSEG-DMBTR,

GT_CLOSQTY TYPE MSEG-MENGE,

GT_CLOSVAL TYPE MSEG-DMBTR.

LOOP AT I_OUTPUT.

L_INDEX = SY-TABIX.

AT NEW MTART.

CLEAR:MT_OPENQTY, MT_OPENVAL, MT_RECQTY ,

MT_RECVAL, MT_ISSQTY, MT_ISSVAL ,

MT_CLOSQTY, MT_CLOSVAL.

ENDAT.

READ TABLE I_T001W WITH KEY WERKS = I_MARD-WERKS.

ULINE.

FORMAT RESET.

READ TABLE I_MAKT WITH KEY MATNR = I_OUTPUT-MATNR.

READ TABLE I_MBEW WITH KEY MATNR = I_OUTPUT-MATNR

BWKEY = I_OUTPUT-WERKS.

WRITE 😕 I_OUTPUT-WERKS, I_OUTPUT-MTART COLOR 6 INVERSE INTENSIFIED.

FORMAT COLOR 2.

WRITE :/18 I_OUTPUT-MATNR.

WRITE : 40 I_MAKT-MAKTX,

100 I_OUTPUT-MEINS.

CLEAR: V_OPENQTY, V_OPENVAL.

V_OPENQTY = I_MBEW-LBKUM + I_OUTPUT-ISSQTY - I_OUTPUT-RCPQTY.

V_OPENVAL = I_MBEW-SALK3 + I_OUTPUT-ISSVAL - I_OUTPUT-RCPVAL.

WRITE : 105 V_OPENQTY.

WRITE : 131 V_OPENVAL.

WRITE : 150 I_OUTPUT-RCPQTY,

167 I_OUTPUT-RCPRAT,

185 I_OUTPUT-RCPVAL.

WRITE : 200 I_OUTPUT-ISSQTY,

220 I_OUTPUT-ISSRAT,

240(12) I_OUTPUT-ISSVAL.

WRITE : 252 I_MBEW-LBKUM.

WRITE : 268 I_MBEW-VERPR,

290 I_MBEW-SALK3.

*- Material Type Totals

MT_RECQTY = MT_RECQTY + I_OUTPUT-RCPQTY.

MT_RECVAL = MT_RECVAL + I_OUTPUT-RCPVAL.

MT_ISSQTY = MT_ISSQTY + I_OUTPUT-ISSQTY.

MT_ISSVAL = MT_ISSVAL + I_OUTPUT-ISSVAL.

MT_CLOSQTY = MT_CLOSQTY + I_MBEW-LBKUM.

MT_CLOSVAL = MT_CLOSVAL + I_MBEW-SALK3.

MT_OPENQTY = MT_OPENQTY + ( I_MBEW-LBKUM - I_OUTPUT-RCPQTY + I_OUTPUT-ISSQTY ).

MT_OPENVAL = MT_OPENVAL + ( I_MBEW-SALK3 - I_OUTPUT-RCPVAL + I_OUTPUT-ISSVAL ).

AT END OF MTART.

ULINE.

FORMAT COLOR 3.

WRITE : /.

WRITE : 'Total'.

WRITE : 105 MT_OPENQTY.

WRITE : 131 MT_OPENVAL.

WRITE : 150 MT_RECQTY,

185 MT_RECVAL.

WRITE : 200 MT_ISSQTY,

240(12) MT_ISSVAL.

WRITE : 252 MT_CLOSQTY,

290 MT_CLOSVAL.

ULINE.

*- Final Totals

GT_OPENQTY = GT_OPENQTY + MT_OPENQTY.

GT_OPENVAL = GT_OPENVAL + MT_OPENVAL.

GT_RECQTY = GT_RECQTY + MT_RECQTY.

GT_RECVAL = GT_RECVAL + MT_RECVAL.

GT_ISSQTY = GT_ISSQTY + MT_ISSQTY.

GT_ISSVAL = GT_ISSVAL + MT_ISSVAL.

GT_CLOSQTY = GT_CLOSQTY + MT_CLOSQTY.

GT_CLOSVAL = GT_CLOSVAL + MT_CLOSVAL.

ENDAT.

AT LAST.

FORMAT COLOR 3.

WRITE : /.

WRITE : 'Grand Totals'.

WRITE : 105 GT_OPENQTY.

WRITE : 131 GT_OPENVAL.

WRITE : 150 GT_RECQTY,

185 GT_RECVAL.

WRITE : 200 GT_ISSQTY,

240(12) GT_ISSVAL.

WRITE : 252 GT_CLOSQTY,

290 GT_CLOSVAL.

ULINE.

ENDAT.

ENDLOOP.

ENDFORM. " DISPLAY_DATA

&----


*& Form UPDATE_MBEW

&----


  • Update MBEW

----


FORM UPDATE_MBEW.

DATA: C_POPER TYPE POPER,

C_BDATJ TYPE BDATJ,

SD_POPER TYPE POPER,

SD_BDATJ TYPE BDATJ.

DATA: L_POPER(2) TYPE N,

V_KWERT TYPE KWERT.

*- Get current period

CLEAR: C_POPER,

C_BDATJ,

SD_POPER,

SD_BDATJ.

CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'

EXPORTING

I_DATE = SY-DATUM

I_MONMIT = 00

I_PERIV = 'V3'

IMPORTING

E_BUPER = C_POPER

E_GJAHR = C_BDATJ

EXCEPTIONS

INPUT_FALSE = 1

T009_NOTFOUND = 2

T009B_NOTFOUND = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*- Get Selection date (Closing) period

CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'

EXPORTING

I_DATE = DATUM-HIGH

I_MONMIT = 00

I_PERIV = 'V3'

IMPORTING

E_BUPER = SD_POPER

E_GJAHR = SD_BDATJ

EXCEPTIONS

INPUT_FALSE = 1

T009_NOTFOUND = 2

T009B_NOTFOUND = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT I_MBEW.

CLEAR MBEW.

IF SD_BDATJ <= C_BDATJ.

IF SD_POPER <= C_POPER.

IF SD_BDATJ = C_BDATJ AND

SD_POPER = C_POPER.

I_MBEW-VERPR = I_MBEW-VERPR.

I_MBEW-LBKUM = I_MBEW-LBKUM.

I_MBEW-SALK3 = I_MBEW-SALK3.

ELSE.

CLEAR L_POPER.

L_POPER = SD_POPER+1(2).

*- Get rate from MBEWH

SELECT SINGLE LBKUM SALK3 VERPR INTO (MBEW-LBKUM, MBEW-SALK3, MBEW-VERPR)

FROM MBEWH

WHERE MATNR = I_MBEW-MATNR AND

BWKEY = I_MBEW-BWKEY AND

LFGJA = SD_BDATJ AND

LFMON = L_POPER.

IF SY-SUBRC <> 0.

L_POPER = L_POPER + 1.

SELECT SINGLE LBKUM SALK3 VERPR INTO (MBEW-LBKUM, MBEW-SALK3, MBEW-VERPR)

FROM MBEWH

WHERE MATNR = I_MBEW-MATNR AND

BWKEY = I_MBEW-BWKEY AND

LFGJA = SD_BDATJ AND

LFMON = L_POPER.

IF SY-SUBRC = 0.

I_MBEW-LBKUM = MBEW-LBKUM.

I_MBEW-SALK3 = MBEW-SALK3.

I_MBEW-VERPR = MBEW-VERPR.

ENDIF.

ELSEIF SY-SUBRC = 0.

I_MBEW-LBKUM = MBEW-LBKUM.

I_MBEW-SALK3 = MBEW-SALK3.

I_MBEW-VERPR = MBEW-VERPR.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

MODIFY I_MBEW INDEX SY-TABIX TRANSPORTING LBKUM SALK3 VERPR.

ENDLOOP.

ENDFORM. " UPDATE_MBEW

Former Member
0 Kudos

oops ,

table

mcha

field

charg

MCHA-CHARG for batch of the material

regards

vijay.