Skip to Content
0
Former Member
Sep 19, 2007 at 11:26 AM

regarding report

15 Views

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