Application Development and Automation 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: 
Read only

ALV dump

Former Member
0 Likes
1,516

hi freinds,

i m getting dump MESSAGE_TYPE_X.........................

how can i solve it...........

Regards,

Imran

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,461

Hi Imran,

Please send the point where dump resulted.

As dump in your case is due to a runtime error, and might be from a function module call.

Regards,

George

16 REPLIES 16
Read only

Former Member
0 Likes
1,461

Hi Imran,

Can you expain it little more?

Check the structure fields you are passing to ALV and Check field names in capitals.

Reward if useful!

Read only

Former Member
0 Likes
1,461

hi

good

You can serach on OSS the following keywords.

"MESSAGE_TYPE_X"

"SAPMKCBR " or "MKCBRF00_CHECK_NHA "

"CHECK_NHA"

thanks

mrutyun^

Read only

Former Member
0 Likes
1,462

Hi Imran,

Please send the point where dump resulted.

As dump in your case is due to a runtime error, and might be from a function module call.

Regards,

George

Read only

Former Member
0 Likes
1,461

pls tell clearly ur question

Read only

Former Member
0 Likes
1,461

Hi

In the dump, check the <b>'Error Analysis'</b> , this will give you an idea why the dump had occured.

Regards

Raj

Read only

0 Likes
1,461

HI ALL,

THANKS FOR THE REPLY............

ACTUALLY I HAVE 6 RADIO BUTTON.................

BASED ON THAN I M DISPLAYING COLOUMN OF ALV..................

WHEN FIRST RADIOBUTTON CLICKED I M DISPLAYING 6 OUT OF 10 FIELDS.......

WHEN SECOND RADIOBUTTON CLICKED I M DISPLAYING 7 OUT OF 10 FIELDS.......

...........

.........

..........

BUT WHEN LAST RADIO BUTTON CLICKED WHICH IS DISPLAYING ALL FIELDS AT THAT TIME I M GETTIN THIS DUMP............

Read only

Former Member
0 Likes
1,461

Hi Imran

What is the dump error you got explain clearly and more over first read the error clearly then at the bottom you can find the <b>error analysis</b> try to read it and solve it out. If not post your error here

Reward all helpfull answers

Regards

Pavan

Read only

Former Member
0 Likes
1,461

HI,

THE SHORT DUMP MIGHT BE FROM A FUNCTION MODULE JUST ANALYZE YOUR CODE BY BY GOING TO DUMP ANLYSIS T CODE ST22

Read only

0 Likes
1,461

HI ALL,

THIS THE DUMP DESCRIPTION

Short text

The current application triggered a termination with a short dump.

What happened?

The current application program detected a situation which really

should not occur. Therefore, a termination with a short dump was

triggered on purpose by the key word MESSAGE (type X).

What can you do?

Note down which actions and inputs caused the error.

To process the problem further, contact you SAP system

administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look

at and manage termination messages, and you can also

keep them for a long time.

Error analysis

Short text of error message:

Long text of error message:

Technical information about the message:

Message class....... "0K"

Number.............. 000

Variable 1.......... " "

Variable 2.......... " "

Variable 3.......... " "

Variable 4.......... " "

Read only

Former Member
0 Likes
1,461

Hi Imran.

Are you rebuiding the ALV grid?

Read only

0 Likes
1,461

HI PRASAD,

no i m not rebulding the grid.......

Regards,

Imran

Read only

0 Likes
1,461

Hi,

check out the message type you are using whether that is existing or not......

I think it is because of type X change it to type S or I or E.

Regards,

Ruchika

Read only

0 Likes
1,461

Hi Imran

Then do one thing on the selection screen while you are selecting for all radio buttons on the men bar type <b>/h</b> then press execute or F8 so that it will directly take you to the program where you debug the total report and sort out by using which statement you are getting this error

Reward all helpfull answers

Regards

Pavan

Read only

0 Likes
1,461

HI FREINDS,

THIS IS MY CODE..........I HAVE BOLD WHERE I M GETTING DUMP........

WHEN I SELECT THAT RADIOBUTTON GETTIN DUMP........

&----


*& Report ZSD_BATCH_CONVERSION

*& Created By---- Imran

*&& Requested By----Umang

*& Created On--- 20 June 2007

*& Completed On--- 20 June 2007

*& Tcode--- ZAGE

*& Request NO---DSRK903222

&----


REPORT ZSD_STOCK_AGE_TEST1.

&----


*& External Table Declaration

*&

&----


TABLES: MARC,MCHB,MCH1.

&----


*& Type Pools Declaration

*&

&----


TYPE-POOLS: SLIS.

&----


*& Internal Table Declaration

*&

&----


DATA:BEGIN OF IT_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

XCHAR LIKE MARC-XCHAR,

END OF IT_MARC,

BEGIN OF IT_MCHB OCCURS 0,

MATNR LIKE MCHB-MATNR,

WERKS LIKE MCHB-WERKS,

CHARG LIKE MCHB-CHARG,

CLABS LIKE MCHB-CLABS,

LWEDT LIKE MCH1-LWEDT,

LGORT LIKE MCHB-LGORT,

DAYS TYPE I,

END OF IT_MCHB,

