Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

regarding report

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

plz m in hurry.

0 Kudos

Hi Prakash,

I have been looking through your many posts and I have to ask do you think you are in the right job. Your questions are basically saying "I do not know what I am doing" and demanding that the people of SDN do your work for you. You might consider closing off the many open threads you have and awarding the legion of people who have kept you in a job some points, and a percentage of your salary.

Think on,

Chester

Former Member
0 Kudos

why is it not working propery. What is wrong with it. Is it slow.

Before you do the select with the for all entries in it. you need to check that ITAB has any data in it.