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 combining the 2 codes

Former Member
0 Kudos

hi,

i had deveoped a code in which i am displaying that these are the open items and close items. i had used the tables :- BSIK,BSAK.

I am able to create it in 2 different code but now i want to combine it .main data is in ITAB2 n itab3.

plzz help me in delepoing dis code,i will be very thankful to you all:-

here's d code:-

report ZNEW01

no standard page heading line-size 255.

                                      • ***********BEGIN OF OPEN ITEMS*******************************

TABLES: RSEG.

DATA: BEGIN OF ITBKPF OCCURS 0,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

AWKEY LIKE BKPF-AWKEY,

BUDAT LIKE BKPF-BUDAT,

XBLNR LIKE BKPF-XBLNR,

AWTYP LIKE BKPF-AWTYP,

END OF ITBKPF.

DATA: BEGIN OF ITAB2 OCCURS 0,

BUKRS LIKE BSIK-BUKRS,

GJAHR LIKE BSIK-GJAHR,

BELNR LIKE BSIK-BELNR,

WRBTR LIKE BSIK-WRBTR,

LIFNR LIKE BSIK-LIFNR,

END OF ITAB2.

DATA: BEGIN OF ITDEMO OCCURS 0,

BELNR LIKE RSEG-BELNR,

GJAHR LIKE RSEG-GJAHR,

LFBNR LIKE RSEG-LFBNR,

XBLNR LIKE RSEG-XBLNR,

END OF ITDEMO.

DATA: BEGIN OF ITFINAL OCCURS 0,

LFBNR LIKE RSEG-LFBNR,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

AWKEY LIKE BKPF-AWKEY,

WRBTR LIKE BSIK-WRBTR,

LIFNR LIKE BSIK-LIFNR,

END OF ITFINAL.

*SELECT-OPTIONS: S_MBLNR FOR MKPF-MBLNR.

SELECT-OPTIONS: P_LFBNR FOR RSEG-LFBNR.

START-OF-SELECTION.

  • BKPF

SELECT BUKRS BELNR GJAHR AWKEY BUDAT XBLNR AWTYP

FROM BKPF

INTO (ITBKPF-BUKRS,ITBKPF-BELNR,ITBKPF-GJAHR,

ITBKPF-AWKEY,ITBKPF-BUDAT,ITBKPF-XBLNR,ITBKPF-AWTYP)

WHERE AWTYP EQ 'MKPF' OR AWTYP EQ 'RMRP'.

*

o MKPF

***********BEGIN OF TRY CODE***********

ITDEMO-BELNR = ITBKPF-AWKEY(10).

ITDEMO-GJAHR = ITBKPF-AWKEY+10(4).

ITDEMO-XBLNR = ITBKPF-XBLNR.

SELECT LFBNR FROM RSEG INTO

(ITDEMO-LFBNR) WHERE

BELNR EQ ITBKPF-AWKEY(10) AND

GJAHR EQ ITBKPF-AWKEY+10(4) AND

XBLNR EQ ITBKPF-XBLNR AND LFBNR > 0.

  • AND LFBNR > 0.

***********END OF TRY CODE**************

CHECK SY-SUBRC EQ 0 AND ITDEMO-LFBNR IN P_LFBNR.

*

o BSIK

ITAB2-BUKRS = ITBKPF-BUKRS.

ITAB2-GJAHR = ITBKPF-GJAHR.

ITAB2-BELNR = ITBKPF-BELNR.

SELECT WRBTR LIFNR FROM BSIK

INTO (ITAB2-WRBTR, ITAB2-LIFNR)

WHERE BUKRS EQ ITBKPF-BUKRS

AND GJAHR EQ ITBKPF-GJAHR

AND BELNR EQ ITBKPF-BELNR.

APPEND ITAB2.

EXIT.

ENDSELECT.

  • CHECK sy-subrc EQ 0?

APPEND ITDEMO.

EXIT.

ENDSELECT.

APPEND ITBKPF.

ENDSELECT.

  • Fields Found?

READ TABLE ITBKPF TRANSPORTING NO FIELDS INDEX 1.

IF sy-subrc NE 0.

MESSAGE i000(zmm1) WITH 'No documents found!'.