IT_MCHB1 LIKE IT_MCHB OCCURS 0 WITH HEADER LINE,

BEGIN OF IT_MCH1 OCCURS 0,

MATNR LIKE MCH1-MATNR,

CHARG LIKE MCH1-CHARG,

LWEDT LIKE MCH1-LWEDT,

VFDAT LIKE MCH1-VFDAT,

CLABS LIKE MCHB-CLABS,

DAYS TYPE I,

END OF IT_MCH1,

IT_MCH2 LIKE IT_MCH1 OCCURS 0 WITH HEADER LINE,

BEGIN OF IT_FINAL OCCURS 0,

MATNR LIKE MCHB-MATNR,

MAKTX LIKE MAKT-MAKTX,

TOTAL LIKE MARD-LABST,

TOTALP LIKE MBEW-VERPR,

UNSALEABLE LIKE MCHB-CLABS,

UNSALEABLEP LIKE MBEW-VERPR,

WMAAB LIKE MAW1-WMAAB,

ZSUBCAT1 LIKE T023T-WGBEZ,

ZSUBCAT2 LIKE T023T-WGBEZ,

ZSUBCAT3 LIKE T023T-WGBEZ,

0TO15 LIKE MCHB-CLABS,

0TO15P LIKE MBEW-VERPR,

15TO30 TYPE MCHB-CLABS,

15TO30P TYPE MBEW-VERPR,

30TO60 TYPE MCHB-CLABS,

30TO60P TYPE MBEW-VERPR,

60TO90 TYPE MCHB-CLABS,

60TO90P TYPE MBEW-VERPR,

GT90 TYPE MCHB-CLABS,

GT90P TYPE MBEW-VERPR,

TOTALSTOCK LIKE MCHB-CLABS,

TOTALSTOCKP LIKE MBEW-VERPR,

MHDHB LIKE MARA-MHDHB,

IPRKZ LIKE MARA-IPRKZ,

MATKL LIKE MARA-MATKL,

VERPR LIKE MBEW-VERPR,

END OF IT_FINAL,

BEGIN OF IT_MARA_BATCH OCCURS 0,

MATNR LIKE MARA-MATNR,

XCHPF LIKE MARA-XCHPF,

MATKL LIKE MARA-MATKL,

END OF IT_MARA_BATCH,

BEGIN OF IT_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

XCHPF LIKE MARA-XCHPF,

END OF IT_MARA,

BEGIN OF IT_MSEG OCCURS 0,

MBLNR LIKE MSEG-MBLNR,

MATNR LIKE MSEG-MATNR,

EBELN LIKE MSEG-EBELN,

EBELP LIKE MSEG-EBELP,

WERKS LIKE MSEG-WERKS,

BWART LIKE MSEG-BWART,

HSDAT LIKE MSEG-HSDAT,

ERFMG LIKE MSEG-ERFMG,

END OF IT_MSEG,

BEGIN OF IT_MARD OCCURS 0,

MATNR LIKE MARD-MATNR,

WERKS LIKE MARD-WERKS,

LGORT LIKE MARD-LGORT,

LABST LIKE MARD-LABST,

END OF IT_MARD,

BEGIN OF IT_MARD1 OCCURS 0,

MATNR LIKE MARD-MATNR,

WERKS LIKE MARD-WERKS,

LGORT LIKE MARD-LGORT,

LABST LIKE MARD-LABST,

END OF IT_MARD1,

BEGIN OF IT_EKBE OCCURS 0,

EBELN LIKE EKBE-EBELN,

EBELP LIKE EKBE-EBELP,

MATNR LIKE EKBE-MATNR,

BELNR LIKE EKBE-BELNR,

BEWTP LIKE EKBE-BEWTP,

MENGE LIKE EKBE-MENGE,

BUDAT LIKE EKBE-BUDAT,

END OF IT_EKBE,

BEGIN OF IT_FINAL2 OCCURS 0,

MATNR LIKE MARD-MATNR,

WERKS LIKE MARD-WERKS,

LGORT LIKE MARD-LGORT,

LABST LIKE MARD-LABST,

BUDAT LIKE EKBE-BUDAT,

ERFMG LIKE MSEG-ERFMG,

DAYS TYPE I,

END OF IT_FINAL2,

IT_FINAL3 LIKE IT_FINAL2 OCCURS 0 WITH HEADER LINE,

BEGIN OF IT_MKPF OCCURS 0,

MBLNR LIKE MKPF-MBLNR,

VGART LIKE MKPF-VGART,

BUDAT LIKE MKPF-BUDAT,

END OF IT_MKPF.

DATA:C_15 LIKE MARD-LABST,

C_30 LIKE MARD-LABST,

C_60 LIKE MARD-LABST,

C_90 LIKE MARD-LABST,

C_T LIKE MARD-LABST.

DATA: I_CLASS TYPE KLAH-CLASS.

DATA: DATEN TYPE TABLE OF GHCL WITH HEADER LINE.

DATA: BEGIN OF INDEX OCCURS 0,

TABIX TYPE SY-TABIX,

END OF INDEX.

DATA:TOTAL LIKE MARD-LABST.

&----


*& ALV Data Declaration

*&

&----


DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: WA_FIELDCAT LIKE LINE OF IT_FIELDCAT.

