Posted: Tue Sep 09, 2008 4:57 pm Post subject: Report of Sales Order Data by Project
Report of Sales Order Data by Project
Code:
REPORT ZPRTPROJ MESSAGE-ID ZZ
NO STANDARD PAGE HEADING
LINE-SIZE 255 LINE-COUNT 65.
TABLES: PROJ, AFKO, AUFK, VBAP, VBAK, VBPA, PA0002,
TCJ04, PA0900, VBEP, KNA1, MAKT, VBUP.
SELECT-OPTIONS: VKORG FOR PA0900-VKORG.
*SELTEXT*E* "Sales Organization"
PARAMETERS: DAYSOLD TYPE P DEFAULT 10.
*SELTEXT*E* "Days Old Selection"
SELECT-OPTIONS: PROJECT FOR PROJ-PSPNR MATCHCODE OBJECT PRSM.
*SELTEXT*E* "Project Number"
SELECT-OPTIONS: VERNR FOR PROJ-VERNR.
*SELTEXT*E* "Project Engineer"
DATA: BEGIN OF TAB OCCURS 500,
VKORG LIKE PA0900-VKORG, "Sales Org
SALNAME(50), "Sales Engineer
KDAUF LIKE AUFK-KDAUF, "Sales Ord Number
KDPOS LIKE AUFK-KDPOS, "Sales Line Nbr
PSPNR(30), "Project Number
PS_PSP_PNR(30), "WBS
WADAT LIKE VBEP-WADAT, "Planned Ship Date
VERNR(25), "Proj Engineer
SITENAME LIKE KNA1-NAME1, "Site Name
BSTNK LIKE VBAK-BSTNK, "P O Number
ERNAM LIKE VBAK-ERNAM, "Entered By
AEDAT LIKE VBAK-AEDAT, "Last Changed Dt
MATNR LIKE VBAP-MATNR, "Material Number
MAKTX LIKE MAKT-MAKTX, "Material Description
LFGSA LIKE VBUP-LFGSA, "Overall Item Delivery Status
NETPR LIKE VBAP-NETPR, "Net Price
END OF TAB.
DATA: BEGIN OF OLD.
INCLUDE STRUCTURE TAB.
DATA: END OF OLD.
DATA: BEGIN OF PRTTAB.
INCLUDE STRUCTURE TAB.
DATA: END OF PRTTAB.
DATA: SALES-PARTNER1 LIKE VBPA-PARVW VALUE 'ZO'.
DATA: SALES-PARTNER2 LIKE VBPA-PARVW VALUE 'Z5'.
DATA: CALC-DAYS TYPE D.
MOVE SY-DATUM TO CALC-DAYS.
CALC-DAYS = CALC-DAYS - DAYSOLD.
SELECT * FROM PROJ WHERE PSPNR IN PROJECT
AND VERNR IN VERNR.
SELECT * FROM AFKO WHERE PRONR EQ PROJ-PSPNR.
SELECT SINGLE * FROM AUFK WHERE AUFNR EQ AFKO-AUFNR.
IF SY-SUBRC EQ 0.
IF NOT AUFK-KDAUF IS INITIAL.
CLEAR TAB.
CLEAR VBAK.
SELECT SINGLE * FROM VBAK WHERE VBELN EQ AUFK-KDAUF.
MOVE VBAK-BSTNK TO TAB-BSTNK.
MOVE VBAK-ERNAM TO TAB-ERNAM.
CLEAR VBAP.
SELECT SINGLE * FROM VBAP WHERE VBELN EQ AUFK-KDAUF
AND POSNR EQ AUFK-KDPOS.
WRITE PROJ-PSPNR TO TAB-PSPNR.
MOVE AUFK-KDAUF TO TAB-KDAUF.
MOVE AUFK-KDPOS TO TAB-KDPOS.
WRITE VBAP-PS_PSP_PNR TO TAB-PS_PSP_PNR.
MOVE VBAP-MATNR TO TAB-MATNR.
MOVE VBAP-NETPR TO TAB-NETPR.
CLEAR MAKT.
SELECT SINGLE * FROM MAKT WHERE MATNR EQ VBAP-MATNR
AND SPRAS EQ SY-LANGU.
MOVE MAKT-MAKTX TO TAB-MAKTX.
CLEAR VBUP.
SELECT SINGLE * FROM VBUP WHERE VBELN EQ VBAP-VBELN
AND POSNR EQ VBAP-POSNR.
MOVE VBUP-LFGSA TO TAB-LFGSA.
SELECT SINGLE * FROM TCJ04 WHERE VERNR EQ PROJ-VERNR.
IF SY-SUBRC EQ 0.
MOVE TCJ04-VERNA TO TAB-VERNR.
ELSE.
MOVE 'Not Assigned' TO TAB-VERNR.
ENDIF.
MOVE VBAK-ERDAT TO TAB-AEDAT.
IF VBAK-AEDAT > VBAK-ERDAT.
MOVE VBAK-AEDAT TO TAB-AEDAT.
ENDIF.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ '000000'
AND PARVW EQ SALES-PARTNER1.
SELECT * FROM PA0002 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0002-VORNA TO TAB-SALNAME(25).
MOVE PA0002-NACHN TO TAB-SALNAME+25(25).
CONDENSE TAB-SALNAME.
EXIT.
ENDSELECT.
EXIT.
ENDSELECT.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ VBAP-POSNR
AND PARVW EQ SALES-PARTNER1.
SELECT * FROM PA0002 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0002-VORNA TO TAB-SALNAME(25).
MOVE PA0002-NACHN TO TAB-SALNAME+25(25).
CONDENSE TAB-SALNAME.
EXIT.
ENDSELECT.
SELECT * FROM PA0900 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0900-VKORG TO TAB-VKORG.
EXIT.
ENDSELECT.
EXIT.
ENDSELECT.
IF TAB-SALNAME IS INITIAL.
CLEAR: TAB-VKORG, TAB-SALNAME.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ '000000'
AND PARVW EQ SALES-PARTNER2.
SELECT * FROM PA0002 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0002-VORNA TO TAB-SALNAME(25).
MOVE PA0002-NACHN TO TAB-SALNAME+25(25).
CONDENSE TAB-SALNAME.
EXIT.
ENDSELECT.
EXIT.
ENDSELECT.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ VBAP-POSNR
AND PARVW EQ SALES-PARTNER2.
SELECT * FROM PA0002 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0002-VORNA TO TAB-SALNAME(25).
MOVE PA0002-NACHN TO TAB-SALNAME+25(25).
CONDENSE TAB-SALNAME.
EXIT.
ENDSELECT.
SELECT * FROM PA0900 WHERE PERNR EQ VBPA-PERNR.
MOVE PA0900-VKORG TO TAB-VKORG.
EXIT.
ENDSELECT.
EXIT.
ENDSELECT.
ENDIF.
CLEAR TAB-SITENAME.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ '000000'
AND PARVW EQ 'ZS'.
SELECT SINGLE * FROM KNA1 WHERE KUNNR EQ VBPA-KUNNR.
IF SY-SUBRC EQ 0.
MOVE KNA1-NAME1 TO TAB-SITENAME.
ENDIF.
EXIT.
ENDSELECT.
SELECT * FROM VBPA WHERE VBELN EQ VBAK-VBELN
AND POSNR EQ VBAP-POSNR
AND PARVW EQ 'ZS'.
SELECT SINGLE * FROM KNA1 WHERE KUNNR EQ VBPA-KUNNR.
IF SY-SUBRC EQ 0.
MOVE KNA1-NAME1 TO TAB-SITENAME.
ENDIF.
EXIT.
ENDSELECT.
SELECT * FROM VBEP WHERE VBELN EQ VBAP-VBELN
AND POSNR EQ VBAP-POSNR
AND BMENG NE 0. "Confirmed Qty
IF TAB-VKORG IN VKORG
AND VBEP-WADAT > CALC-DAYS.
MOVE VBEP-WADAT TO TAB-WADAT.
IF TAB-VKORG IS INITIAL.
MOVE '????' TO TAB-VKORG.
ENDIF.
IF TAB-SALNAME IS INITIAL.
MOVE '????' TO TAB-SALNAME.
ENDIF.
APPEND TAB.
ENDIF.
ENDSELECT.
ENDIF.
ENDIF.
ENDSELECT.
ENDSELECT.
MOVE SPACE TO OLD.
SORT TAB BY VKORG SALNAME PSPNR KDAUF KDPOS.
LOOP AT TAB.
IF TAB-VKORG NE OLD-VKORG.
MOVE TAB-VKORG TO OLD-VKORG.
NEW-PAGE.
ENDIF.
IF TAB-SALNAME NE OLD-SALNAME.
MOVE TAB-SALNAME TO OLD-SALNAME.
NEW-PAGE.
ENDIF.
MOVE-CORRESPONDING TAB TO PRTTAB.
IF TAB-KDAUF EQ OLD-KDAUF.
CLEAR PRTTAB-KDAUF.
ENDIF.
WRITE: /1 PRTTAB-AEDAT,
12 PRTTAB-ERNAM,
25 PRTTAB-KDAUF,
36 PRTTAB-KDPOS,
43 PRTTAB-MATNR,
62 PRTTAB-MAKTX,
103 PRTTAB-SITENAME,
139 PRTTAB-BSTNK,
160 PRTTAB-PSPNR,
191 PRTTAB-VERNR,
217 PRTTAB-WADAT,
228 PRTTAB-LFGSA,
232 PRTTAB-NETPR.
MOVE-CORRESPONDING TAB TO OLD.
ENDLOOP.
INCLUDE ZCONINC3.
FORMAT INTENSIFIED OFF.
WRITE: /1 'Sales Org=', TAB-VKORG, ' Salesman=', TAB-SALNAME.
WRITE: /1 'OrdDate',
12 'Entered By',
25 'Sales Ord',
36 'ItemNo',
43 'Material',
62 'Material Description',
103 'Site Name',
139 'PO Number',
160 'Project',
191 'Engineer',
217 'ShipDate',
228 'Del',
238 'Net Price'.
FORMAT INTENSIFIED ON.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.