Tips and Tricks for the ABAP® Programming Language
YPROD001 – Drilled down report for a selected material
For a given plant name it first display the material names available in the plant. You can then drill down for any material of this plant.
ABAP™-Source-Code
You can copy and paste the source code directly into the ABAP™-Workbench.
REPORT YPROD001 LINE-SIZE 250. "20010411, Release 1.0
*
********************** HEADER **************
*
* Copyright (c) 1999 by xxxx xxx, 44318 Anywhere, http://xxxxx
* or: Copyright (c) 1999 by X.X. from X.
*
* You can use or modify this report for your own work as long
* as you don't try to sell or republish it.
* In no event will the author be liable for indirect, special,
* Incidental, or consequental damages (if any) arising out of
* the use of this report.
*//////////////////////////////////////////////////////////////////////*
* Append your coding here ...
*-----------------------------------------------------------------------
* PROGRAM SPECIFICATION
*----------------------------------------------------------------------
* Programmer Name : Kannan K *
*
* Report Title : Drilled down report for a selected material
*
*
* Description : for a given plant name it first display the
* material names available in the plant.you
* can
* click(hotspot) any material,you will be
* displayed the list of production order
* details(as secondary list) for the selected
* material, with the push buttons where you
* can
* see the related purchase order or material
* document or details of production order or
* status of production order by clicking any
* one of the push button.
*
*-----------------------------------------------------------------------
INCLUDE <LIST>.
TABLES:MSEG,MARD,AUFK,AFKO,AFPO,EKKO,EKPO,JEST,TJ02T.
DATA F(30) TYPE C.
SELECT-OPTIONS:PLANT FOR MARD-WERKS OBLIGATORY DEFAULT 'PL10'.
START-OF-SELECTION.
SET PF-STATUS 'BASIC'.
*SET TITLEBAR 'BASIC'.
FORMAT COLOR 6 INVERSE ON.
WRITE: /3 'PLANT', 15 'MATERIAL'.
FORMAT COLOR OFF INVERSE OFF.
ULINE.
SELECT * FROM MARD WHERE WERKS IN PLANT.
FORMAT HOTSPOT ON.
WRITE: /3 MARD-WERKS, 15 MARD-MATNR.
HIDE:MARD-WERKS,MARD-MATNR.
FORMAT HOTSPOT OFF.
ENDSELECT.
ULINE.
END-OF-SELECTION.
TOP-OF-PAGE.
WRITE: 'LIST OF MATERIAL IN PLANT: ',MARD-WERKS.
*HIDE:MARD-WERKS.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE SY-PFKEY.
WHEN 'SCREEN1'.
WRITE: 'DETAILS OF PRODUCTION ORDER FOR :',MARD-MATNR.
*HIDE:MARD-MATNR.
ULINE.
FORMAT COLOR 6 INVERSE ON.
WRITE: /1'ORD.NO', 20 'ORD.TYPE',40 'QUANTITY'.ULINE.
FORMAT COLOR OFF INVERSE OFF.
WHEN 'STATUS'.
WRITE: 'STATUS OF PROD.ORD.NO : ',AFKO-AUFNR.
ULINE.
FORMAT COLOR 5 INVERSE ON.
WRITE: /3 'STATUS',20 'DESCRIPTION'.
FORMAT COLOR OFF INVERSE OFF.ULINE.
WHEN 'SCREEN2'.
WRITE:'DETAILS OF PRODUCTION ORDER: ',AFKO-AUFNR.
ULINE.
WHEN 'SCREEN3'.
FORMAT COLOR 5 INVERSE ON.
WRITE: 'DETAILS OF MATERIAL DOCUMENT FOR :',MARD-MATNR.
ULINE.FORMAT COLOR OFF INVERSE OFF.
WHEN 'SCREEN4'.
WRITE: 'DETAILS OF MATERIAL DOCUMENT : ',MSEG-MBLNR.
ULINE.
WHEN 'NIT 5'.
WRITE: 'DETAILS OF PURCHASE ORDER FOR : ',MARD-MATNR.
ULINE.
WHEN 'SCREEN 6'.
WRITE: 'DETAILS OF PURCHASE ORDER : ',EKKO-EBELN.
HIDE:EKKO-EBELN.
ULINE.
ENDCASE.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SEL1'.
SET PF-STATUS 'SCREEN1'.
*SET TITLEBAR 'SCREEN1'.
SY-LSIND = 1.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
SELECT * FROM AFPO WHERE DWERK = MARD-WERKS AND MATNR = MARD-MATNR.
SELECT * FROM AFKO WHERE AUFNR = AFPO-AUFNR.
* FORMAT HOTSPOT ON.
WRITE: 1 AFKO-AUFNR COLOR 5 HOTSPOT ON.
* FORMAT HOTSPOT OFF.
WRITE: 20 AFPO-DAUAT, 40 AFKO-GAMNG LEFT-JUSTIFIED.
HIDE: AFKO-AUFNR,AFPO-AUFNR,AFPO-DAUAT,AFKO-GAMNG.
HIDE:AFPO-DWERK,AFPO-MATNR, MARD-WERKS,MARD-MATNR.
SKIP.
ENDSELECT.
ENDSELECT.
*IF SY-SUBRC NE 0.MESSAGE A235.ENDIF.
IF SY-SUBRC NE 0.
SKIP 3.
FORMAT COLOR 5 INVERSE ON.
ULINE AT /13(35).
WRITE:/13 SY-VLINE,15 'PRODUCTION ORDER DOES NOT EXIST.',
47 SY-VLINE.
ULINE AT /13(35).
FORMAT COLOR OFF INVERSE OFF.
ENDIF.
WHEN 'DTLS'.
SET PF-STATUS 'SCREEN2'.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
GET CURSOR FIELD F.
IF F = 'AFKO-AUFNR'.
SELECT * FROM AFKO WHERE AUFNR = AFPO-AUFNR.
FORMAT COLOR 5 INVERSE ON.
WRITE: /1 'MATERIAL', 20 AFKO-PLNBEZ COLOR COL_TOTAL.SKIP.
WRITE: /1 'QUANTITY', 20 AFKO-GAMNG LEFT-JUSTIFIED COLOR COL_TOTAL.
SKIP.
WRITE: /1 'MRP CONT', 20 AFKO-DISPO COLOR COL_TOTAL.SKIP.
WRITE: /1 'PLANNER GRP',20 AFKO-PLGRP COLOR COL_TOTAL.SKIP.
WRITE: /1 'ORD.START DT', 20 AFKO-GSTRP COLOR COL_TOTAL.SKIP.
WRITE: /1 'ORD.FIN.DT',20 AFKO-GLTRP COLOR COL_TOTAL.SKIP.
WRITE:/1 'INSP.LOT.NO',20 AFKO-PRUEFLOS COLOR COL_TOTAL.SKIP.
WRITE: /1 'RESERVATION',20 AFKO-RSNUM COLOR COL_TOTAL.SKIP.
WRITE: /1 'BOM STATUS',20 AFKO-STLST COLOR COL_TOTAL.
FORMAT COLOR OFF INVERSE OFF.
*HIDE:AFPO-AUFNR,AFKO-PLNBEZ,AFKO-GAMNG,AFKO-GSTRP,AFKO-AUFNR.
ENDSELECT.
ENDIF.
WHEN 'STAT'.
SET PF-STATUS 'STATUS'.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
SELECT * FROM AUFK WHERE AUFNR = AFKO-AUFNR.
SELECT * FROM JEST WHERE OBJNR = AUFK-OBJNR.
SELECT * FROM TJ02T WHERE ISTAT = JEST-STAT AND SPRAS = 'E'.
WRITE: /3 TJ02T-TXT04,20 TJ02T-TXT30.
HIDE:TJ02T-TXT04,TJ02T-TXT30,AUFK-AUFNR,AFKO-AUFNR.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ULINE.
WHEN 'TRAN'.
CALL TRANSACTION 'ZK44'.
WHEN 'SEL2'.
SET PF-STATUS 'SCREEN3'.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
SY-LSIND = 1.
FORMAT COLOR 5 INVERSE ON.
WRITE: /1 'PLANT', 10 'PROD.ORD.NO',25 'MAT.DOC.NO'.ULINE.
FORMAT COLOR OFF INVERSE OFF.
SELECT * FROM MSEG WHERE WERKS = MARD-WERKS AND MATNR = MARD-MATNR.
WRITE: /1 MSEG-WERKS,10 MSEG-AUFNR,40 MSEG-EBELN.
FORMAT HOTSPOT ON.
WRITE: 25 MSEG-MBLNR.
FORMAT HOTSPOT OFF.
HIDE:MSEG-WERKS,MSEG-AUFNR,MSEG-MBLNR,MSEG-EBELN.
SKIP.
ENDSELECT.
IF SY-SUBRC NE 0.
SKIP 3.
FORMAT COLOR 6 INVERSE ON.
ULINE AT /13(35).
WRITE: /13 SY-VLINE,15'MATERIAL DOC. DOES NOT EXIST',47 SY-VLINE.
ULINE AT /13(35).
FORMAT COLOR OFF INVERSE OFF.
ENDIF.
WHEN 'DET'.
SET PF-STATUS 'SCREEN4'.
WINDOW STARTING AT 15 2 ENDING AT 80 15 .
GET CURSOR FIELD F.
IF F = 'MSEG-MBLNR'.
FORMAT COLOR 5 INVERSE ON.
WRITE: /1 'MATERIAL',15 'PUR.ORD.NO',30 'PROD.ORD.NO',
45 'MOV.TYPE',55 'QUANTITY'.
FORMAT COLOR OFF INVERSE OFF.
ULINE.
SELECT * FROM MSEG WHERE MBLNR = MSEG-MBLNR.
WRITE: /1 MSEG-MATNR,15 MSEG-EBELN,30 MSEG-AUFNR,
45 MSEG-BWART ,55 MSEG-MENGE LEFT-JUSTIFIED.
SKIP.
ENDSELECT.
ULINE.
WRITE:/1 'STOR.LOC ', 20 MSEG-LGORT COLOR COL_TOTAL.SKIP.
WRITE:/1 'RESERVATION', 20 MSEG-RSNUM COLOR COL_TOTAL.SKIP.
WRITE: /1 'G/L ACCOUNT',20 MSEG-SAKTO COLOR COL_TOTAL.
SKIP.
ENDIF.
WHEN 'TR2'.
CALL TRANSACTION 'MB02'.
WHEN 'SEL3'.
SET PF-STATUS 'NIT 5'.
*SET TITLEBAR 'NIT5'.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
SY-LSIND = 1.
WRITE: /5 'PUR.ORD.NO',20 'DOC.TYPE',35 'CREATED ON',48 'CREATED BY'.
ULINE.
SELECT * FROM EKPO WHERE WERKS = MARD-WERKS AND MATNR = MARD-MATNR.
SELECT * FROM EKKO WHERE EBELN = EKPO-EBELN.
FORMAT COLOR 5 INVERSE ON.
FORMAT HOTSPOT ON.
WRITE: 5 EKKO-EBELN.
FORMAT HOTSPOT OFF.
WRITE: 20 EKKO-BSART,35 EKKO-AEDAT,48 EKKO-ERNAM.
HIDE: EKPO-MENGE,EKKO-EBELN,EKKO-BSART,EKPO-MATNR,
EKPO-WERKS,MARD-WERKS,MARD-MATNR.
FORMAT COLOR OFF INVERSE OFF.
SKIP.
ENDSELECT.
ENDSELECT.
IF SY-SUBRC NE 0.
SKIP 3.
ULINE AT /13(35).
FORMAT COLOR 6 INVERSE ON.
WRITE: /13 SY-VLINE,15 'PURCHASE ORDER DOES NOT EXIST',
47 SY-VLINE.
FORMAT COLOR OFF INVERSE OFF.
ULINE AT /13(35).
ENDIF.
WHEN 'DE'.
SET PF-STATUS 'SCREEN 6'.
WINDOW STARTING AT 15 2 ENDING AT 80 15.
GET CURSOR FIELD F.
IF F = 'EKKO-EBELN'.
FORMAT COLOR 6 INVERSE ON.
WRITE: /1 'ITEM',15 'MATERIAL',25 'QUANTITY',40 'STO.LOC',
50 'MAT.TYPE'.
FORMAT COLOR OFF INVERSE OFF.
ULINE.
SELECT * FROM EKPO WHERE EBELN = EKKO-EBELN.
WRITE: /1 EKPO-EBELP,15 EKPO-MATNR,25 EKPO-MENGE LEFT-JUSTIFIED,
40 EKPO-LGORT,50 EKPO-MTART.
HIDE:EKPO-EBELN,EKPO-EBELP,EKPO-MATNR,EKPO-MENGE,EKPO-LGORT,
MARD-MATNR,MARD-WERKS.
SKIP.
ENDSELECT.
ULINE.
WRITE: /1 'PURCH.ORGANISATION',25 EKKO-EKORG COLOR COL_TOTAL.
SKIP.
WRITE: /1 'PURCHASING GROUP',25 EKKO-EKGRP COLOR COL_TOTAL.
SKIP.
WRITE: /1 'QUOTATION NO', 25 EKKO-ANGNR COLOR COL_TOTAL.SKIP.
WRITE: /1 'CUSTOMER', 25 EKKO-KUNNR COLOR COL_TOTAL.SKIP.
WRITE: /1 'ORDER VALUE',25 EKPO-NETWR LEFT-JUSTIFIED COLOR COL_TOTAL.
SKIP.
WRITE: /1 'P.R.NUMBER',25 EKPO-BANFN COLOR COL_TOTAL.
SKIP.
ENDIF.
WHEN 'TR1'.
CALL TRANSACTION 'ME22'.
ENDCASE.