DATA : T_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA : IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA : G_SAVE(1) TYPE C VALUE 'A',

GX_SAVE(1) TYPE C VALUE 'A',

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT,

T_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

T_I_EVENT TYPE SLIS_ALV_EVENT.

DATA : L_LIST(105) TYPE C, "Store the Top-of-page headings

L_DATEFROM(10) TYPE C, "Store date in top-of-page

L_DATETO(10) TYPE C. "Store date in top-of-page

&----


*& Selection Screen

*&

&----


SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT_000.

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN: COMMENT 1(20) TEXT_001.

PARAMETERS: P_WERKS LIKE MARC-WERKS OBLIGATORY.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE.

SELECTION-SCREEN: COMMENT 1(20) TEXT_002.

PARAMETERS: P_DATE LIKE SY-DATUM DEFAULT SY-DATUM OBLIGATORY.

SELECTION-SCREEN: END OF LINE.

SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT_008.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: R_0TO15 RADIOBUTTON GROUP G1.

SELECTION-SCREEN COMMENT (72) TEXT_003 FOR FIELD R_0TO15.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: R_15TO30 RADIOBUTTON GROUP G1.

SELECTION-SCREEN COMMENT (72) TEXT_004 FOR FIELD R_15TO30.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: R_30TO60 RADIOBUTTON GROUP G1.

SELECTION-SCREEN COMMENT (72) TEXT_005 FOR FIELD R_30TO60.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

P<b>ARAMETERS: R_60TO90 RADIOBUTTON GROUP G1.</b>

SELECTION-SCREEN COMMENT (72) TEXT_006 FOR FIELD R_60TO90.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: R_GT90 RADIOBUTTON GROUP G1.

SELECTION-SCREEN COMMENT (72) TEXT_007 FOR FIELD R_GT90.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

<b>PARAMETERS: R_ALL RADIOBUTTON GROUP G1.</b>

SELECTION-SCREEN COMMENT (72) TEXT_009 FOR FIELD R_GT90.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN: END OF BLOCK B2.

&----


*& Initialization Event

*&

&----


INITIALIZATION.

TEXT_000 = 'Selection Criteria'.

TEXT_001 = 'Site'.

TEXT_002 = 'Date'.

TEXT_008 = 'Ageing Analysis'.

TEXT_003 = '0 TO 15 DAYS'.

TEXT_004 = '15 TO 30 DAYS'.

TEXT_005 = '30 TO 60 DAYS'.

TEXT_006 = '60 TO 90 DAYS'.

TEXT_007 = 'GREATER THAN 90 DAYS'.

TEXT_009 = 'ALL'.

AT SELECTION-SCREEN.

*IF S_DATE IS INITIAL AND S_MATNR IS INITIAL AND S_CHARG IS INITIAL AND S_MBLNR IS INITIAL.

  • MESSAGE 'Enter Either Date or Article or Batch or G.R.Number' type 'E'.

  • ENDIF.

&----


*& Start Of Selection

*&

&----


START-OF-SELECTION.

PERFORM READ_DATA.

  • IF IT_FINAL[] IS NOT INITIAL.

PERFORM ALV_FIELDCAT.

PERFORM GET_EVENTS.

PERFORM SUB_COMMENT_BUILD USING T_LIST_TOP_OF_PAGE.

PERFORM ALV_DISPLAY.

  • ENDIF.

&----


*& Form READ_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM READ_DATA .

*************NON BATCH ARTICLE************

SELECT MATNR XCHPF

FROM MARA

INTO CORRESPONDING FIELDS OF TABLE IT_MARA

WHERE XCHPF <> 'X'.

*******BATCH ARTICLE DATA******************

SELECT MATNR XCHPF

FROM MARA

INTO CORRESPONDING FIELDS OF TABLE IT_MARA_BATCH

WHERE XCHPF = 'X'.

*IF IT_MARA_BATCH[] IS NOT INITIAL.

*

*SELECT MATNR WERKS XCHAR

  • FROM MARC

  • INTO CORRESPONDING FIELDS OF TABLE IT_MARC

  • FOR ALL ENTRIES IN IT_MARA_BATCH

  • WHERE XCHAR = 'X'

  • AND WERKS = P_WERKS

  • AND MATNR = IT_MARA_BATCH-MATNR.

*

*ENDIF.

IF IT_MARA_BATCH[] IS NOT INITIAL.

SELECT MATNR WERKS CHARG CLABS LGORT

FROM MCHB

INTO CORRESPONDING FIELDS OF TABLE IT_MCHB

FOR ALL ENTRIES IN IT_MARA_BATCH

WHERE MATNR = IT_MARA_BATCH-MATNR

AND WERKS = P_WERKS

AND LGORT = 'SL01'.

ENDIF.

IF IT_MARA_BATCH[] IS NOT INITIAL.

SELECT MATNR WERKS CHARG CLABS LGORT

FROM MCHB

INTO CORRESPONDING FIELDS OF TABLE IT_MCHB1

FOR ALL ENTRIES IN IT_MARA_BATCH

WHERE MATNR = IT_MARA_BATCH-MATNR

AND WERKS = P_WERKS

AND LGORT <> 'SL01'.

ENDIF.

