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

Problem with ALV Grid Display screen Back Button

Former Member
0 Likes
1,861

Dear Friends ,

I have an ALV Grid Display,Here am facing a problem for my 'Back' button,i haven't defined any PF Status and is using the standard one.But after the Display when i press Back Button a blank Screen is appearing n then again i have to press back button to go to my Selection Screen.

Please Suggest if i have to take care of something else.

I want my Selection Screen when i press Back on my Display Screen.

DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = 'ZRMMPD01A'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

Thanks and Regards,

Ashwini

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,039

Hi Vijay ,

No i dont have any write statement in my proggram.

Here it is

REPORT ZRMMPD01A NO STANDARD PAGE HEADING.

TABLES : EQUI,SER03,MKPF,OBJK.

TYPE-POOLS : SLIS.

DATA IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.

DATA IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..

DATA IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.

DATA IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .

DATA : BEGIN OF IT_DISPLAY OCCURS 0,

MATNR LIKE EQUI-MATNR,

SERNR LIKE EQUI-SERNR,

BWART LIKE SER03-BWART,

WERK LIKE SER03-WERK,

CHARGE LIKE SER03-CHARGE,

LAGERORT LIKE SER03-LAGERORT,

MBLNR LIKE SER03-MBLNR,

MJAHR LIKE SER03-MJAHR,

ZEILE LIKE SER03-ZEILE,

BUDAT LIKE MKPF-BUDAT,

BKTXT LIKE MKPF-BKTXT,

USNAM LIKE MKPF-USNAM,

XBLNR LIKE MKPF-XBLNR,

END OF IT_DISPLAY.

DATA : WA_DISPLAY LIKE IT_DISPLAY.

DATA IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.

DATA IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.

DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,

I_EVENTS TYPE SLIS_T_EVENT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY

S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY

S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,

S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,

S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,

S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,

S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,

S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',

R2 RADIOBUTTON GROUP G1.

SELECTION-SCREEN END OF BLOCK B2.

START-OF-SELECTION.

*Fetch Data.

PERFORM GET_DATA.

*Fill Display Fields.

PERFORM FILL_TABLE.

*Segregate data according to radio button selection.

PERFORM SELECT_CONDITION.

*Fill The Feild catalog.

PERFORM FIELD_CATALOG.

*Display Output.

PERFORM OUTPUT_DISPLAY..

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA.

SELECT * FROM EQUI INTO TABLE IT_EQUI

WHERE MATNR IN S_MATNR

AND SERNR IN S_SERNR.

SELECT * FROM OBJK INTO TABLE IT_OBJK

FOR ALL ENTRIES IN IT_EQUI

WHERE EQUNR = IT_EQUI-EQUNR.

SELECT * FROM SER03 INTO TABLE IT_SER03

FOR ALL ENTRIES IN IT_OBJK

WHERE OBKNR = IT_OBJK-OBKNR

AND MBLNR IN S_MBLNR

AND BWART IN S_BWART

AND WERK IN S_WERK

AND LAGERORT IN S_LAGET.

SELECT * FROM MKPF INTO TABLE IT_MKPF

FOR ALL ENTRIES IN IT_SER03

WHERE MBLNR = IT_SER03-MBLNR

AND BUDAT IN S_BUDAT

AND XBLNR IN S_XBLNR.

ENDFORM. " GET_DATA

&----


*& Form FILL_TABLE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_TABLE.

LOOP AT IT_EQUI.

LOOP AT IT_OBJK.

IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.

SKIP.

ELSE.

READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.

IF SY-SUBRC = 0.

WA_DISPLAY-MATNR = IT_EQUI-MATNR.

WA_DISPLAY-SERNR = IT_EQUI-SERNR.

WA_DISPLAY-BWART = IT_SER03-BWART.

WA_DISPLAY-WERK = IT_SER03-WERK.

WA_DISPLAY-CHARGE = IT_SER03-CHARGE.

WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.

WA_DISPLAY-MBLNR = IT_SER03-MBLNR.

WA_DISPLAY-MJAHR = IT_SER03-MJAHR.

