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