LOOP AT IT_MCHB.

SELECT LWEDT

FROM MCH1

INTO IT_MCHB-LWEDT

WHERE MATNR = IT_MCHB-MATNR

AND CHARG = IT_MCHB-CHARG.

MODIFY IT_MCHB TRANSPORTING LWEDT.

ENDSELECT.

ENDLOOP.

*IF IT_MCHB[] IS NOT INITIAL.

  • SELECT SINGLE LWEDT

  • FROM MCH1

  • INTO IT_MCHB-LWEDT

    • FOR ALL ENTRIES IN IT_MCHB

  • WHERE MATNR = IT_MCHB-MATNR

  • AND CHARG = IT_MCHB-CHARG.

*ENDIF.

****************STOCK*****************

*LOOP AT IT_MCH1.

  • SELECT CLABS

  • FROM MCHB

  • INTO IT_MCH1-CLABS

  • WHERE MATNR = IT_MCH1-MATNR

  • AND CHARG = IT_MCH1-CHARG.

*

  • MODIFY IT_MCH1 TRANSPORTING CLABS.

*ENDSELECT.

*ENDLOOP.

*************FINDING DAYS*************************

LOOP AT IT_MCHB.

CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'

EXPORTING

BEGDA = IT_MCHB-LWEDT

ENDDA = P_DATE

  • TAB_MODE = ' '

IMPORTING

DAYS = IT_MCHB-DAYS

  • C_WEEKS =

  • C_MONTHS =

  • C_YEARS =

  • WEEKS =

  • MONTHS =

  • YEARS =

  • D_MONTHS =

  • MONTH_TAB =

.

MODIFY IT_MCHB TRANSPORTING DAYS.

ENDLOOP.

*****************CALCULATING MATERIAL WISE DAYS****************

LOOP AT IT_MCHB." WHERE LGORT EQ 'SL01'..

*IF IT_MCHB-LGORT = 'SL01'.

IT_MCH2-MATNR = IT_MCHB-MATNR.

IT_MCH2-CHARG = IT_MCHB-CHARG.

IT_MCH2-LWEDT = IT_MCHB-LWEDT.

IT_MCH2-DAYS = IT_MCHB-DAYS.

  • IT_MCH2-VFDAT = IT_MCHB-VFDAT.

IT_MCH2-CLABS = IT_MCHB-CLABS.

APPEND IT_MCH2.

AT END OF MATNR.

SUM.

PERFORM CALC_DAYS.

ENDAT.

  • ENDIF.

ENDLOOP.

********************UNSALEABLE*****************

LOOP AT IT_MCHB1.

AT END OF MATNR.

SUM.

IT_FINAL-UNSALEABLE = IT_MCHB1-CLABS.

MODIFY IT_FINAL TRANSPORTING UNSALEABLE WHERE MATNR = IT_MCHB1-MATNR..

ENDAT.

ENDLOOP.

*

************NONBATCH DATA************************

SELECT MBLNR VGART BUDAT

FROM MKPF

INTO CORRESPONDING FIELDS OF TABLE IT_MKPF

WHERE VGART = 'WE'.

IF IT_MARA[] IS NOT INITIAL.

SELECT MBLNR MATNR EBELN EBELP WERKS BWART HSDAT ERFMG

FROM MSEG

INTO CORRESPONDING FIELDS OF TABLE IT_MSEG

FOR ALL ENTRIES IN IT_MARA

WHERE MATNR = IT_MARA-MATNR

AND WERKS = P_WERKS

AND BWART = '101'.

ENDIF.

*IF IT_MSEG[] IS NOT INITIAL.

  • SELECT EBELN EBELP BEWTP BELNR MENGE BUDAT

  • FROM EKBE

  • INTO CORRESPONDING FIELDS OF TABLE IT_EKBE

  • FOR ALL ENTRIES IN IT_MSEG

  • WHERE BELNR = IT_MSEG-MBLNR

  • AND EBELN = IT_MSEG-EBELN

  • AND EBELP = IT_MSEG-EBELP

  • AND BEWTP = 'E'.

*ENDIF.

IF IT_MSEG[] IS NOT INITIAL.

SELECT MATNR WERKS LGORT LABST

FROM MARD

INTO CORRESPONDING FIELDS OF TABLE IT_MARD

FOR ALL ENTRIES IN IT_MSEG

WHERE MATNR = IT_MSEG-MATNR

AND WERKS = IT_MSEG-WERKS

AND LGORT = 'SL01'.

ENDIF.

IF IT_MSEG[] IS NOT INITIAL.

SELECT MATNR WERKS LGORT LABST

FROM MARD

INTO CORRESPONDING FIELDS OF TABLE IT_MARD1

FOR ALL ENTRIES IN IT_MSEG

WHERE MATNR = IT_MSEG-MATNR

AND WERKS = IT_MSEG-WERKS

AND LGORT <> 'SL01'.

ENDIF.

DATA: C TYPE I VALUE 0.

LOOP AT IT_MSEG.

READ TABLE IT_MKPF WITH KEY MBLNR = IT_MSEG-MBLNR.

READ TABLE IT_MARD WITH KEY MATNR = IT_MSEG-MATNR WERKS = IT_MSEG-WERKS." LGORT = 'SL01'.