WA_DISPLAY-ZEILE = IT_SER03-ZEILE.

READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.

IF SY-SUBRC = 0.

WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.

WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.

WA_DISPLAY-USNAM = IT_MKPF-USNAM.

WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.

ENDIF.

ENDIF.

ENDIF.

IF NOT WA_DISPLAY IS INITIAL.

APPEND WA_DISPLAY TO IT_DISPLAY.

CLEAR WA_DISPLAY.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDFORM. " FILL_TABLE

&----


*& Form FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MATNR'.

FIELDCAT-SELTEXT_M = 'Material Number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'SERNR'.

FIELDCAT-SELTEXT_M = 'Serial number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MBLNR'.

FIELDCAT-SELTEXT_L = 'Number of material document'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BWART'.

FIELDCAT-SELTEXT_M = 'Movement type'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'WERK'.

FIELDCAT-SELTEXT_M = 'Plant'.

FIELDCAT-OUTPUTLEN = 5.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'CHARGE'.

FIELDCAT-SELTEXT_M = 'Batch number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'LAGERORT'.

FIELDCAT-SELTEXT_M = 'Storage Location'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MJAHR'.

FIELDCAT-SELTEXT_M = 'Material doc. year'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'ZEILE'.

FIELDCAT-SELTEXT_L = 'Item in material document'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BUDAT'.

FIELDCAT-SELTEXT_L = 'Posting date in the document'.

FIELDCAT-OUTPUTLEN = 10.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BKTXT'.

FIELDCAT-SELTEXT_L = 'Document header text'.

FIELDCAT-OUTPUTLEN = 25.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'USNAM'.

FIELDCAT-SELTEXT_M = 'User name'.

FIELDCAT-OUTPUTLEN = 15.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'XBLNR'.

FIELDCAT-SELTEXT_L = 'Reference document number'.

FIELDCAT-OUTPUTLEN = 25.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

ENDFORM. " FIELD_CATALOG

&----


*& Form DISPLAY_OUTPUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM OUTPUT_DISPLAY.

IF R1 = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZRMMPD01A'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = IT_DISPLAY

EXCEPTIONS

PROGRAM_ERROR = 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.

REFRESH IT_DISPLAY.

CLEAR IT_DISPLAY.

ELSEIF R2 = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZRMMPD01A'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 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.

REFRESH IT_DISPLAY.

CLEAR IT_DISPLAY.

ENDIF.

ENDFORM. " DISPLAY_OUTPUT

&----


*& Form SELECT_CONDITION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SELECT_CONDITION.

IF R2 = 'X'.

CLEAR WA_DISPLAY.

SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.

DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.

LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.

READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR

SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.

IF SY-SUBRC = 0.

DELETE IT_DISPLAY.

ENDIF.

ENDLOOP.

SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.

DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.

LOOP AT IT_DISPLAY.

IF WA_DISPLAY IS INITIAL.

WA_DISPLAY = IT_DISPLAY.

ENDIF.

LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR

AND SERNR = WA_DISPLAY-SERNR.

IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.

WA_DISPLAY = IT_DISPLAY.

ELSE.

DELETE IT_DISPLAY.

ENDIF.

ENDLOOP.

APPEND WA_DISPLAY TO IT_TEMP.

CLEAR WA_DISPLAY.

ENDLOOP.

DELETE ADJACENT DUPLICATES FROM IT_TEMP.

IF NOT IT_TEMP[] IS INITIAL.

IT_FINAL[] = IT_TEMP[].

ENDIF.

ENDIF.

ENDFORM. " SELECT_CONDITION

Regards,

Ashwini

6 REPLIES 6
Read only

Former Member
0 Likes
1,039

Hi,

Give your complete coding. and some where you are using some write statements. that is causing the problem. try to turn them off.

check

you have some <b>write</b> statements in your code.

Regards

vijay

Read only

Former Member
0 Likes
1,039

Hi,

There will be some WRITE Statement that is what creating a problem of blank screen.

Read only

Former Member
0 Likes
1,039

hi ,

Check your field catalog ...

