hi expert,
i am working on one report,i need to fetch order no,mat no, quan, and value from vbak n vbap..then accordingly i have to fetch delivery and billing using table vbfa(sales document flow)..then according to the bill fetched from vbfa i have to fetch related quantity n value using table vbrk and vbrp..i am trying to do this.i am sending u the code but it is not working accordingly..i have used nested loop in my report..plz help me n make changes whereever required.
REPORT ZSD_R_ORDERNO .
********************************************************************************************************************************************
*TABLE
********************************************************************************************************************************************
TABLES: VBAK,VBAP,VBRK,VBRP,VBFA.
********************************************************************************************************************************************
*DATA DECLARATION
********************************************************************************************************************************************
DATA: BEGIN OF I_VBAK OCCURS 0,
VBELN LIKE VBAK-VBELN,
END OF I_VBAK.
DATA:BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
KWMENG LIKE VBAP-KWMENG,
NETWR LIKE VBAP-NETWR,
O_DATE LIKE VBAK-ERDAT,
VBELV LIKE VBFA-VBELV,
POSNV LIKE VBFA-POSNV,
FVBELN LIKE VBFA-VBELN,
DVBELN LIKE VBFA-VBELN,
BVBELN LIKE VBFA-VBELN,
VBTYP_N LIKE VBFA-VBTYP_N,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0,
VBELV LIKE VBFA-VBELV,
POSNV LIKE VBFA-POSNV,
VBELN LIKE VBFA-VBELN,
FVBELN LIKE VBFA-VBELN,
VBELN LIKE VBFA-VBELN,
BVBELN LIKE VBFA-VBELN,
VBTYP_N LIKE VBFA-VBTYP_N,
END OF ITAB1.
DATA: BEGIN OF ITAB3 OCCURS 0,
VBELN LIKE VBRP-VBELN,
FKIMG LIKE VBRP-FKIMG,
NETWR LIKE VBRP-NETWR,
POSNR LIKE VBRP-POSNR,
END OF ITAB3.
DATA: BEGIN OF PTAB OCCURS 0,
VBELV LIKE VBFA-VBELV,
POSNV LIKE VBFA-POSNV,
VBELN LIKE VBFA-VBELN,
VBELN LIKE VBFA-VBELN,
dVBELN LIKE VBFA-VBELN,
VBTYP_N LIKE VBFA-VBTYP_N,
END OF PTAB.
DATA: BEGIN OF FINAL OCCURS 0,
VBELN LIKE VBAK-VBELN,
VBELV LIKE VBFA-VBELV,
MATNR LIKE VBAP-MATNR,
KWMENG LIKE VBAP-KWMENG,
NETWR LIKE VBAP-NETWR,
DVBELN LIKE VBFA-VBELN,
FVBELN LIKE VBFA-VBELN,
BVBELN LIKE VBRP-VBELN,
FKIMG LIKE VBRP-FKIMG,
BNETWR LIKE VBRP-NETWR,
VBTYP_N LIKE VBFA-VBTYP_N,
END OF FINAL.
*DATA: WADVBELN LIKE VBFA-VBELN,
WABVBELN LIKE VBFA-VBELN.
********************************************************************************************************************************************
*AT SELECTION SCREEN
********************************************************************************************************************************************
SELECT-OPTIONS : ORDERNO FOR VBAK-VBELN,O_DATE FOR VBAK-ERDAT.
SELECTION-SCREEN SKIP 2.
*SELECT-OPTIONS: DELNO FOR VBFA-VBELN,D_DATE FOR VBFA-ERDAT.
*
*SELECTION-SCREEN SKIP 2.
*
*SELECT-OPTIONS: BILLNO FOR VBRP-VBELN.
********************************************************************************************************************************************
*START-OF-SELECTION
********************************************************************************************************************************************
.
SELECT VBELN FROM VBAK INTO CORRESPONDING FIELDS OF TABLE I_VBAK WHERE VBELN IN ORDERNO.
SELECT B~POSNR A~VBELN B~MATNR B~KWMENG B~NETWR INTO CORRESPONDING FIELDS OF TABLE ITAB FROM VBAK AS A
INNER JOIN VBAP AS B ON ( A~VBELN = B~VBELN )
WHERE A~VBELN IN ORDERNO AND A~ERDAT IN O_DATE.
*
*SELECT VBELN FROM VBFA INTO ITAB1-DVBELN FOR ALL ENTRIES IN ITAB WHERE POSNV = ITAB-POSNV AND VBELV = ITAB-VBELN AND VBTYP_N = 'J'.
*APPEND ITAB1.
*ENDSELECT.
SELECT VBELV VBELN VBTYP_N POSNV FROM VBFA INTO (ITAB1-VBELV,ITAB1-VBELN,ITAB1-VBTYP_N,ITAB1-POSNV)
FOR ALL ENTRIES IN ITAB WHERE POSNV = ITAB-POSNR AND VBELV = ITAB-VBELN AND VBTYP_N = 'J'.
APPEND ITAB1.
ENDSELECT.
SELECT VBELV VBELN VBTYP_N POSNV FROM VBFA INTO (PTAB-VBELV,PTAB-VBELN,PTAB-VBTYP_N,PTAB-POSNV)
FOR ALL ENTRIES IN ITAB WHERE POSNV = ITAB-POSNR AND VBELV = ITAB-VBELN AND VBTYP_N = 'M'.
APPEND PTAB.
ENDSELECT.
*
SELECT VBELN NETWR FKIMG FROM VBRP INTO (ITAB3-VBELN,ITAB3-NETWR,ITAB3-FKIMG) FOR ALL ENTRIES IN PTAB
WHERE VBELN = PTAB-VBELN AND POSNR = PTAB-POSNV.
APPEND ITAB3.
ENDSELECT.
FOR ALL ENTRIES IN PTAB WHERE VBELN = PTAB-BVBELN.
********************************************************************************************************************************************
*PRINTING
********************************************************************************************************************************************
WRITE:/01 SY-VLINE, 02 'ORDER NO.',
12 SY-VLINE, 13 'MATERIAL NO.',
26 SY-VLINE, 27 'QUANTITY',
48 SY-VLINE, 49 'VALUE',
68 SY-VLINE, 69 'DELIVERY',
78 SY-VLINE,79 'BILLING',
88 SY-VLINE,89 'BILL QUANTITY',
108 SY-VLINE,109 'VALUE',
130 SY-VLINE.
ULINE (130).
*LOOP AT I_VBAK.
WRITE:/01 SY-VLINE, 02 I_VBAK-VBELN.
**
*
LOOP AT ITAB.
WRITE:/01 SY-VLINE, 02 ITAB-VBELN,
12 SY-VLINE, 13 ITAB-MATNR,
26 SY-VLINE, 27 ITAB-KWMENG,
48 SY-VLINE, 49 ITAB-NETWR.
LOOP AT ITAB1 WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR.
WRITE: 68 SY-VLINE, 69 ITAB1-VBELN.
LOOP AT PTAB WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR.
WRITE: 78 SY-VLINE, 79 PTAB-VBELN.
LOOP AT ITAB3 WHERE VBELN = PTAB-VBELN AND POSNR = PTAB-POSNV.
WRITE: 88 SY-VLINE, 89 ITAB3-FKIMG,
108 SY-VLINE, 109 ITAB3-NETWR,
130 SY-VLINE.
ULINE (130).
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDLOOP.
LOOP AT ITAB.
MOVE-CORRESPONDING ITAB TO FINAL.
*
*
*
LOOP AT ITAB1 WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR.
MOVE-CORRESPONDING ITAB1 TO FINAL.
append final.
*
*
*
LOOP AT PTAB WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR.
MOVE-CORRESPONDING PTAB TO FINAL.
APPEND FINAL.
LOOP AT ITAB3 WHERE VBELN = PTAB-BVBELN AND POSNR = PTAB-POSNV.
MOVE-CORRESPONDING ITAB3 TO FINAL.
APPEND FINAL.
ENDLOOP.
***
ENDLOOP.
ENDLOOP.
ENDLOOP.
*
*
*
*
LOOP AT FINAL.
WRITE:/01 SY-VLINE,02 FINAL-VBELN,
12 SY-VLINE,13 FINAL-MATNR,
26 SY-VLINE,27 FINAL-KWMENG,
48 SY-VLINE,49 FINAL-NETWR,
*
68 SY-VLINE,69 FINAL-DVBELN,
78 SY-VLINE,79 FINAL-BVBELN,
88 SY-VLINE,89 FINAL-FKIMG,
108 SY-VLINE,109 FINAL-BNETWR,
130 SY-VLINE.
ULINE (130).
ENDLOOP.
SKIP 4.
INITIALIZATION.
ORDERNO-LOW = '4969'.
ORDERNO-HIGH = '4970'.
APPEND ORDERNO.
regards,
raman