IF SY-SUBRC = 0.

IT_FINAL2-MATNR = IT_MARD-MATNR.

IT_FINAL2-WERKS = IT_MARD-WERKS.

IT_FINAL2-LGORT = IT_MARD-LGORT.

IT_FINAL2-LABST = 0.

IT_FINAL2-BUDAT = IT_MKPF-BUDAT.

IT_FINAL2-ERFMG = IT_MSEG-ERFMG.

APPEND IT_FINAL2.

ENDIF.

ENDLOOP.

*************NON SL01***********************************************

***************STOCK CALCULATION FOR NONBATCH ARTICLE*******************

LOOP AT IT_FINAL2.

CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'

EXPORTING

BEGDA = IT_FINAL2-BUDAT

ENDDA = P_DATE

  • TAB_MODE = ' '

IMPORTING

DAYS = IT_FINAL2-DAYS

  • C_WEEKS =

  • C_MONTHS =

  • C_YEARS =

  • WEEKS =

  • MONTHS =

  • YEARS =

  • D_MONTHS =

  • MONTH_TAB =

.

MODIFY IT_FINAL2 TRANSPORTING DAYS.

ENDLOOP.

SORT IT_FINAL2 DESCENDING.

LOOP AT IT_FINAL2.

IT_FINAL3-MATNR = IT_FINAL2-MATNR.

IT_FINAL3-WERKS = IT_FINAL2-WERKS.

IT_FINAL3-LGORT = IT_FINAL2-LGORT.

IT_FINAL3-LABST = IT_FINAL2-LABST.

IT_FINAL3-BUDAT = IT_FINAL2-BUDAT.

IT_FINAL3-DAYS = IT_FINAL2-DAYS.

IT_FINAL3-ERFMG = IT_FINAL2-ERFMG.

APPEND IT_FINAL3.

AT END OF MATNR.

  • IT_FINAL-TOTAL = IT_FINAL2-LABST.

SUM.

PERFORM CALC_TOTAL_STOCK.

ENDAT.

ENDLOOP.

************TOTAL STOCK*********************

LOOP AT IT_MARD.

IT_FINAL-TOTAL = IT_MARD-LABST.

MODIFY IT_FINAL TRANSPORTING TOTAL WHERE MATNR = IT_MARD-MATNR.

ENDLOOP.

********************UNSALEABLE*****************

LOOP AT IT_MARD1.

  • CLEAR IT_FINAL-UNSALEABLE WHERE MATNR = IT_MARD1-MATNR.

IT_FINAL-UNSALEABLE = IT_MARD1-LABST.

MODIFY IT_FINAL TRANSPORTING UNSALEABLE WHERE MATNR = IT_MARD1-MATNR..

ENDLOOP.

***************TOTAL SHELF LIFE*********************

LOOP AT IT_FINAL.

SELECT SINGLE MHDHB IPRKZ MATKL

FROM MARA

INTO (IT_FINAL-MHDHB,IT_FINAL-IPRKZ,IT_FINAL-MATKL )

WHERE MATNR = IT_FINAL-MATNR.

SELECT SINGLE MAKTX

FROM MAKT

INTO IT_FINAL-MAKTX

WHERE MATNR = IT_FINAL-MATNR

AND SPRAS = 'EN'.

MODIFY IT_FINAL TRANSPORTING MHDHB MAKTX MATKL.

ENDLOOP.

*****************MECHANT CATAGARY********************

LOOP AT IT_FINAL.

I_CLASS = IT_FINAL-MATKL.

CALL FUNCTION 'CLHI_STRUCTURE_CLASSES'

EXPORTING

I_KLART = '026'

I_BATCH = 'X'

I_BUP = 'X'

I_CLASS = I_CLASS

I_LANGUAGE = 'E'

I_TDWN = ''

I_NO_CLASSIFICATION = 'X'

I_GRAPHIC = ''

I_DATE = SY-DATUM

I_NO_OBJECTS = 'X'

I_SORT_BY_CLASS = 'X'

I_STRUCTURED_LIST = 'X'

TABLES

DATEN = DATEN

INDEX = INDEX

EXCEPTIONS

CLASS_NOT_VALID = 1

CLASSTYPE_NOT_VALID = 2

OTHERS = 3.

READ TABLE DATEN WITH KEY STUFE = '1'.

IF SY-SUBRC = 0.

IT_FINAL-ZSUBCAT1 = DATEN-CLTX1.

ENDIF.

READ TABLE DATEN WITH KEY STUFE = '2'.

IF SY-SUBRC = 0.

IT_FINAL-ZSUBCAT2 = DATEN-CLTX1.

ENDIF.

READ TABLE DATEN WITH KEY STUFE = '3'.

IF SY-SUBRC = 0.

IT_FINAL-ZSUBCAT3 = DATEN-CLTX1.

ENDIF.

SELECT SINGLE WMAAB FROM MAW1

INTO IT_FINAL-WMAAB

WHERE MATNR = IT_FINAL-MATNR.

MODIFY IT_FINAL TRANSPORTING ZSUBCAT1 ZSUBCAT2 ZSUBCAT3 WMAAB.

ENDLOOP.

************************************************************************

****************MOVING PRICE******************************************