Read only

Former Member
0 Likes
1,040

Hi Vijay ,

No i dont have any write statement in my proggram.

Here it is

REPORT ZRMMPD01A NO STANDARD PAGE HEADING.

TABLES : EQUI,SER03,MKPF,OBJK.

TYPE-POOLS : SLIS.

DATA IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.

DATA IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..

DATA IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.

DATA IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .

DATA : BEGIN OF IT_DISPLAY OCCURS 0,

MATNR LIKE EQUI-MATNR,

SERNR LIKE EQUI-SERNR,

BWART LIKE SER03-BWART,

WERK LIKE SER03-WERK,

CHARGE LIKE SER03-CHARGE,

LAGERORT LIKE SER03-LAGERORT,

MBLNR LIKE SER03-MBLNR,

MJAHR LIKE SER03-MJAHR,

ZEILE LIKE SER03-ZEILE,

BUDAT LIKE MKPF-BUDAT,

BKTXT LIKE MKPF-BKTXT,

USNAM LIKE MKPF-USNAM,

XBLNR LIKE MKPF-XBLNR,

END OF IT_DISPLAY.

DATA : WA_DISPLAY LIKE IT_DISPLAY.

DATA IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.

DATA IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.

DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,

I_EVENTS TYPE SLIS_T_EVENT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY

S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY

S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,

S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,

S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,

S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,

S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,

S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',

R2 RADIOBUTTON GROUP G1.

SELECTION-SCREEN END OF BLOCK B2.

START-OF-SELECTION.

*Fetch Data.

PERFORM GET_DATA.

*Fill Display Fields.

PERFORM FILL_TABLE.

*Segregate data according to radio button selection.

PERFORM SELECT_CONDITION.

*Fill The Feild catalog.

PERFORM FIELD_CATALOG.

*Display Output.

PERFORM OUTPUT_DISPLAY..

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA.

SELECT * FROM EQUI INTO TABLE IT_EQUI

WHERE MATNR IN S_MATNR

AND SERNR IN S_SERNR.

SELECT * FROM OBJK INTO TABLE IT_OBJK

FOR ALL ENTRIES IN IT_EQUI

WHERE EQUNR = IT_EQUI-EQUNR.

SELECT * FROM SER03 INTO TABLE IT_SER03

FOR ALL ENTRIES IN IT_OBJK

WHERE OBKNR = IT_OBJK-OBKNR

AND MBLNR IN S_MBLNR

AND BWART IN S_BWART

AND WERK IN S_WERK

AND LAGERORT IN S_LAGET.

SELECT * FROM MKPF INTO TABLE IT_MKPF

FOR ALL ENTRIES IN IT_SER03

WHERE MBLNR = IT_SER03-MBLNR

AND BUDAT IN S_BUDAT

AND XBLNR IN S_XBLNR.

ENDFORM. " GET_DATA

&----


*& Form FILL_TABLE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_TABLE.

LOOP AT IT_EQUI.

LOOP AT IT_OBJK.

IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.

SKIP.

ELSE.

READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.

IF SY-SUBRC = 0.

WA_DISPLAY-MATNR = IT_EQUI-MATNR.

WA_DISPLAY-SERNR = IT_EQUI-SERNR.

WA_DISPLAY-BWART = IT_SER03-BWART.

WA_DISPLAY-WERK = IT_SER03-WERK.

WA_DISPLAY-CHARGE = IT_SER03-CHARGE.

WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.

WA_DISPLAY-MBLNR = IT_SER03-MBLNR.

WA_DISPLAY-MJAHR = IT_SER03-MJAHR.

WA_DISPLAY-ZEILE = IT_SER03-ZEILE.

READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.

IF SY-SUBRC = 0.

WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.

WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.

WA_DISPLAY-USNAM = IT_MKPF-USNAM.

WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.

ENDIF.

ENDIF.

ENDIF.

IF NOT WA_DISPLAY IS INITIAL.

APPEND WA_DISPLAY TO IT_DISPLAY.

CLEAR WA_DISPLAY.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDFORM. " FILL_TABLE