ENDIF.

  • Prepare Output

LOOP AT ITBKPF.

CLEAR ITAB2.

READ TABLE ITAB2

WITH KEY BUKRS = ITBKPF-BUKRS

BELNR = ITBKPF-BELNR

GJAHR = ITBKPF-GJAHR.

READ TABLE ITDEMO

WITH KEY BELNR = ITBKPF-AWKEY(10).

ITFINAL-LFBNR = ITDEMO-LFBNR.

ITFINAL-BUKRS = ITBKPF-BUKRS.

ITFINAL-BELNR = ITBKPF-BELNR.

ITFINAL-GJAHR = ITBKPF-GJAHR.

ITFINAL-AWKEY = ITBKPF-AWKEY.

ITFINAL-WRBTR = ITAB2-WRBTR.

ITFINAL-LIFNR = ITAB2-LIFNR.

APPEND ITFINAL.

CLEAR ITFINAL.

DELETE ITFINAL WHERE WRBTR = 0.

ENDLOOP.

****************************************

  • END-OF-SELECTION

****************************************

END-OF-SELECTION.

*DELETE ITFINAL WHERE WRBTR = 0.

  • Output

LOOP AT ITFINAL.

WRITE: / ITFINAL-LFBNR,ITFINAL-BELNR, ITFINAL-GJAHR,ITFINAL-AWKEY, ITFINAL-WRBTR, ITFINAL-LIFNR.

ENDLOOP.

************************END OF OPEN ITEMS******************************

*****************************BEGIN OF CLEARED ITEMS*******************************

*TABLES: RSEG.

*

*DATA: BEGIN OF ITBKPF OCCURS 0,

  • BUKRS LIKE BKPF-BUKRS,

  • BELNR LIKE BKPF-BELNR,

  • GJAHR LIKE BKPF-GJAHR,

  • AWKEY LIKE BKPF-AWKEY,

  • BUDAT LIKE BKPF-BUDAT,

  • XBLNR LIKE BKPF-XBLNR,

  • AWTYP LIKE BKPF-AWTYP,

  • END OF ITBKPF.

*

*DATA: BEGIN OF ITAB3 OCCURS 0,

  • BUKRS LIKE BSAK-BUKRS,

  • GJAHR LIKE BSAK-GJAHR,

  • BELNR LIKE BSAK-BELNR,

  • WRBTR LIKE BSAK-WRBTR,

  • LIFNR LIKE BSAK-LIFNR,

  • AUGBL LIKE BSAK-AUGBL,

  • AUGDT LIKE BSAK-AUGDT,

  • XBLNR LIKE BSAK-XBLNR,

  • END OF ITAB3.

*

*DATA: BEGIN OF ITDEMO OCCURS 0,

  • BELNR LIKE RSEG-BELNR,

  • GJAHR LIKE RSEG-GJAHR,

  • LFBNR LIKE RSEG-LFBNR,

  • XBLNR LIKE RSEG-XBLNR,

  • END OF ITDEMO.

*

*DATA: BEGIN OF ITFINAL OCCURS 0,

  • LFBNR LIKE RSEG-LFBNR,

  • BUKRS LIKE BKPF-BUKRS,

  • BELNR LIKE BKPF-BELNR,

  • GJAHR LIKE BKPF-GJAHR,

  • AWKEY LIKE BKPF-AWKEY,

  • WRBTR LIKE BSAK-WRBTR,

  • LIFNR LIKE BSAK-LIFNR,

  • AUGBL LIKE BSAK-AUGBL,

  • AUGDT LIKE BSAK-AUGDT,

  • END OF ITFINAL.

*

*SELECT-OPTIONS: P_LFBNR FOR RSEG-LFBNR.

*

*

*START-OF-SELECTION.

*

*

o BKPF

*

  • SELECT BUKRS BELNR GJAHR AWKEY BUDAT XBLNR AWTYP

  • FROM BKPF

  • INTO (ITBKPF-BUKRS,ITBKPF-BELNR,ITBKPF-GJAHR,

  • ITBKPF-AWKEY,ITBKPF-BUDAT,ITBKPF-XBLNR,ITBKPF-AWTYP)

  • WHERE AWTYP EQ 'MKPF' OR AWTYP EQ 'RMRP'.