LOOP AT IT_FINAL.

SELECT SINGLE VERPR

FROM MBEW

INTO IT_FINAL-VERPR

WHERE MATNR = IT_FINAL-MATNR

AND BWKEY = P_WERKS.

MODIFY IT_FINAL TRANSPORTING VERPR.

ENDLOOP.

LOOP AT IT_FINAL.

IT_FINAL-0TO15P = IT_FINAL-VERPR * IT_FINAL-0TO15.

IT_FINAL-15TO30P = IT_FINAL-VERPR * IT_FINAL-15TO30.

IT_FINAL-30TO60P = IT_FINAL-VERPR * IT_FINAL-30TO60.

IT_FINAL-60TO90P = IT_FINAL-VERPR * IT_FINAL-60TO90.

IT_FINAL-GT90P = IT_FINAL-VERPR * IT_FINAL-GT90.

IT_FINAL-TOTALP = IT_FINAL-TOTAL * IT_FINAL-VERPR.

IT_FINAL-UNSALEABLEP = IT_FINAL-UNSALEABLE * IT_FINAL-VERPR.

IT_FINAL-TOTALSTOCK = IT_FINAL-TOTAL + IT_FINAL-UNSALEABLE.

IT_FINAL-TOTALSTOCKP = IT_FINAL-TOTALSTOCK * IT_FINAL-VERPR.

MODIFY IT_FINAL TRANSPORTING 0TO15P 15TO30P 30TO60P 60TO90P GT90P TOTALP UNSALEABLEP TOTALSTOCK TOTALSTOCKP.

ENDLOOP.

************************************************************************

**************CONVERSION OF ARTICLE*************

LOOP AT IT_FINAL.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = IT_FINAL-MATNR

IMPORTING

OUTPUT = IT_FINAL-MATNR

.

MODIFY IT_FINAL TRANSPORTING MATNR.

ENDLOOP.

*******************************************************

DELETE IT_FINAL WHERE TOTAL = 0.

ENDFORM. " READ_DATA

&----


*& Form ALV_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_FIELDCAT .

DATA: COUNTER TYPE I.

*& 1. Article Number

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Article Number'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

  • *& 1. Article Number

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'MAKTX'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Article Description'.

WA_FIELDCAT-OUTPUTLEN = 30.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

  • *& 1. Article Number

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'TOTAL'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Saleable Stock'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'TOTALP'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Saleable Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

  • *& 1. Article Number

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'UNSALEABLE'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Unsaleable Stock'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'UNSALEABLEP'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Unsaleable Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'WMAAB'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'ABC Indicator'.

WA_FIELDCAT-OUTPUTLEN = 10.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'ZSUBCAT1'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'SUB_CAT_1'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'ZSUBCAT2'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'SUB_CAT_2'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'ZSUBCAT3'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'SUB_CAT_3'.

WA_FIELDCAT-OUTPUTLEN = 20.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

*COUNTER = COUNTER + 1.

  • WA_FIELDCAT-COL_POS = COUNTER.

  • WA_FIELDCAT-FIELDNAME = 'VERPR'.

  • WA_FIELDCAT-TABNAME = 'IT_FINAL'.

  • WA_FIELDCAT-SELTEXT_L = 'Moving Price'.

  • WA_FIELDCAT-OUTPUTLEN = 30.

  • WA_FIELDCAT-NO_ZERO = 'X'.

  • WA_FIELDCAT-JUST = 'C'.

*

  • APPEND WA_FIELDCAT TO IT_FIELDCAT.

  • CLEAR WA_FIELDCAT.

IF R_0TO15 = 'X' OR R_ALL = 'X'.

*& 2. 0 to 15 days

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '0TO15'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = '0 TO 15 DAYS'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '0TO15P'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDIF.

IF R_15TO30 = 'X' OR R_ALL = 'X'.

*& 3. 15 to 30 days

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '15TO30'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = '15 TO 30 DAYS'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '15TO30P'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDIF.

IF R_30TO60 = 'X' OR R_ALL = 'X'.

*& 4. 30 TO 60 DAYS

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '30TO60'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = '30 TO 60 DAYS'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '30TO60P'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDIF.

IF R_60TO90 = 'X' OR R_ALL = 'X'.

  • *& 5.60 TO 90 DAYS

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '60TO90'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = '60 TO 90 DAYS'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

WA_FIELDCAT-DO_SUM = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = '60T90P'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDIF.

IF R_GT90 = 'X' OR R_ALL = 'X'.

*& 6. GREATER THAN 90 DAYS

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'GT90'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'GREATER THAN 90 DAYS'.

WA_FIELDCAT-OUTPUTLEN = 25.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'GT90P'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDIF.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'TOTALSTOCK'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Total Stock'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'TOTALSTOCKP'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Total Stock Value'.

WA_FIELDCAT-OUTPUTLEN = 15.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

*& 6. TOTAL SHELF LIFE

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'MHDHB'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Total Shelf Life'.

WA_FIELDCAT-OUTPUTLEN = 25.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

*& 6. TOTAL SHELF LIFE

COUNTER = COUNTER + 1.

WA_FIELDCAT-COL_POS = COUNTER.

WA_FIELDCAT-FIELDNAME = 'IPRKZ'.