&----


*& Form FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MATNR'.

FIELDCAT-SELTEXT_M = 'Material Number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'SERNR'.

FIELDCAT-SELTEXT_M = 'Serial number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MBLNR'.

FIELDCAT-SELTEXT_L = 'Number of material document'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BWART'.

FIELDCAT-SELTEXT_M = 'Movement type'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'WERK'.

FIELDCAT-SELTEXT_M = 'Plant'.

FIELDCAT-OUTPUTLEN = 5.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'CHARGE'.

FIELDCAT-SELTEXT_M = 'Batch number'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'LAGERORT'.

FIELDCAT-SELTEXT_M = 'Storage Location'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'MJAHR'.

FIELDCAT-SELTEXT_M = 'Material doc. year'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'ZEILE'.

FIELDCAT-SELTEXT_L = 'Item in material document'.

FIELDCAT-OUTPUTLEN = 18.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BUDAT'.

FIELDCAT-SELTEXT_L = 'Posting date in the document'.

FIELDCAT-OUTPUTLEN = 10.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'BKTXT'.

FIELDCAT-SELTEXT_L = 'Document header text'.

FIELDCAT-OUTPUTLEN = 25.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'USNAM'.

FIELDCAT-SELTEXT_M = 'User name'.

FIELDCAT-OUTPUTLEN = 15.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

FIELDCAT-TABNAME = 'IT_DISPLAY'.

FIELDCAT-FIELDNAME = 'XBLNR'.

FIELDCAT-SELTEXT_L = 'Reference document number'.

FIELDCAT-OUTPUTLEN = 25.

APPEND FIELDCAT TO IT_FIELDCAT.

CLEAR FIELDCAT.

ENDFORM. " FIELD_CATALOG

&----


*& Form DISPLAY_OUTPUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM OUTPUT_DISPLAY.

IF R1 = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZRMMPD01A'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = IT_DISPLAY

EXCEPTIONS

PROGRAM_ERROR = 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.

REFRESH IT_DISPLAY.

CLEAR IT_DISPLAY.

ELSEIF R2 = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZRMMPD01A'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 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.

REFRESH IT_DISPLAY.

CLEAR IT_DISPLAY.

ENDIF.

ENDFORM. " DISPLAY_OUTPUT

&----


*& Form SELECT_CONDITION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SELECT_CONDITION.

IF R2 = 'X'.

CLEAR WA_DISPLAY.

SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.

DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.

LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.

READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR

SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.

IF SY-SUBRC = 0.

DELETE IT_DISPLAY.

ENDIF.

ENDLOOP.

SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.

DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.

LOOP AT IT_DISPLAY.

IF WA_DISPLAY IS INITIAL.

WA_DISPLAY = IT_DISPLAY.

ENDIF.

LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR

AND SERNR = WA_DISPLAY-SERNR.

IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.

WA_DISPLAY = IT_DISPLAY.

ELSE.

DELETE IT_DISPLAY.

ENDIF.

ENDLOOP.

APPEND WA_DISPLAY TO IT_TEMP.

CLEAR WA_DISPLAY.

ENDLOOP.

DELETE ADJACENT DUPLICATES FROM IT_TEMP.

IF NOT IT_TEMP[] IS INITIAL.

IT_FINAL[] = IT_TEMP[].

ENDIF.

ENDIF.

ENDFORM. " SELECT_CONDITION

Regards,

Ashwini

Read only

0 Likes
1,039

Hi Ashwini,

yes you have one , it is causing the Trouble.Not write , but Skip it is related to Write statement.

REPORT ZRMMPD01A  NO STANDARD PAGE HEADING.


TABLES : EQUI,SER03,MKPF,OBJK.

TYPE-POOLS : SLIS.

DATA  IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.
DATA  IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..
DATA  IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.
DATA  IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .


DATA : BEGIN OF IT_DISPLAY OCCURS 0,
            MATNR LIKE EQUI-MATNR,
            SERNR LIKE EQUI-SERNR,
            BWART LIKE SER03-BWART,
            WERK LIKE SER03-WERK,
            CHARGE LIKE SER03-CHARGE,
            LAGERORT LIKE SER03-LAGERORT,
            MBLNR LIKE SER03-MBLNR,
            MJAHR LIKE SER03-MJAHR,
            ZEILE LIKE SER03-ZEILE,
            BUDAT LIKE MKPF-BUDAT,
            BKTXT LIKE MKPF-BKTXT,
            USNAM LIKE MKPF-USNAM,
            XBLNR LIKE MKPF-XBLNR,
        END OF IT_DISPLAY.

DATA : WA_DISPLAY LIKE IT_DISPLAY.

DATA  IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
DATA  IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.

DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
       FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,
      I_EVENTS TYPE SLIS_T_EVENT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY
                S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY
                S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,
                S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,
                S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,
                S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,
                S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,
                S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.
SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',
             R2 RADIOBUTTON GROUP G1.

SELECTION-SCREEN END OF BLOCK B2.



START-OF-SELECTION.

*Fetch Data.
  PERFORM GET_DATA.

*Fill Display Fields.
  PERFORM FILL_TABLE.

*Segregate data according to radio button selection.
  PERFORM SELECT_CONDITION.


*Fill The Feild catalog.
  PERFORM FIELD_CATALOG.

*Display Output.
  PERFORM OUTPUT_DISPLAY..

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA.


  SELECT * FROM EQUI INTO TABLE IT_EQUI
    WHERE MATNR IN S_MATNR
    AND SERNR IN S_SERNR.

  SELECT * FROM OBJK INTO TABLE IT_OBJK
  FOR ALL ENTRIES IN IT_EQUI
  WHERE EQUNR = IT_EQUI-EQUNR.


  SELECT * FROM SER03 INTO TABLE IT_SER03
  FOR ALL ENTRIES IN IT_OBJK
  WHERE OBKNR = IT_OBJK-OBKNR
  AND MBLNR IN S_MBLNR
  AND BWART IN S_BWART
  AND WERK IN S_WERK
  AND LAGERORT IN S_LAGET.

  SELECT * FROM MKPF INTO TABLE IT_MKPF
  FOR ALL ENTRIES IN IT_SER03
  WHERE MBLNR = IT_SER03-MBLNR
  AND BUDAT IN S_BUDAT
  AND XBLNR IN S_XBLNR.

ENDFORM.                    " GET_DATA


*&---------------------------------------------------------------------*
*&      Form  FILL_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FILL_TABLE.

  LOOP AT IT_EQUI.

    LOOP AT IT_OBJK.
      IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.
        CONTINUE
       "*<b>SKIP.</b>
      ELSE.

        READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.
        IF SY-SUBRC = 0.
          WA_DISPLAY-MATNR = IT_EQUI-MATNR.
          WA_DISPLAY-SERNR = IT_EQUI-SERNR.
          WA_DISPLAY-BWART = IT_SER03-BWART.
          WA_DISPLAY-WERK = IT_SER03-WERK.


          WA_DISPLAY-CHARGE = IT_SER03-CHARGE.
          WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.
          WA_DISPLAY-MBLNR = IT_SER03-MBLNR.
          WA_DISPLAY-MJAHR = IT_SER03-MJAHR.
          WA_DISPLAY-ZEILE = IT_SER03-ZEILE.

         READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.
          IF SY-SUBRC = 0.
            WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.
            WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.
            WA_DISPLAY-USNAM = IT_MKPF-USNAM.
            WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.
          ENDIF.
        ENDIF.
      ENDIF.
      IF NOT WA_DISPLAY IS INITIAL.
        APPEND WA_DISPLAY TO IT_DISPLAY.
        CLEAR WA_DISPLAY.
      ENDIF.
    ENDLOOP.
  ENDLOOP.
ENDFORM.                    " FILL_TABLE