*

*

o

+ MKPF

*

*****************BEGIN OF TRY CODE****************

*

  • ITDEMO-BELNR = ITBKPF-AWKEY(10).

  • ITDEMO-GJAHR = ITBKPF-AWKEY+10(4).

  • ITDEMO-XBLNR = ITBKPF-XBLNR.

*

  • SELECT LFBNR FROM RSEG INTO

  • (ITDEMO-LFBNR) WHERE

  • BELNR EQ ITBKPF-AWKEY(10) AND

  • GJAHR EQ ITBKPF-AWKEY+10(4) AND

  • XBLNR EQ ITBKPF-XBLNR AND LFBNR > 0.

*

  • CHECK SY-SUBRC EQ 0 AND ITDEMO-LFBNR IN P_LFBNR.

*

****************END OF TRY CODE*******************

*

o

+ BSAK

*

*

  • ITAB3-BUKRS = ITBKPF-BUKRS.

  • ITAB3-GJAHR = ITBKPF-GJAHR.

  • ITAB3-BELNR = ITBKPF-BELNR.

*

*

  • SELECT WRBTR LIFNR AUGBL AUGDT

  • FROM BSAK

  • INTO (ITAB3-WRBTR,ITAB3-LIFNR,ITAB3-AUGBL,ITAB3-AUGDT)

  • WHERE BUKRS EQ ITBKPF-BUKRS

  • AND GJAHR EQ ITBKPF-GJAHR

  • AND BELNR EQ ITBKPF-BELNR.

*

  • APPEND ITAB3.

  • EXIT.

  • ENDSELECT.

*

*

o CHECK sy-subrc EQ 0?

*

  • APPEND ITDEMO.

  • EXIT.

  • ENDSELECT.

*

  • APPEND ITBKPF.

  • ENDSELECT.

*

*SORT ITBKPF BY BELNR.

*SORT ITAB3 BY BELNR.

*

*

o Fields Found?

*

  • READ TABLE ITBKPF TRANSPORTING NO FIELDS INDEX 1.

  • IF sy-subrc NE 0.

  • MESSAGE i000(zmm1) WITH 'No documents found!'.

  • ENDIF.

*

*

o Prepare Output

*

  • LOOP AT ITBKPF.

*

  • CLEAR ITAB3 .

*

  • READ TABLE ITAB3

  • WITH KEY BUKRS = ITBKPF-BUKRS

  • BELNR = ITBKPF-BELNR

  • GJAHR = ITBKPF-GJAHR. .

*

  • READ TABLE ITDEMO

  • WITH KEY BELNR = ITBKPF-AWKEY(10).

*

  • ITFINAL-LFBNR = ITDEMO-LFBNR.

  • ITFINAL-BUKRS = ITBKPF-BUKRS.

  • ITFINAL-BELNR = ITBKPF-BELNR.

  • ITFINAL-GJAHR = ITBKPF-GJAHR.

  • ITFINAL-AWKEY = ITBKPF-AWKEY.

  • ITFINAL-WRBTR = ITAB3-WRBTR.

  • ITFINAL-LIFNR = ITAB3-LIFNR.

  • ITFINAL-WRBTR = ITAB3-WRBTR.

  • ITFINAL-AUGBL = ITAB3-AUGBL.

  • ITFINAL-AUGDT = ITAB3-AUGDT.

*

  • APPEND ITFINAL.

  • CLEAR ITFINAL.

  • DELETE ITFINAL WHERE WRBTR = 0.

*

  • ENDLOOP.

*

  • SORT ITFINAL BY BELNR.

*

*****************************************

*

o END-OF-SELECTION

*****************************************

*END-OF-SELECTION.

*

*

o Output

*

  • LOOP AT ITFINAL.

  • WRITE: / ITFINAL-LFBNR,ITFINAL-BELNR,ITFINAL-AUGBL,ITFINAL-AUGDT,ITFINAL-GJAHR,ITFINAL-BUKRS,ITFINAL-AWKEY,ITFINAL-WRBTR,ITFINAL-LIFNR.

  • ENDLOOP.

Edited by: abaper2008 on Jun 5, 2008 7:49 AM