WA_FIELDCAT-TABNAME = 'IT_FINAL'.

WA_FIELDCAT-SELTEXT_L = 'Shelf Life Expiration Period'.

WA_FIELDCAT-OUTPUTLEN = 25.

WA_FIELDCAT-NO_ZERO = 'X'.

WA_FIELDCAT-JUST = 'C'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. " ALV_FIELDCAT

&----


*& Form GET_EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS[]

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

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

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

ENDIF.

READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO IT_EVENTS.

IF SY-SUBRC = 0.

MOVE T_FORMNAME_TOP_OF_PAGE TO IT_EVENTS-FORM.

APPEND IT_EVENTS.

ENDIF.

ENDFORM. " GET_EVENTS

&----


*& Form top_of_page

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_LIST_TOP_OF_PAGE.

ENDFORM. "top_of_page

&----


*& Form SUB_COMMENT_BUILD

&----


  • text

----


  • -->P_T_LIST_TOP_OF_PAGE text

----


FORM SUB_COMMENT_BUILD USING I_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: LS_LINE TYPE SLIS_LISTHEADER.

DATA: WRK_NAME TYPE KNA1-NAME1.

DATA: V_NAME1 LIKE T001W-NAME1.

WRK_NAME = 'R.K.Foodland Pvt Ltd, Mumbai'.

CLEAR LS_LINE.

LS_LINE-TYP = 'H'.

LS_LINE-INFO = WRK_NAME.

APPEND LS_LINE TO I_TOP_OF_PAGE.

LS_LINE-TYP = 'H'.

CONCATENATE 'Stock Ageing Report' V_NAME1 INTO LS_LINE-INFO SEPARATED BY SPACE.

APPEND LS_LINE TO I_TOP_OF_PAGE.

  • WRITE S_DATE-LOW DD/MM/YYYY TO L_DATEFROM.

  • WRITE S_DATE-HIGH DD/MM/YYYY TO L_DATETO.

  • CLEAR: LS_LINE, L_LIST.

*

  • IF S_DATE-HIGH IS NOT INITIAL.

  • CONCATENATE 'Date : ' L_DATEFROM ' To . '

  • L_DATETO INTO L_LIST.

*

  • ELSEIF S_DATE-HIGH IS INITIAL AND S_DATE-LOW IS NOT INITIAL.

*

  • CONCATENATE 'Date : ' L_DATEFROM INTO L_LIST.

*

  • ENDIF.

LS_LINE-TYP = 'S'.

LS_LINE-INFO = L_LIST.

APPEND LS_LINE TO I_TOP_OF_PAGE.

ENDFORM. " SUB_COMMENT_BUILD

&----


*& Form ALV_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_DISPLAY.

GS_LAYOUT-ZEBRA = 'X'.

GS_LAYOUT-DETAIL_POPUP = 'X'.

GS_LAYOUT-DETAIL_INITIAL_LINES = 'X'.

  • GS_LAYOUT-NO_VLINE = 'X'.

  • GS_LAYOUT-NO_HLINE = 'X'.

GS_LAYOUT-NUMC_SUM = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IT_FIELDCAT = IT_FIELDCAT

IT_EVENTS = IT_EVENTS[]

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = GS_LAYOUT

I_SAVE = G_SAVE

IS_VARIANT = GX_VARIANT

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

TABLES

T_OUTTAB = IT_FINAL[].

ENDFORM. " ALV_DISPLAY

&----


*& Form FORM_VBFA2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FORM_VBFA2 .

  • LOOP AT IT_VBFA2.

  • C = C + 1.

*

  • AT END OF VBELN.

  • SUM.

*

  • C1 = C.

  • C_RFMNG = IT_VBFA-RFMNG.

  • CLEAR C.

  • ENDAT.

*

  • IF C IS INITIAL.

*

  • IT_VBFA1-VBELV = IT_VBFA-VBELV.

  • IT_VBFA1-POSNV = IT_VBFA-POSNV.

  • IT_VBFA1-VBELN = IT_VBFA-VBELN.

  • IT_VBFA1-RFMNG = C_RFMNG.

  • IT_VBFA1-C = C1.

*

  • APPEND IT_VBFA1.

*

  • CLEAR: C1,C_RFMNG.

*

  • .

  • ENDIF.

*

  • ENDLOOP.

ENDFORM. " FORM_VBFA2

&----


*& Form CALC_DAYS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALC_DAYS .

IT_FINAL-MATNR = IT_MCHB-MATNR.

IT_FINAL-TOTAL = IT_MCHB-CLABS.

LOOP AT IT_MCH2.

IF IT_MCH2-DAYS LE '15'.

C_15 = C_15 + IT_MCH2-CLABS.

ENDIF.

IF IT_MCH2-DAYS GT '15' AND IT_MCH2-DAYS LE '30'.

C_30 = C_30 + IT_MCH2-CLABS.

ENDIF.

IF IT_MCH2-DAYS GT '30' AND IT_MCH2-DAYS LE '60'.

C_60 = C_60 + IT_MCH2-CLABS.

ENDIF.

IF IT_MCH2-DAYS GT '60' AND IT_MCH2-DAYS LE '90'.

