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.
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
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.
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
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.
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.
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
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.
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 'I'.
ELSE.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'E:\RAT.TXT'
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_MARA2.
IF SY-SUBRC = 0.
MESSAGE 'DATA SUCCESSFULLY DOWNLOADED' TYPE 'I'.
ENDIF.
ENDIF.
ENDIF.
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(25) TYPE C.data : vline type i.
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.
TOP-OF-PAGE.
WRITE:/33 'BASIC LIST WITH MATERIAL DATA' COLOR 7.
WRITE:/ SY-ULINE.
AT LINE-SELECTION.
GET CURSOR FIELD V_FNAME
VALUE V_FVAL.
IF V_FNAME = 'WA_MARA-MATNR'.
PERFORM DISPLAY_MATNR.ELSEIF V_FNAME = 'WA_MARA-MTART'.
PERFORM DISPLAY_MTART.ELSEIF V_FNAME = 'WA_MARA-MATKL'.
PERFORM DISPLAY_MAKTL.
ENDIF.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE:/ SY-ULINE.
WRITE:/33 'SECONDARY SCREEN WITH ITEM DATA' COLOR 6.
WRITE:/ SY-ULINE.
write:/ sy-uline.
write:/33 'all rights reserved' color 6.
write:/ sy-uline.
*&---------------------------------------------------------------------*
*& Form DISPLAY_MATNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_MATNR .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.
vline = sy-linct - sy-linno.skip vline.
ENDFORM. " DISPLAY_MATNR
*&---------------------------------------------------------------------*
*& Form DISPLAY_MTART
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_MTART .CLEAR WA_T134.SELECT * FROM T134 INTO WA_T134 WHERE MTART = V_FVAL.
ENDSELECT.
WRITE:/ WA_T134-MTART,
WA_T134-MTREF,
WA_T134-MBREF.
vline = sy-linct - sy-linno.skip vline.
ENDFORM. " DISPLAY_MTART
*&---------------------------------------------------------------------*
*& Form DISPLAY_MAKTL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_MAKTL .CLEAR WA_T023.SELECT * FROM T023 INTO WA_T023 WHERE MATKL = V_FVAL.
ENDSELECT.
WRITE:/ WA_T023-MATKL,
WA_T023-SPART,
WA_T023-LREF3.
vline = sy-linct - sy-linno.skip vline.
ENDFORM. " DISPLAY_MAKTL
ConversionConversion EmoticonEmoticon