*&---------------------------------------------------------------------*
*&      Form  FIELD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FIELD_CATALOG.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'MATNR'.
  FIELDCAT-SELTEXT_M = 'Material Number'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'SERNR'.
  FIELDCAT-SELTEXT_M = 'Serial number'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'MBLNR'.
  FIELDCAT-SELTEXT_L = 'Number of material document'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'BWART'.
  FIELDCAT-SELTEXT_M = 'Movement type'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'WERK'.
  FIELDCAT-SELTEXT_M = 'Plant'.
  FIELDCAT-OUTPUTLEN =  5.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'CHARGE'.
  FIELDCAT-SELTEXT_M = 'Batch number'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'LAGERORT'.
  FIELDCAT-SELTEXT_M = 'Storage Location'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'MJAHR'.
  FIELDCAT-SELTEXT_M = 'Material doc. year'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'ZEILE'.
  FIELDCAT-SELTEXT_L = 'Item in material document'.
  FIELDCAT-OUTPUTLEN =  18.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'BUDAT'.
  FIELDCAT-SELTEXT_L = 'Posting date in the document'.
  FIELDCAT-OUTPUTLEN =  10.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'BKTXT'.
  FIELDCAT-SELTEXT_L = 'Document header text'.
  FIELDCAT-OUTPUTLEN =  25.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'USNAM'.
  FIELDCAT-SELTEXT_M = 'User name'.
  FIELDCAT-OUTPUTLEN =  15.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

  FIELDCAT-TABNAME = 'IT_DISPLAY'.
  FIELDCAT-FIELDNAME = 'XBLNR'.
  FIELDCAT-SELTEXT_L = 'Reference document number'.
  FIELDCAT-OUTPUTLEN =  25.
  APPEND FIELDCAT TO IT_FIELDCAT.
  CLEAR FIELDCAT.

ENDFORM.                    " FIELD_CATALOG

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM OUTPUT_DISPLAY.

  IF R1 = 'X'.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
          I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
          IS_LAYOUT                   =  I_LAYOUT
          IT_FIELDCAT                 = IT_FIELDCAT

      TABLES
          T_OUTTAB                    = IT_DISPLAY
        EXCEPTIONS
             PROGRAM_ERROR               = 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.

    REFRESH IT_DISPLAY.
    CLEAR IT_DISPLAY.

  ELSEIF R2 = 'X'.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
             I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
             IS_LAYOUT                     =  I_LAYOUT
             IT_FIELDCAT                 =  IT_FIELDCAT
         TABLES
              T_OUTTAB                    = IT_FINAL
        EXCEPTIONS
             PROGRAM_ERROR               = 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.

    REFRESH IT_DISPLAY.
    CLEAR IT_DISPLAY.

  ENDIF.
ENDFORM.                    " DISPLAY_OUTPUT

*&---------------------------------------------------------------------*
*&      Form  SELECT_CONDITION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM SELECT_CONDITION.
  IF R2 = 'X'.
    CLEAR WA_DISPLAY.
    SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.
    DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.

    LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.
      READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR
      SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.
      IF SY-SUBRC = 0.
        DELETE IT_DISPLAY.
      ENDIF.
    ENDLOOP.

    SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.
    DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.


    LOOP AT IT_DISPLAY.
      IF WA_DISPLAY IS INITIAL.
        WA_DISPLAY =  IT_DISPLAY.
      ENDIF.
      LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR
      AND SERNR = WA_DISPLAY-SERNR.

        IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.

          WA_DISPLAY = IT_DISPLAY.
        ELSE.
          DELETE IT_DISPLAY.
        ENDIF.
      ENDLOOP.
      APPEND WA_DISPLAY TO IT_TEMP.
      CLEAR WA_DISPLAY.

    ENDLOOP.
    DELETE ADJACENT DUPLICATES FROM IT_TEMP.
    IF NOT IT_TEMP[] IS INITIAL.
      IT_FINAL[] = IT_TEMP[].
    ENDIF.
  ENDIF.
ENDFORM.                    " SELECT_CONDITION

Comment <b>Skip</b>, and use <b>continue</b>.

Check that, it is working fine now.

Regards

vijay

Read only

Former Member
0 Likes
1,039

Hi Vijay ,

Commenting 'Skip' has solved my problem.

Thanks A Lot.

Regards,

Ashwini