C_90 = C_90 + IT_MCH2-CLABS.

ENDIF.

IF IT_MCH2-DAYS GT '90'.

C_T = C_T + IT_MCH2-CLABS.

ENDIF.

ENDLOOP.

IT_FINAL-0TO15 = C_15.

IT_FINAL-15TO30 = C_30.

IT_FINAL-30TO60 = C_60.

IT_FINAL-60TO90 = C_90.

IT_FINAL-GT90 = C_T.

APPEND IT_FINAL.

CLEAR IT_MCH2[].

CLEAR: C_15,C_30,C_60,C_90,C_T.

ENDFORM. " CALC_DAYS

&----


*& Form CALC_TOTAL_STOCK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALC_TOTAL_STOCK .

DATA: F TYPE I VALUE 0.

IT_FINAL-MATNR = IT_FINAL2-MATNR.

IT_FINAL-UNSALEABLE = IT_FINAL2-LABST.

LOOP AT IT_MARD WHERE MATNR = IT_FINAL2-MATNR.

TOTAL = IT_MARD-LABST.

IF SY-SUBRC = 0.

LOOP AT IT_FINAL3.

IF IT_FINAL3-DAYS LE '15'.

  • IT_FINAL-0TO15 = IT_FINAL-0TO15 + IT_FINAL3-LABST.

TOTAL = TOTAL - IT_FINAL3-ERFMG.

IF F = 0.

IF TOTAL GE 0.

C_15 = C_15 + IT_FINAL3-ERFMG.

ELSE.

F = 1.

C_15 = C_15 + TOTAL + IT_FINAL3-ERFMG.

ENDIF.

ENDIF.

ENDIF.

IF IT_FINAL3-DAYS GT '15' AND IT_FINAL2-DAYS LE '30'.

  • IT_FINAL-15TO30 = IT_FINAL-15TO30 + IT_FINAL3-LABST.

TOTAL = TOTAL - IT_FINAL3-ERFMG.

IF F = 0.

IF TOTAL GE 0.

C_30 = C_30 + IT_FINAL3-ERFMG.

ELSE.

F = 1.

C_30 = C_30 + TOTAL + IT_FINAL3-ERFMG.

ENDIF.

ENDIF.

ENDIF.

IF IT_FINAL3-DAYS GT '30' AND IT_FINAL3-DAYS LE '60'.

  • IT_FINAL-30TO60 = IT_FINAL-30TO60 + IT_FINAL3-LABST.

TOTAL = TOTAL - IT_FINAL3-ERFMG.

IF F = 0.

IF TOTAL GE 0.

C_60 = C_60 + IT_FINAL3-ERFMG.

ELSE.

F = 1.

C_60 = C_60 + TOTAL + IT_FINAL3-ERFMG.

ENDIF.

ENDIF.

ENDIF.

IF IT_FINAL3-DAYS GT '60' AND IT_FINAL3-DAYS LE '90'.

  • IT_FINAL-60TO90 = IT_FINAL-60TO90 + IT_FINAL3-LABST.

TOTAL = TOTAL - IT_FINAL3-ERFMG.

IF F = 0.

IF TOTAL GE 0.

C_90 = C_90 + IT_FINAL3-ERFMG.

ELSE.

F = 1.

C_90 = C_90 + TOTAL + IT_FINAL3-ERFMG.

ENDIF.

ENDIF.

ENDIF.

IF IT_FINAL3-DAYS GT '90'.

  • IT_FINAL-GT90 = IT_FINAL-GT90 + IT_FINAL3-LABST.

TOTAL = TOTAL - IT_FINAL3-ERFMG.

IF F = 0.

IF TOTAL GE 0.

C_T = C_T + IT_FINAL3-ERFMG.

ELSE.

F = 1.

C_T = C_T + TOTAL + IT_FINAL3-ERFMG.

ENDIF.

ENDIF.

ENDIF.

ENDLOOP.

ENDIF.

ENDLOOP.

IT_FINAL-0TO15 = C_15.

IT_FINAL-15TO30 = C_30.

IT_FINAL-30TO60 = C_60.

IT_FINAL-60TO90 = C_90.

IT_FINAL-GT90 = C_T.

APPEND IT_FINAL.

CLEAR:C_15,C_30,C_60,C_90,C_T.

CLEAR IT_FINAL3[].

ENDFORM. " CALC_TOTAL_STOCK

Read only

Former Member
0 Likes
1,461

see for this change the logic of the radio button validating . as below

if   radio1  =  'X'   OR radio2  = 'X' OR  radio3  = 'X'.
  fieldcatalog-fieldname   = '1'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

1,2,3,4,5 &6  Fields   of  fields catalogs as  above  .
endif  .

if  radio2  = 'X' OR  radio3  = 'X' .
  fieldcatalog-fieldname   = '7'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

7th  Field.
endif .


if   radio3  = 'X' .
  fieldcatalog-fieldname   = '8'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

8th,9th, & 10th  Fields  .

endif .

reward points if it is usefull ...

Girish

Read only

Former Member
0 Likes
1,461

Hi

Put a break-point at the endform of fieldcatalog population and at the display of contents of internal table.

Check the contents of field catalog and the data of IT_FINAL for any discrepancies.

Regards

Raj