Edited by: abaper2008 on Jun 5, 2008 8:11 AM

2 REPLIES 2

Former Member
0 Kudos

Hi,

You can use the code below:



loop at itab2.

 read table itab3 with key bukrs = itab2-bukrs
                                     hkont = itab2-hkont
                                     gjahr = itab2-gjahr
                                     monat = itab2-monat.
 if sy-subrc eq 0.
     move the necessary values to itab4.
     append itab4.
     clear itab4.
endif.

endloop.

Thanks,

Sriram POnna.

0 Kudos

hi,

I HAD MODIFIED THE CODE ,plzz tell me how to make display the data from itab3 and itab2.

here's d code:-

TABLES: RSEG.

**********DECLARATION OF TABLES************

DATA: BEGIN OF ITBKPF OCCURS 0,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

AWKEY LIKE BKPF-AWKEY,

BUDAT LIKE BKPF-BUDAT,

XBLNR LIKE BKPF-XBLNR,

AWTYP LIKE BKPF-AWTYP,

END OF ITBKPF.

DATA: BEGIN OF ITAB2 OCCURS 0,

BUKRS LIKE BSIK-BUKRS,

GJAHR LIKE BSIK-GJAHR,

BELNR LIKE BSIK-BELNR,

WRBTR LIKE BSIK-WRBTR,

LIFNR LIKE BSIK-LIFNR,

AUGBL LIKE BSAK-AUGBL,

AUGDT LIKE BSAK-AUGDT,

END OF ITAB2.

DATA: BEGIN OF ITAB3 OCCURS 0,

BUKRS LIKE BSAK-BUKRS,

GJAHR LIKE BSAK-GJAHR,

BELNR LIKE BSAK-BELNR,

WRBTR LIKE BSAK-WRBTR,

LIFNR LIKE BSAK-LIFNR,

AUGBL LIKE BSAK-AUGBL,

AUGDT LIKE BSAK-AUGDT,

END OF ITAB3.

DATA: BEGIN OF ITDEMO OCCURS 0,

BELNR LIKE RSEG-BELNR,

GJAHR LIKE RSEG-GJAHR,

LFBNR LIKE RSEG-LFBNR,

XBLNR LIKE RSEG-XBLNR,

END OF ITDEMO.

DATA: BEGIN OF ITFINAL OCCURS 0,

LFBNR LIKE RSEG-LFBNR,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

AWKEY LIKE BKPF-AWKEY,

WRBTR LIKE BSIK-WRBTR,

LIFNR LIKE BSIK-LIFNR,

AUGBL LIKE BSAK-AUGBL,

AUGDT LIKE BSAK-AUGDT,

END OF ITFINAL.

*********END OF DECLARATIONS************

SELECT-OPTIONS: P_LFBNR FOR RSEG-LFBNR.

START-OF-SELECTION.

  • BKPF

SELECT BUKRS BELNR GJAHR AWKEY BUDAT XBLNR AWTYP

FROM BKPF

INTO (ITBKPF-BUKRS,ITBKPF-BELNR,ITBKPF-GJAHR,

ITBKPF-AWKEY,ITBKPF-BUDAT,ITBKPF-XBLNR,ITBKPF-AWTYP)

WHERE AWTYP EQ 'MKPF' OR AWTYP EQ 'RMRP'.

    • MKPF

***********BEGIN OF TRY CODE***********

ITDEMO-BELNR = ITBKPF-AWKEY(10).

ITDEMO-GJAHR = ITBKPF-AWKEY+10(4).

ITDEMO-XBLNR = ITBKPF-XBLNR.

SELECT LFBNR FROM RSEG INTO

(ITDEMO-LFBNR) WHERE

BELNR EQ ITBKPF-AWKEY(10) AND

GJAHR EQ ITBKPF-AWKEY+10(4) AND

XBLNR EQ ITBKPF-XBLNR AND LFBNR > 0.

CHECK SY-SUBRC EQ 0 AND ITDEMO-LFBNR IN P_LFBNR.

ITAB2-BUKRS = ITBKPF-BUKRS.

ITAB2-GJAHR = ITBKPF-GJAHR.

ITAB2-BELNR = ITBKPF-BELNR.

