Skip to Content
0
Former Member
Mar 23, 2009 at 10:24 AM

multiple lines not coming

71 Views

Hi,

Can any help me in the issue i am facing. For F.27 transaction code some changes I am doing for the script of correspondence SAP06. I have written a perform statement to get both open & cleared items in one internal table & i want to cummulate the same document number which was not given in the standard.

I pasting the perform statement what i have written & calling the same in the form. But only 1 line item is coming where there are 28 lines in the database. kindly correct my logic to get the correct out put.

FORM NEWSAP06 TABLES IN_TAB STRUCTURE ITCSY

OUT_TAB STRUCTURE ITCSY.

DATA : BEGIN OF IBSAD OCCURS 0,

BELNR LIKE BSAD-BELNR,

BLART LIKE BSAD-BLART,

BLDAT LIKE BSAD-BLDAT,

XBLNR LIKE BSAD-XBLNR,

SHKZG LIKE BSAD-SHKZG,

DMBTR LIKE BSAD-DMBTR,

WAERS LIKE BSAD-WAERS,

END OF IBSAD.

DATA : BEGIN OF IBSID OCCURS 0,

BELNR LIKE BSID-BELNR,

BLART LIKE BSID-BLART,

BLDAT LIKE BSID-BLDAT,

XBLNR LIKE BSID-XBLNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

WAERS LIKE BSID-WAERS,

END OF IBSID.

DATA : BEGIN OF ITAB OCCURS 0,

BELNR LIKE BSID-BELNR,

BLART LIKE BSID-BLART,

BLDAT LIKE BSID-BLDAT,

XBLNR LIKE BSID-XBLNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

WAERS LIKE BSID-WAERS,

LTEXT LIKE T003T-LTEXT,

END OF ITAB.

DATA : ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE.

DATA : WDMBTR LIKE BSID-DMBTR.

DATA : MBELNR LIKE BSAD-BELNR,

MBLART LIKE BSAD-BLART,

MBLDAT LIKE BSAD-BLDAT,

MXBLNR LIKE BSAD-XBLNR,

MDMBTR LIKE BSAD-DMBTR,

MLTEXT LIKE T003T-LTEXT,

MWAERS LIKE BSAD-WAERS,

MKUNNR LIKE KNA1-KUNNR,

MBUKRS LIKE BSAD-BUKRS.

READ TABLE IN_TAB WITH KEY NAME = 'BKORM-KONTO'.

READ TABLE IN_TAB WITH KEY NAME = 'DKADR-KONTO'.

IF SY-SUBRC = 4.

READ TABLE IN_TAB WITH KEY NAME = 'F150D-KTONR'.

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IN_TAB-VALUE

IMPORTING

OUTPUT = MKUNNR.

READ TABLE IN_TAB WITH KEY NAME = 'RBUKRS-LOW'.

IF SY-SUBRC = 4.

READ TABLE IN_TAB WITH KEY NAME = 'BSAD-BUKRS'.

ENDIF.

MBUKRS = IN_TAB-VALUE.

SELECT BELNR BLART BLDAT XBLNR SHKZG DMBTR WAERS

FROM BSAD

INTO CORRESPONDING FIELDS OF TABLE IBSAD

WHERE KUNNR = MKUNNR

AND BUKRS = MBUKRS

AND ( BLART = 'DG' OR BLART = 'DR' OR BLART = 'DZ' OR BLART = 'RV' ).

SORT IBSAD BY BELNR.

LOOP AT IBSAD.

IF IBSAD-SHKZG = 'H'.

IBSAD-DMBTR = IBSAD-DMBTR * -1.

ELSEIF IBSAD-SHKZG = 'S'.

IBSAD-DMBTR = IBSAD-DMBTR.

ENDIF.

MODIFY IBSAD.

ENDLOOP.

LOOP AT IBSAD.

ITAB = IBSAD.

APPEND ITAB.

ENDLOOP.

SELECT BELNR BLART BLDAT XBLNR SHKZG DMBTR WAERS

FROM BSID

INTO CORRESPONDING FIELDS OF TABLE IBSID

WHERE KUNNR = MKUNNR

AND BUKRS = MBUKRS

AND ( BLART = 'DG' OR BLART = 'DR' OR BLART = 'DZ' OR BLART = 'RV' ).

SORT IBSID BY BELNR.

LOOP AT IBSID.

IF IBSID-SHKZG = 'H'.

IBSID-DMBTR = IBSID-DMBTR * -1.

ELSEIF IBSID-SHKZG = 'S'.

IBSID-DMBTR = IBSID-DMBTR.

ENDIF.

MODIFY IBSID.

ENDLOOP.

LOOP AT IBSID.

ITAB = IBSID.

APPEND ITAB.

ENDLOOP.

LOOP AT ITAB.

SELECT SINGLE LTEXT INTO ITAB-LTEXT

FROM T003T

WHERE BLART = ITAB-BLART

AND SPRAS = 'EN'.

MODIFY ITAB.

ENDLOOP.

SORT ITAB BY BELNR.

ITAB1[] = ITAB[].

REFRESH ITAB.

CLEAR ITAB.

LOOP AT ITAB1.

ITAB = ITAB1.

AT END OF BELNR.

SUM.

WDMBTR = ITAB1-DMBTR.

ITAB-DMBTR = WDMBTR.

APPEND ITAB.

ENDAT.

ENDLOOP. till here i got all the open & cleared line items with same doc no added

SORT ITAB BY BLDAT.

LOOP AT ITAB. in this loop i am getting only last line item in the form print preview

LOOP AT OUT_TAB.

IF OUT_TAB-NAME = 'MBLDAT'.

OUT_TAB-VALUE = ITAB-BLDAT.

ELSEIF OUT_TAB-NAME = 'MLTEXT'.

OUT_TAB-VALUE = ITAB-LTEXT.

ELSEIF OUT_TAB-NAME = 'MBELNR'.

OUT_TAB-VALUE = ITAB-BELNR.

ELSEIF OUT_TAB-NAME = 'MXBLNR'.

OUT_TAB-VALUE = ITAB-XBLNR.

ELSEIF OUT_TAB-NAME = 'MWAERS'.

OUT_TAB-VALUE = ITAB-WAERS.

ELSEIF OUT_TAB-NAME = 'MDMBTR'.

OUT_TAB-VALUE = ITAB-DMBTR.

ENDIF.

MODIFY OUT_TAB.

ENDLOOP.

ENDLOOP.

kindly give a solution

regards,

ram