INTERACTIVE REPORTS USING HIDE
1)Business Req: Develop a Material master Report to display data in BASIC list and Desc details in SECONDARY list.
REPORT ZINTERACTIVE.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MATKL TYPE MARA-MATKL,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
TYPES: BEGIN OF TY_MAKT,
MATNR TYPE MAKT-MATNR,
SPRAS TYPE MAKT-SPRAS,
MAKTX TYPE MAKT-MAKTX,
MAKTG TYPE MAKT-MAKTG,
END OF TY_MAKT.
DATA: I_MARA TYPE TABLE OF TY_MARA.
DATA: WA_MARA TYPE TY_MARA.
DATA: I_MAKT TYPE TABLE OF TY_MAKT.
DATA: WA_MAKT TYPE TY_MAKT.
PARAMETERS P_MAKTL TYPE MARA-MATKL.
SELECT MATNR
MTART
MBRSH
MATKL
MEINS FROM MARA
INTO TABLE I_MARA WHERE MATKL = P_MAKTL.LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MATKL,
WA_MARA-MEINS.
HIDE: WA_MARA-MATNR.
ENDLOOP.
AT LINE-SELECTION.
SELECT MATNR SPRAS MAKTX MAKTG
FROM MAKT
INTO TABLE I_MAKT
WHERE MATNR = WA_MARA-MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
WA_MAKT-SPRAS,
WA_MAKT-MAKTG,
WA_MAKT-MAKTX.
ENDLOOP.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MATKL TYPE MARA-MATKL,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
TYPES: BEGIN OF TY_MAKT,
MATNR TYPE MAKT-MATNR,
SPRAS TYPE MAKT-SPRAS,
MAKTX TYPE MAKT-MAKTX,
MAKTG TYPE MAKT-MAKTG,
END OF TY_MAKT.
DATA: I_MARA TYPE TABLE OF TY_MARA.
DATA: WA_MARA TYPE TY_MARA.
DATA: I_MAKT TYPE TABLE OF TY_MAKT.
DATA: WA_MAKT TYPE TY_MAKT.
PARAMETERS P_MAKTL TYPE MARA-MATKL.
SELECT MATNR
MTART
MBRSH
MATKL
MEINS FROM MARA
INTO TABLE I_MARA WHERE MATKL = P_MAKTL.LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MATKL,
WA_MARA-MEINS.
HIDE: WA_MARA-MATNR.
ENDLOOP.
AT LINE-SELECTION.
SELECT MATNR SPRAS MAKTX MAKTG
FROM MAKT
INTO TABLE I_MAKT
WHERE MATNR = WA_MARA-MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
WA_MAKT-SPRAS,
WA_MAKT-MAKTG,
WA_MAKT-MAKTX.
ENDLOOP.
The Input Screen is:
The Output Screen is:
Double Click on Any Material no , It will displays Secondary List As Below.
Unit Testing (In Depth Subject):
Go to MM03
Give any Material no, Ex: AS-200
Press Enter
Select BASIC DATA1, Press Enter
2)Business Req: Develop a Purchase order Report to display PO Header data in BASIC list and PO Item details in SECONDARY list .
TYPES: BEGIN OF TY_EKKO,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
AEDAT TYPE EKKO-AEDAT,
ERNAM TYPE EKKO-ERNAM,
LIFNR TYPE EKKO-LIFNR,
END OF TY_EKKO.TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
END OF TY_EKPO.
DATA: I_EKKO TYPE TABLE OF TY_EKKO.
DATA: WA_EKKO TYPE TY_EKKO.
DATA: I_EKPO TYPE TABLE OF TY_EKPO.
DATA: WA_EKPO TYPE TY_EKPO.
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO INTO TABLE I_EKKO
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
AEDAT TYPE EKKO-AEDAT,
ERNAM TYPE EKKO-ERNAM,
LIFNR TYPE EKKO-LIFNR,
END OF TY_EKKO.TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
END OF TY_EKPO.
DATA: I_EKKO TYPE TABLE OF TY_EKKO.
DATA: WA_EKKO TYPE TY_EKKO.
DATA: I_EKPO TYPE TABLE OF TY_EKPO.
DATA: WA_EKPO TYPE TY_EKPO.
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO INTO TABLE I_EKKO
WHERE BUKRS = P_BUKRS .
LOOP AT I_EKKO INTO WA_EKKO.
WRITE : / WA_EKKO-EBELN,
WA_EKKO-BUKRS,
WA_EKKO-AEDAT,
WA_EKKO-ERNAM,
WA_EKKO-LIFNR .
HIDE : WA_EKKO-EBELN .
ENDLOOP.
AT LINE-SELECTION .
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO
INTO TABLE I_EKPO
WHERE EBELN = WA_EKKO-EBELN .
LOOP AT I_EKPO INTO WA_EKPO.
WRITE : / WA_EKPO-EBELN,
WA_EKPO-EBELP,
WA_EKPO-MATNR,
WA_EKPO-MENGE,
WA_EKPO-NETPR.
ENDLOOP.
LOOP AT I_EKKO INTO WA_EKKO.
WRITE : / WA_EKKO-EBELN,
WA_EKKO-BUKRS,
WA_EKKO-AEDAT,
WA_EKKO-ERNAM,
WA_EKKO-LIFNR .
HIDE : WA_EKKO-EBELN .
ENDLOOP.
AT LINE-SELECTION .
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO
INTO TABLE I_EKPO
WHERE EBELN = WA_EKKO-EBELN .
LOOP AT I_EKPO INTO WA_EKPO.
WRITE : / WA_EKPO-EBELN,
WA_EKPO-EBELP,
WA_EKPO-MATNR,
WA_EKPO-MENGE,
WA_EKPO-NETPR.
ENDLOOP.
The Input Screen is:
The Output Screen is:
Double Click on Any Purchaseno , It will displays Secondary List As Below.
Unit Testing (In Depth Subject):
Go to ME23N
Click On OtherPurchaseOrder Button,
Give the PurchaseNo Ex: 4500017125
Press Enter
INTERACTIVE REPORTS USING GET CURSOR
1)Business Req: Develop a Material master Report to display Material general data in BASIC list with below functionality.
On double-click of material no, display description details.
On double-click of material type , display material type details.
On double-click of material group , display material group details.
DATA: I_MARA TYPE TABLE OF MARA.
DATA: WA_MARA TYPE MARA.
DATA: I_MAKT TYPE TABLE OF MAKT.
DATA: WA_MAKT TYPE MAKT.
DATA: WA_T134 TYPE T134.
DATA: WA_T023 TYPE T023.
DATA: V_FNAME TYPE STRING.
DATA: V_FVAL(20) TYPE C .
DATA: V_MATNR TYPE MARA-MATNR.
SELECT * FROM MARA INTO TABLE I_MARA UP TO 100 ROWS.
LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR,
WA_MARA-MTART,
wa_mara-matkl.
ENDLOOP.
AT LINE-SELECTION.
GET CURSOR FIELD V_FNAME
VALUE V_FVAL.
IF V_FNAME = 'WA_MARA-MATNR' .
PERFORM DISPLAY_DESC_DETAILS.
ELSEIF V_FNAME = 'WA_MARA-MTART'.
PERFORM DISPALY_MTART_DETAILS.
ELSEIF V_FNAME = 'WA_MARA-MATKL'.
PERFORM DISPLAY_MAKTL_DETAILS.
ENDIF.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DESC_DETAILS .CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_MATNR.
REFRESH i_makt.
SELECT * FROM MAKT INTO TABLE I_MAKT
WHERE MATNR = V_MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
WA_MAKT-SPRAS,
WA_MAKT-MAKTX.
ENDLOOP.
ENDFORM. " DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
*& Form DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPALY_MTART_DETAILS .CLEAR WA_T134.SELECT SINGLE * FROM T134
INTO WA_T134 WHERE MTART = V_FVAL.
WRITE:/ wa_t134-mtart,
WA_T134-MTREF,
WA_T134-PSTAT.
ENDFORM. " DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
*& Form DISPLAY_MAKTL_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_MAKTL_DETAILS .CLEAR wa_t023.SELECT SINGLE * FROM T023
INTO WA_T023 WHERE MATKL = V_FVAL.
WRITE:/ WA_T023-MATKL,
WA_T023-SPART,
WA_T023-ABTNR.
ENDFORM. " DISPLAY_MAKTL_DETAILS
DATA: WA_MARA TYPE MARA.
DATA: I_MAKT TYPE TABLE OF MAKT.
DATA: WA_MAKT TYPE MAKT.
DATA: WA_T134 TYPE T134.
DATA: WA_T023 TYPE T023.
DATA: V_FNAME TYPE STRING.
DATA: V_FVAL(20) TYPE C .
DATA: V_MATNR TYPE MARA-MATNR.
SELECT * FROM MARA INTO TABLE I_MARA UP TO 100 ROWS.
LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-MATNR,
WA_MARA-MTART,
wa_mara-matkl.
ENDLOOP.
AT LINE-SELECTION.
GET CURSOR FIELD V_FNAME
VALUE V_FVAL.
IF V_FNAME = 'WA_MARA-MATNR' .
PERFORM DISPLAY_DESC_DETAILS.
ELSEIF V_FNAME = 'WA_MARA-MTART'.
PERFORM DISPALY_MTART_DETAILS.
ELSEIF V_FNAME = 'WA_MARA-MATKL'.
PERFORM DISPLAY_MAKTL_DETAILS.
ENDIF.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_DESC_DETAILS .CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_MATNR.
REFRESH i_makt.
SELECT * FROM MAKT INTO TABLE I_MAKT
WHERE MATNR = V_MATNR.LOOP AT I_MAKT INTO WA_MAKT.
WRITE:/ WA_MAKT-MATNR,
WA_MAKT-SPRAS,
WA_MAKT-MAKTX.
ENDLOOP.
ENDFORM. " DISPLAY_DESC_DETAILS
*&---------------------------------------------------------------------*
*& Form DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPALY_MTART_DETAILS .CLEAR WA_T134.SELECT SINGLE * FROM T134
INTO WA_T134 WHERE MTART = V_FVAL.
WRITE:/ wa_t134-mtart,
WA_T134-MTREF,
WA_T134-PSTAT.
ENDFORM. " DISPALY_MTART_DETAILS
*&---------------------------------------------------------------------*
*& Form DISPLAY_MAKTL_DETAILS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_MAKTL_DETAILS .CLEAR wa_t023.SELECT SINGLE * FROM T023
INTO WA_T023 WHERE MATKL = V_FVAL.
WRITE:/ WA_T023-MATKL,
WA_T023-SPART,
WA_T023-ABTNR.
ENDFORM. " DISPLAY_MAKTL_DETAILS
2)Business Req: Develop a Purchase order Report to display PO Header data in BASIC list with below functionality.
On double-click of PO no, display Item details.
On double-click of Vendor No , display Vendor details.
TYPES : BEGIN OF TY_EKKO,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
AEDAT TYPE EKKO-AEDAT,
ERNAM TYPE EKKO-ERNAM,
LIFNR TYPE EKKO-LIFNR,
END OF TY_EKKO.
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
END OF TY_EKPO.
DATA : I_EKKO TYPE TABLE OF TY_EKKO.DATA : I_EKPO TYPE TABLE OF TY_EKPO.DATA : WA_EKKO TYPE TY_EKKO .DATA : WA_EKPO TYPE TY_EKPO .DATA : WA_LFA1 TYPE LFA1.
DATA : V_FNAME TYPE STRING .DATA : V_FVAL(25) TYPE C .DATA : V_LIFNR TYPE LFA1-LIFNR .DATA : V_EBELN TYPE EKKO-EBELN .
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO
INTO TABLE I_EKKO WHERE BUKRS = P_BUKRS .
LOOP AT I_EKKO INTO WA_EKKO.
WRITE : / WA_EKKO-EBELN,
WA_EKKO-BUKRS,
WA_EKKO-AEDAT,
WA_EKKO-ERNAM,
WA_EKKO-LIFNR .
ENDLOOP.
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
AEDAT TYPE EKKO-AEDAT,
ERNAM TYPE EKKO-ERNAM,
LIFNR TYPE EKKO-LIFNR,
END OF TY_EKKO.
TYPES : BEGIN OF TY_EKPO,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
MENGE TYPE EKPO-MENGE,
NETPR TYPE EKPO-NETPR,
END OF TY_EKPO.
DATA : I_EKKO TYPE TABLE OF TY_EKKO.DATA : I_EKPO TYPE TABLE OF TY_EKPO.DATA : WA_EKKO TYPE TY_EKKO .DATA : WA_EKPO TYPE TY_EKPO .DATA : WA_LFA1 TYPE LFA1.
DATA : V_FNAME TYPE STRING .DATA : V_FVAL(25) TYPE C .DATA : V_LIFNR TYPE LFA1-LIFNR .DATA : V_EBELN TYPE EKKO-EBELN .
PARAMETERS : P_BUKRS TYPE EKKO-BUKRS.
SELECT EBELN BUKRS AEDAT ERNAM LIFNR FROM EKKO
INTO TABLE I_EKKO WHERE BUKRS = P_BUKRS .
LOOP AT I_EKKO INTO WA_EKKO.
WRITE : / WA_EKKO-EBELN,
WA_EKKO-BUKRS,
WA_EKKO-AEDAT,
WA_EKKO-ERNAM,
WA_EKKO-LIFNR .
ENDLOOP.
AT LINE-SELECTION .
GET CURSOR FIELD V_FNAME
VALUE V_FVAL .
IF V_FNAME = 'WA_EKKO-EBELN' .
PERFORM DISPLAY_PO_ITEMS .
ELSEIF V_FNAME = 'WA_EKKO-LIFNR' .
PERFORM DISPLAY_VENDOR_DETAILS.
ENDIF .
*&---------------------------------------------------------------------*
*& Form DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_PO_ITEMS .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_EBELN.
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO INTO TABLE
I_EKPO WHERE EBELN = V_EBELN .
LOOP AT I_EKPO INTO WA_EKPO.
WRITE : / WA_EKPO-EBELN,
WA_EKPO-EBELP,
WA_EKPO-MATNR,
WA_EKPO-MENGE,
WA_EKPO-NETPR.
ENDLOOP.ENDFORM . "DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
*& Form FORM
*&---------------------------------------------------------------------*
FORM DISPLAY_VENDOR_DETAILS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_LIFNR.
SELECT SINGLE * FROM LFA1 INTO WA_LFA1 WHERE LIFNR = V_LIFNR .
WRITE : / WA_LFA1-LIFNR ,
WA_LFA1-LAND1 ,
WA_LFA1-NAME1 ,
WA_LFA1-ORT01 .ENDFORM . "FORM ENDLOOP.
GET CURSOR FIELD V_FNAME
VALUE V_FVAL .
IF V_FNAME = 'WA_EKKO-EBELN' .
PERFORM DISPLAY_PO_ITEMS .
ELSEIF V_FNAME = 'WA_EKKO-LIFNR' .
PERFORM DISPLAY_VENDOR_DETAILS.
ENDIF .
*&---------------------------------------------------------------------*
*& Form DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM DISPLAY_PO_ITEMS .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_EBELN.
SELECT EBELN EBELP MATNR MENGE NETPR FROM EKPO INTO TABLE
I_EKPO WHERE EBELN = V_EBELN .
LOOP AT I_EKPO INTO WA_EKPO.
WRITE : / WA_EKPO-EBELN,
WA_EKPO-EBELP,
WA_EKPO-MATNR,
WA_EKPO-MENGE,
WA_EKPO-NETPR.
ENDLOOP.ENDFORM . "DISPLAY_PO_ITEMS
*&---------------------------------------------------------------------*
*& Form FORM
*&---------------------------------------------------------------------*
FORM DISPLAY_VENDOR_DETAILS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_FVAL
IMPORTING
OUTPUT = V_LIFNR.
SELECT SINGLE * FROM LFA1 INTO WA_LFA1 WHERE LIFNR = V_LIFNR .
WRITE : / WA_LFA1-LIFNR ,
WA_LFA1-LAND1 ,
WA_LFA1-NAME1 ,
WA_LFA1-ORT01 .ENDFORM . "FORM ENDLOOP.
INTERACTIVE REPORTS USING CUSTOM BUTTONS
1)Business Req: Develop a Material Master Report with below functionality.
Place 3 custom buttons on Application Tool Bar
SelectAll, De-SelectAll, Download
Whenever the userclick on Download, The selected records should be downloaded into FlatFile
TYPES: BEGIN OF TY_MARA,
CHK(1) TYPE C,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
TYPES: BEGIN OF TY_MARA2,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA2.
TYPES: BEGIN OF TY_MARA3,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA3.
DATA: I_MARA TYPE TABLE OF TY_MARA.
DATA: WA_MARA TYPE TY_MARA.
DATA: I_MARA2 TYPE TABLE OF TY_MARA2.
DATA: WA_MARA2 TYPE TY_MARA2.
DATA: I_MARA3 TYPE TABLE OF TY_MARA3.
DATA: WA_MARA3 TYPE TY_MARA3.
DATA: V_LINES TYPE I.
DATA: V_LINES1 TYPE I.
DATA: V_LINES2 TYPE I.
CHK(1) TYPE C,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
TYPES: BEGIN OF TY_MARA2,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA2.
TYPES: BEGIN OF TY_MARA3,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA3.
DATA: I_MARA TYPE TABLE OF TY_MARA.
DATA: WA_MARA TYPE TY_MARA.
DATA: I_MARA2 TYPE TABLE OF TY_MARA2.
DATA: WA_MARA2 TYPE TY_MARA2.
DATA: I_MARA3 TYPE TABLE OF TY_MARA3.
DATA: WA_MARA3 TYPE TY_MARA3.
DATA: V_LINES TYPE I.
DATA: V_LINES1 TYPE I.
DATA: V_LINES2 TYPE I.
SET PF-STATUS 'MENU'.------>Double click and Create 3
Similarly, Activate BACK Button.
Save->Activate
SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE I_MARA
WHERE MTART = 'FERT'.LOOP AT I_MARA INTO WA_MARA.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.AT USER-COMMAND.
SY-LSIND = 0.
IF SY-UCOMM = 'SALL'.
LOOP AT I_MARA INTO WA_MARA.
WA_MARA-CHK = 'X'.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.
ELSEIF SY-UCOMM = 'DALL'.
LOOP AT I_MARA INTO WA_MARA.
WA_MARA-CHK = ' '.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.
ELSEIF SY-UCOMM = 'DLOAD'.
DESCRIBE TABLE I_MARA LINES V_LINES.
DO V_LINES TIMES.
READ LINE SY-INDEX FIELD VALUE WA_MARA-CHK
WA_MARA-MATNR
WA_MARA-MTART
WA_MARA-MBRSH
WA_MARA-MEINS.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.AT USER-COMMAND.
SY-LSIND = 0.
IF SY-UCOMM = 'SALL'.
LOOP AT I_MARA INTO WA_MARA.
WA_MARA-CHK = 'X'.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.
ELSEIF SY-UCOMM = 'DALL'.
LOOP AT I_MARA INTO WA_MARA.
WA_MARA-CHK = ' '.
WRITE:/ WA_MARA-CHK AS CHECKBOX,
WA_MARA-MATNR,
WA_MARA-MTART,
WA_MARA-MBRSH,
WA_MARA-MEINS.
ENDLOOP.
ELSEIF SY-UCOMM = 'DLOAD'.
DESCRIBE TABLE I_MARA LINES V_LINES.
DO V_LINES TIMES.
READ LINE SY-INDEX FIELD VALUE WA_MARA-CHK
WA_MARA-MATNR
WA_MARA-MTART
WA_MARA-MBRSH
WA_MARA-MEINS.
IF WA_MARA-CHK = 'X'.
MOVE-CORRESPONDING WA_MARA TO WA_MARA2.
APPEND WA_MARA2 TO I_MARA2.
DESCRIBE TABLE I_MARA2 LINES V_LINES1.
ELSEIF WA_MARA-CHK = ' '.
MOVE-CORRESPONDING WA_MARA TO WA_MARA3.
APPEND WA_MARA3 TO I_MARA3.
DESCRIBE TABLE I_MARA3 LINES V_LINES2.
ENDIF.
ENDDO.
IF V_LINES2 <> '0' AND V_LINES1 = '0'.
MESSAGE 'PLEASE SELECT THE RECORDS FOR DOWNLOAD' TYPE
MOVE-CORRESPONDING WA_MARA TO WA_MARA2.
APPEND WA_MARA2 TO I_MARA2.
DESCRIBE TABLE I_MARA2 LINES V_LINES1.
ELSEIF WA_MARA-CHK = ' '.
MOVE-CORRESPONDING WA_MARA TO WA_MARA3.
APPEND WA_MARA3 TO I_MARA3.
DESCRIBE TABLE I_MARA3 LINES V_LINES2.
ENDIF.
ENDDO.
IF V_LINES2 <> '0' AND V_LINES1 = '0'.
MESSAGE 'PLEASE SELECT THE RECORDS FOR DOWNLOAD' TYPE