ITAB3-BUKRS = ITBKPF-BUKRS.

ITAB3-GJAHR = ITBKPF-GJAHR.

ITAB3-BELNR = ITBKPF-BELNR.

    • BSIK

IF ITAB2-BUKRS = ITBKPF-BUKRS AND ITAB2-BELNR = ITBKPF-BELNR AND ITAB2-GJAHR = ITBKPF-GJAHR.

SELECT WRBTR LIFNR FROM BSIK

INTO (ITAB2-WRBTR, ITAB2-LIFNR)

WHERE BUKRS EQ ITBKPF-BUKRS

AND GJAHR EQ ITBKPF-GJAHR

AND BELNR EQ ITBKPF-BELNR.

APPEND ITAB2.

EXIT.

ENDSELECT.

ELSEIF ITAB3-BUKRS = ITBKPF-BUKRS AND ITAB3-BELNR = ITBKPF-BELNR AND ITAB3-GJAHR = ITBKPF-GJAHR.

      • BSAK

SELECT WRBTR LIFNR AUGBL AUGDT

FROM BSAK

INTO (ITAB3-WRBTR,ITAB3-LIFNR,ITAB3-AUGBL,ITAB3-AUGDT)

WHERE BUKRS EQ ITBKPF-BUKRS

AND GJAHR EQ ITBKPF-GJAHR

AND BELNR EQ ITBKPF-BELNR.

APPEND ITAB3.

EXIT.

ENDSELECT.

ENDIF.

  • CHECK sy-subrc EQ 0?

APPEND ITDEMO.

EXIT.

ENDSELECT.

APPEND ITBKPF.

ENDSELECT.

  • Fields Found?

READ TABLE ITBKPF TRANSPORTING NO FIELDS INDEX 1.

IF sy-subrc NE 0.

MESSAGE i000(zmm1) WITH 'No documents found!'.

ENDIF.

  • Prepare Output

LOOP AT ITBKPF.

IF ITAB2-BUKRS = ITBKPF-BUKRS AND ITAB2-BELNR = ITBKPF-BELNR AND ITAB2-GJAHR = ITBKPF-GJAHR.

CLEAR ITAB2.

READ TABLE ITAB2

WITH KEY BUKRS = ITBKPF-BUKRS

BELNR = ITBKPF-BELNR

GJAHR = ITBKPF-GJAHR.

ITFINAL-WRBTR = ITAB2-WRBTR.

ITFINAL-LIFNR = ITAB2-LIFNR.

ELSE.

CLEAR ITAB3.

READ TABLE ITAB3

WITH KEY BUKRS = ITBKPF-BUKRS

BELNR = ITBKPF-BELNR

GJAHR = ITBKPF-GJAHR. .

ITFINAL-WRBTR = ITAB3-WRBTR.

ITFINAL-LIFNR = ITAB3-LIFNR.

ENDIF.

READ TABLE ITDEMO

WITH KEY BELNR = ITBKPF-AWKEY(10).

ITFINAL-LFBNR = ITDEMO-LFBNR.

ITFINAL-BUKRS = ITBKPF-BUKRS.

ITFINAL-BELNR = ITBKPF-BELNR.

ITFINAL-GJAHR = ITBKPF-GJAHR.

ITFINAL-AWKEY = ITBKPF-AWKEY.

APPEND ITFINAL.

CLEAR ITFINAL.

DELETE ITFINAL WHERE WRBTR = 0.

ENDLOOP.

****************************************

  • END-OF-SELECTION

****************************************

END-OF-SELECTION.

  • Output

WRITE: /' OPEN ITEMS -> PAYMENTS ARE NOT DONE'.

ULINE.

WRITE: / 'MAT.DOC. A/C DOC. YEAR REF.KEY AMOUNT VENDOR' .

ULINE.

LOOP AT ITFINAL.

WRITE: / ITFINAL-LFBNR,ITFINAL-BELNR, ITFINAL-GJAHR,ITFINAL-AWKEY, ITFINAL-WRBTR, ITFINAL-LIFNR.

ENDLOOP.

plzz tell me how do i display the data from both the ITAB2 and itab3.

Edited by: abaper2008 on Jun 5, 2008 11:28 AM