Dear Raj,
I am giving you the code which is for vendor.
Kindly take the help of the abaper for better understanding.
I have removed the co code wherever it is applicable which abaper will understand and hope it will be helpful to you.
You can change the table and check if it works for you.
TABLES : LFA1,BSIK,BSAK.
TYPES : BEGIN OF TY_BSEG,
BELNR TYPE BELNR_D,
GJAHR TYPE GJAHR,
BSCHL TYPE BSCHL,
HKONT TYPE HKONT,
END OF TY_BSEG.
TYPES : BEGIN OF TY_SKAT,
SAKNR TYPE SAKNR,
TXT20 TYPE TXT20_SKAT,
END OF TY_SKAT.
DATA : IT_BSEG TYPE STANDARD TABLE OF TY_BSEG INITIAL SIZE 0,
IT_SKAT TYPE STANDARD TABLE OF TY_SKAT INITIAL SIZE 0,
WA_BSEG TYPE TY_BSEG,
WA_SKAT TYPE TY_SKAT.
DATA : I_BAPI LIKE TABLE OF BAPI3008_2 WITH HEADER LINE.
DATA : V_STARTDT LIKE BSAK-BUDAT,
V_OPENBAL LIKE BSIK-DMBTR VALUE 0,
V_CLEAROPENBAL LIKE BSIK-DMBTR VALUE 0,
V_DEBITAMT LIKE BSIK-DMBTR VALUE 0,
V_CREDITAMT LIKE BSIK-DMBTR VALUE 0.
DATA : V_BLANK TYPE C VALUE 'C'.
DATA : BEGIN OF I_BSAK OCCURS 0,
LIFNR LIKE BSAK-LIFNR,
GJAHR TYPE GJAHR,
BLART LIKE BSAK-BLART,
PRCTR LIKE BSAK-PRCTR,
GSBER LIKE BSAK-GSBER,
BELNR LIKE BSAK-BELNR,
BLDAT LIKE BSAK-BLDAT,
BUDAT LIKE BSAK-BUDAT,
XBLNR LIKE BSAK-XBLNR,
KIDNO LIKE BSAK-KIDNO,
SGTXT LIKE BSAK-SGTXT,
UMSKZ LIKE BSAK-UMSKZ,
SHKZG LIKE BSAK-SHKZG,
DMBTR LIKE BSAK-DMBTR,
AUGBL LIKE BSAK-AUGBL,
HKONT LIKE BSAK-HKONT,
END OF I_BSAK.
DATA : WA_BSAK LIKE I_BSAK.
DATA : WA_BSAK1 LIKE I_BSAK.
DATA : BAL LIKE BSIK-DMBTR VALUE 0,
PBAL LIKE BSIK-DMBTR VALUE 0,
DEFAULT LIKE BSIK-DMBTR VALUE 0.
DATA : CLOSEBAL LIKE BSIK-DMBTR VALUE 0,
PCLOSEBAL LIKE BSIK-DMBTR VALUE 0.
DATA : ZNAME1 LIKE LFA1-NAME1.
DATA : ZGTEXT LIKE TGSBT-GTEXT.
DATA : KIDXBL(30) TYPE C.
DATA : OPEN_BAL TYPE TABLE OF BAPI3007_3 WITH HEADER LINE.
DATA : I_BSAK1 LIKE STANDARD TABLE OF I_BSAK WITH HEADER LINE.
DATA : X LIKE BSAK-DMBTR VALUE 0.
DATA : BEGIN OF I_LIFNR OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
OPENBAL LIKE BSAK-DMBTR,
END OF I_LIFNR.
DATA : I_LIFNR1 LIKE STANDARD TABLE OF I_LIFNR WITH HEADER LINE.
DATA : WA_LIFNR LIKE I_LIFNR.
DATA : BEGIN OF I_BSIK OCCURS 0,
LIFNR LIKE BSAK-LIFNR,
GJAHR TYPE GJAHR,
BLART LIKE BSIK-BLART,
PRCTR LIKE BSIK-PRCTR,
GSBER LIKE BSIK-GSBER,
BELNR LIKE BSIK-BELNR,
BLDAT LIKE BSIK-BLDAT,
BUDAT LIKE BSIK-BUDAT,
XBLNR LIKE BSIK-XBLNR,
KIDNO LIKE BSAK-KIDNO,
SGTXT LIKE BSIK-SGTXT,
UMSKZ LIKE BSAK-UMSKZ,
SHKZG LIKE BSIK-SHKZG,
DMBTR LIKE BSIK-DMBTR,
AUGBL LIKE BSIK-AUGBL,
HKONT LIKE BSIK-HKONT,
END OF I_BSIK.
DATA : WA_BSIK LIKE I_BSIK.
DATA : BEGIN OF I_FINAL OCCURS 0,
LIFNR LIKE BSAK-LIFNR,
GJAHR TYPE GJAHR,
NAME1 LIKE LFA1-NAME1,
BLART LIKE BSAK-BLART,
LTEXT LIKE T003T-LTEXT,
PRCTR LIKE BSAK-PRCTR,
GSBER LIKE BSAK-GSBER,
BELNR LIKE BSAK-BELNR,
BLDAT LIKE BSAK-BLDAT,
BUDAT LIKE BSAK-BUDAT,
XBLNR LIKE BSAK-XBLNR,
KIDNO LIKE BSAK-KIDNO,
SGTXT LIKE BSAK-SGTXT,
UMSKZ LIKE BSAK-UMSKZ,
S_DMBTR LIKE BSAK-DMBTR,
H_DMBTR LIKE BSAK-DMBTR,
BAL LIKE BSAK-DMBTR,
AUGBL LIKE BSAK-AUGBL,
HKONT LIKE BSAK-HKONT,
HKONT1 TYPE HKONT,
TXT20 TYPE TXT20_SKAT,
END OF I_FINAL.
DATA : BEGIN OF I_FINAL1 OCCURS 0,
MONTH TYPE I,
LIFNR LIKE BSAK-LIFNR,
GJAHR TYPE GJAHR,
NAME1 LIKE LFA1-NAME1,
BLART LIKE BSAK-BLART,
LTEXT LIKE T003T-LTEXT,
PRCTR LIKE BSAK-PRCTR,
GSBER LIKE BSAK-GSBER,
BELNR LIKE BSAK-BELNR,
BLDAT LIKE BSAK-BLDAT,
BUDAT LIKE BSAK-BUDAT,
XBLNR LIKE BSAK-XBLNR,
KIDNO LIKE BSAK-KIDNO,
SGTXT LIKE BSAK-SGTXT,
UMSKZ LIKE BSAK-UMSKZ,
S_DMBTR LIKE BSAK-DMBTR,
H_DMBTR LIKE BSAK-DMBTR,
BAL LIKE BSAK-DMBTR,
OPBAL LIKE BSAK-DMBTR,
AUGBL LIKE BSAK-AUGBL,
HKONT LIKE BSAK-HKONT,
HKONT1 TYPE HKONT,
BUKRS LIKE BSAK-BUKRS,
TXT20 TYPE TXT20_SKAT,
END OF I_FINAL1.
DATA : I_FINAL2 LIKE STANDARD TABLE OF I_FINAL1 WITH HEADER LINE.
DATA : I_FINAL3 LIKE STANDARD TABLE OF I_FINAL1 WITH HEADER LINE.
DATA : WA_FINAL LIKE I_FINAL.
DATA : WAFINAL1 LIKE I_FINAL1.
DATA : I_AMOUNT LIKE STANDARD TABLE OF I_FINAL INITIAL SIZE 0.
DATA : V_DATE LIKE BSAK-BUDAT,
VOPENBAL LIKE BSAK-DMBTR,
DISPBAL LIKE BSAK-DMBTR.
*data : i_FINAL1 like standard table of i_final WITH HEADER LINE.
*######################################################################
*# SELECTION-SCREEN #
*######################################################################
* Selection screen processing
SELECTION-SCREEN BEGIN OF BLOCK A.
SELECT-OPTIONS : S_LIFNR FOR BSAK-LIFNR OBLIGATORY.
PARAMETERS : P_GSBER LIKE BSIK-GSBER.
SELECT-OPTIONS : S_DATE FOR BSAK-BUDAT OBLIGATORY.
PARAMETERS : PAGE_BRK TYPE C AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK A.
*######################################################################
*# AT SELECTION-SCREEN #
*######################################################################
AT SELECTION-SCREEN.
REFRESH I_BSAK.
REFRESH I_BSIK.
REFRESH I_FINAL.
REFRESH I_FINAL1.
REFRESH I_FINAL2.
REFRESH I_FINAL3.
* Get the required fields from bsak
SELECT LIFNR
GJAHR
BLART
PRCTR
GSBER
BELNR
BLDAT
BUDAT
XBLNR
KIDNO
SGTXT
UMSKZ
SHKZG
DMBTR
AUGBL
HKONT
FROM BSAK INTO TABLE I_BSAK
WHERE LIFNR IN S_LIFNR
AND BUDAT IN S_DATE
AND BLART <> 'AB'.
*
*
* IF I_BSAK IS NOT INITIAL.
*
* SELECT BELNR GJAHR BSCHL HKONT FROM BSEG INTO TABLE IT_BSEG FOR ALL ENTRIES IN I_BSAK
* WHERE BELNR = I_BSAK-AUGBL
* AND GJAHR = I_BSAK-GJAHR.
** AND BSCHL IN ('50' , '39' ).
*
* ENDIF.
*
* IF IT_BSEG IS NOT INITIAL.
*
* SELECT SAKNR TXT20 FROM SKAT INTO TABLE IT_SKAT FOR ALL ENTRIES IN IT_BSEG
* WHERE SAKNR = IT_BSEG-HKONT.
*
* ENDIF.
*
*
SELECT LIFNR
GJAHR
BLART
PRCTR
GSBER
BELNR
BLDAT
BUDAT
XBLNR
KIDNO
SGTXT
UMSKZ
SHKZG
DMBTR
AUGBL
HKONT
FROM BSIK INTO TABLE I_BSIK
WHERE LIFNR IN S_LIFNR
AND BUDAT IN S_DATE
AND BLART <> 'AB'.
I_BSAK1[] = I_BSAK[].
LOOP AT I_BSIK INTO WA_BSIK.
APPEND WA_BSIK TO I_BSAK1.
ENDLOOP.
LOOP AT I_BSAK1 INTO WA_BSAK.
IF P_GSBER EQ SPACE OR
WA_BSAK-GSBER EQ P_GSBER.
IF WA_BSAK-SHKZG = 'S'.
WA_FINAL-S_DMBTR = WA_BSAK-DMBTR.
ELSEIF WA_BSAK-SHKZG = 'H'.
WA_FINAL-H_DMBTR = WA_BSAK-DMBTR.
ENDIF.
SELECT SINGLE LTEXT FROM T003T
INTO WA_FINAL-LTEXT
WHERE SPRAS = 'EN'
AND BLART = WA_BSAK-BLART.
SELECT SINGLE NAME1 FROM LFA1
INTO WA_FINAL-NAME1
WHERE LIFNR = WA_BSAK-LIFNR.
WA_FINAL-LIFNR = WA_BSAK-LIFNR.
WA_FINAL-GJAHR = WA_BSAK-GJAHR.
WA_FINAL-BLART = WA_BSAK-BLART.
WA_FINAL-PRCTR = WA_BSAK-PRCTR.
WA_FINAL-GSBER = WA_BSAK-GSBER.
WA_FINAL-BELNR = WA_BSAK-BELNR.
WA_FINAL-BLDAT = WA_BSAK-BLDAT.
WA_FINAL-BUDAT = WA_BSAK-BUDAT.
WA_FINAL-XBLNR = WA_BSAK-XBLNR.
WA_FINAL-KIDNO = WA_BSAK-KIDNO.
WA_FINAL-SGTXT = WA_BSAK-SGTXT.
WA_FINAL-UMSKZ = WA_BSAK-UMSKZ.
WA_FINAL-AUGBL = WA_BSAK-AUGBL.
WA_FINAL-HKONT = WA_BSAK-HKONT.
*
*
* READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = WA_BSAK-AUGBL.
* IF SY-SUBRC = 0.
*
* WA_FINAL-HKONT1 = WA_BSEG-HKONT.
*
* ENDIF.
*
* READ TABLE IT_SKAT INTO WA_SKAT WITH KEY SAKNR = WA_FINAL-HKONT1.
* IF SY-SUBRC = 0.
*
* WA_FINAL-TXT20 = WA_SKAT-TXT20.
*
* ENDIF.
*
*
APPEND WA_FINAL TO I_FINAL.
ENDIF.
CLEAR : WA_FINAL , WA_BSEG , WA_SKAT.
ENDLOOP.
V_DATE = S_DATE-LOW - 1.
* V_STARTDT = ''.
V_STARTDT = ''.
LOOP AT I_FINAL.
I_FINAL1-BLDAT = I_FINAL-BLDAT.
I_FINAL1-LIFNR = I_FINAL-LIFNR.
I_FINAL1-GJAHR = I_FINAL-GJAHR.
I_FINAL1-NAME1 = I_FINAL-NAME1.
I_FINAL1-BLART = I_FINAL-BLART.
I_FINAL1-LTEXT = I_FINAL-LTEXT.
I_FINAL1-PRCTR = I_FINAL-PRCTR.
I_FINAL1-GSBER = I_FINAL-GSBER.
I_FINAL1-BELNR = I_FINAL-BELNR.
I_FINAL1-BLDAT = I_FINAL-BLDAT.
I_FINAL1-MONTH = I_FINAL-BUDAT+4(2).
I_FINAL1-BUDAT = I_FINAL-BUDAT.
I_FINAL1-XBLNR = I_FINAL-XBLNR.
I_FINAL1-KIDNO = I_FINAL-KIDNO.
I_FINAL1-SGTXT = I_FINAL-SGTXT.
I_FINAL1-UMSKZ = I_FINAL-UMSKZ.
I_FINAL1-S_DMBTR = I_FINAL-S_DMBTR.
I_FINAL1-H_DMBTR = I_FINAL-H_DMBTR.
I_FINAL1-BAL = I_FINAL-S_DMBTR.
I_FINAL1-AUGBL = I_FINAL-AUGBL.
I_FINAL1-HKONT = I_FINAL-HKONT.
I_FINAL1-HKONT1 = I_FINAL-HKONT1.
I_FINAL1-TXT20 = I_FINAL-TXT20.
APPEND I_FINAL1.
ENDLOOP.
I_FINAL2[] = I_FINAL1[].
SORT I_FINAL2 BY LIFNR.
SELECT LIFNR FROM LFA1
INTO CORRESPONDING FIELDS OF TABLE I_LIFNR1
WHERE LIFNR IN S_LIFNR.
IF P_GSBER = 'GEIL'.
I_FINAL1-BUKRS = 'GEIL'.
ELSE.
I_FINAL1-BUKRS = 'HNGL'.
ENDIF.
LOOP AT I_LIFNR1.
* i_lifnr-lifnr = i_lifnr1-lifnr.
IF P_GSBER <> SPACE.
CALL FUNCTION 'BAPI_AP_ACC_GETSTATEMENT'
EXPORTING
COMPANYCODE = I_FINAL1-BUKRS "''
VENDOR = I_LIFNR1-LIFNR
DATE_FROM = V_STARTDT
DATE_TO = V_DATE
* NOTEDITEMS = ' '
* IMPORTING
* RETURN =
TABLES
LINEITEMS = I_BAPI.
LOOP AT I_BAPI.
IF I_BAPI-DOC_TYPE <> 'AB'.
IF I_BAPI-BUS_AREA = P_GSBER.
IF I_BAPI-DB_CR_IND = 'S'.
V_DEBITAMT = V_DEBITAMT + I_BAPI-LC_AMOUNT.
ENDIF.
IF I_BAPI-DB_CR_IND = 'H'.
V_CREDITAMT = V_CREDITAMT + I_BAPI-LC_AMOUNT.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
V_OPENBAL = V_DEBITAMT - V_CREDITAMT.
CLEAR I_BAPI.
REFRESH I_BAPI.
CALL FUNCTION 'BAPI_AP_ACC_GETSTATEMENT'
EXPORTING
COMPANYCODE = I_FINAL1-BUKRS "''
VENDOR = I_LIFNR1-LIFNR
DATE_FROM = S_DATE-LOW
DATE_TO = S_DATE-HIGH
* NOTEDITEMS = ' '
* IMPORTING
* RETURN =
TABLES
LINEITEMS = I_BAPI.
LOOP AT I_BAPI WHERE BUS_AREA = P_GSBER.
IF I_BAPI-DOC_TYPE <> 'AB'.
V_BLANK = 'X'.
ENDIF.
ENDLOOP.
IF V_OPENBAL > 0 OR V_BLANK = 'X'.
I_LIFNR-LIFNR = I_LIFNR1-LIFNR.
I_LIFNR-OPENBAL = V_OPENBAL.
APPEND I_LIFNR.
ENDIF.
CLEAR V_BLANK.
CLEAR V_OPENBAL.
CLEAR V_DEBITAMT.
CLEAR V_CREDITAMT.
CLEAR I_BAPI.
REFRESH I_BAPI.
ENDIF.
IF P_GSBER EQ SPACE.
CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
EXPORTING
COMPANYCODE = I_FINAL1-BUKRS "''
VENDOR = I_LIFNR1-LIFNR
KEYDATE = V_DATE
* BALANCESPGLI = ' '
* NOTEDITEMS = ' '
* IMPORTING
* RETURN =
TABLES
KEYBALANCE = OPEN_BAL.
CALL FUNCTION 'BAPI_AP_ACC_GETSTATEMENT'
EXPORTING
COMPANYCODE = I_FINAL1-BUKRS "''
VENDOR = I_LIFNR1-LIFNR
DATE_FROM = S_DATE-LOW
DATE_TO = S_DATE-HIGH
* NOTEDITEMS = ' '
* IMPORTING
* RETURN =
TABLES
LINEITEMS = I_BAPI.
LOOP AT I_BAPI.
IF I_BAPI-DOC_TYPE <> 'AB'.
V_BLANK = 'X'.
ENDIF.
ENDLOOP.
IF OPEN_BAL-LC_BAL > 0 OR V_BLANK = 'X'.
I_LIFNR-LIFNR = I_LIFNR1-LIFNR.
I_LIFNR-OPENBAL = OPEN_BAL-LC_BAL.
APPEND I_LIFNR.
ENDIF.
CLEAR V_BLANK.
CLEAR I_BAPI.
REFRESH I_BAPI.
ENDIF.
* I_LIFNR-OPENBAL = OPEN_BAL-LC_BAL.
* APPEND i_lifnr.
ENDLOOP.
SORT I_LIFNR BY LIFNR.
DELETE ADJACENT DUPLICATES FROM I_LIFNR.
*select distinct lifnr from lfa1 into table i_lifnr where lifnr in s_lifnr.
*sort i_lifnr by lifnr.
*sort i_final1 by BUDAT.
SORT I_LIFNR BY LIFNR.
TOP-OF-PAGE.
*FORMAT COLOR COL_HEADING ON.
SELECT SINGLE GTEXT FROM TGSBT
INTO ZGTEXT
WHERE SPRAS = 'E'
AND GSBER = P_GSBER.
IF P_GSBER = ''.
WRITE : /47(7) '', 55(20) ZGTEXT.
ELSE.
WRITE : /47(7) 'HNGIL', 55(20) ZGTEXT.
ENDIF.
WRITE : /32'STATEMENT OF ACCOUNT FOR THE PERIOD', S_DATE-LOW, 'TO', S_DATE-HIGH, 'Page No:', SY-PAGNO.
ULINE.
WRITE : /1(4)'DOC', 6(10)' DOC NO.',
18(12)'POSTING DT', 31(12) 'INVOICE DT', 44(14)'CHEQUE/', 59(20)'BANK',
80(27)'DESCRIPTION', 108(10)'CLEAR DOC',
119(13)'DEBIT' RIGHT-JUSTIFIED, 133(13)'CREDIT' RIGHT-JUSTIFIED, 147(13)'DEBIT BAL.' RIGHT-161(13)'CREDIT BAL.' RIGHT-JUSTIFIED.
WRITE : /1(4)'TYPE', 44(16)'BILL NO'.
ULINE.
*
*FORMAT COLOR COL_HEADING OFF.
START-OF-SELECTION.
*loop at i_final2.
ULINE.
LOOP AT I_LIFNR.
VOPENBAL = I_LIFNR-OPENBAL.
AT NEW LIFNR.
SELECT SINGLE NAME1 FROM LFA1
INTO ZNAME1
WHERE LIFNR = I_LIFNR-LIFNR.
* BREAK-POINT.
IF SY-LINNO > 60.
NEW-PAGE.
ENDIF.
WRITE : / 'VENDOR NO. :', I_LIFNR-LIFNR, 'VENDOR NAME :', ZNAME1.
ULINE.
V_CLEAROPENBAL = VOPENBAL.
IF VOPENBAL > 0.
DISPBAL = VOPENBAL.
WRITE : / 'OPENING BALANCE', DISPBAL UNDER 'DEBIT BAL.'.
ELSE.
DISPBAL = VOPENBAL.
DISPBAL = - DISPBAL.
WRITE : / 'OPENING BALANCE', DISPBAL UNDER 'CREDIT BAL.'.
ENDIF.
ENDAT.
LOOP AT I_FINAL1 INTO I_FINAL3 WHERE LIFNR = I_LIFNR-LIFNR.
APPEND I_FINAL3.
ENDLOOP.
SORT I_FINAL3 BY BUDAT.
"
IF I_FINAL3 IS NOT INITIAL.
SELECT BELNR GJAHR BSCHL HKONT FROM BSEG INTO TABLE IT_BSEG FOR ALL ENTRIES IN I_FINAL3
WHERE BELNR = I_FINAL3-AUGBL
AND GJAHR = I_FINAL3-GJAHR
AND BSCHL IN ('50' , '39' ).
ENDIF.
IF IT_BSEG IS NOT INITIAL.
SELECT SAKNR TXT20 FROM SKAT INTO TABLE IT_SKAT FOR ALL ENTRIES IN IT_BSEG
WHERE SAKNR = IT_BSEG-HKONT.
ENDIF.
LOOP AT I_FINAL3.
WAFINAL1-MONTH = I_FINAL3-MONTH.
WAFINAL1-BLART = I_FINAL3-BLART.
WAFINAL1-BUDAT = I_FINAL3-BUDAT.
WAFINAL1-LTEXT = I_FINAL3-LTEXT.
WAFINAL1-BELNR = I_FINAL3-BELNR.
WAFINAL1-BLDAT = I_FINAL3-BLDAT.
READ TABLE IT_BSEG INTO WA_BSEG WITH KEY BELNR = I_FINAL3-AUGBL.
IF SY-SUBRC = 0.
WAFINAL1-HKONT1 = WA_BSEG-HKONT.
ENDIF.
READ TABLE IT_SKAT INTO WA_SKAT WITH KEY SAKNR = WAFINAL1-HKONT1.
IF SY-SUBRC = 0.
WAFINAL1-TXT20 = WA_SKAT-TXT20.
ENDIF.
IF I_FINAL3-XBLNR <> SPACE.
KIDXBL = I_FINAL3-XBLNR.
ELSEIF I_FINAL3-KIDNO <> SPACE.
KIDXBL = I_FINAL3-KIDNO.
ENDIF.
WAFINAL1-SGTXT = I_FINAL3-SGTXT.
WAFINAL1-AUGBL = I_FINAL3-AUGBL.
WAFINAL1-S_DMBTR = I_FINAL3-S_DMBTR.
WAFINAL1-H_DMBTR = I_FINAL3-H_DMBTR.
WRITE :/ WAFINAL1-BLART UNDER 'DOC', WAFINAL1-BELNR UNDER ' DOC NO.',
WAFINAL1-BLDAT UNDER 'INVOICE DT', KIDXBL UNDER 'CHEQUE/', WAFINAL1-TXT20 UNDER 'BANK',
WAFINAL1-SGTXT UNDER 'DESCRIPTION', WAFINAL1-AUGBL UNDER 'CLEAR DOC',
WAFINAL1-BUDAT UNDER 'POSTING DT', WAFINAL1-S_DMBTR UNDER 'DEBIT', WAFINAL1-H_DMBTR * WRITE : /1(4)'DOC', 6(10)' DOC NO.',
* 18(12)'POSTING DT', 31(12) 'INVOICE DT', 44(14)'CHEQUE/',
* 59(27)'DESCRIPTION', 87(10)'CLEAR DOC',
* 98(13)'DEBIT' RIGHT-JUSTIFIED, 115(13)'CREDIT' RIGHT-JUSTIFIED, 132(13)'DEBIT BAL.' RIGHT-* 148(13)'CREDIT BAL.' RIGHT-JUSTIFIED.
* WRITE : /1(4)'TYPE', 31(16)'BILL NO'.
CLEAR KIDXBL.
AT END OF MONTH.
SUM.
IF V_CLEAROPENBAL > 0.
I_FINAL3-S_DMBTR = I_FINAL3-S_DMBTR + V_CLEAROPENBAL.
ELSEIF V_CLEAROPENBAL < 0.
I_FINAL3-H_DMBTR = I_FINAL3-H_DMBTR - V_CLEAROPENBAL.
ENDIF.
CLEAR V_CLEAROPENBAL.
IF BAL >= 0.
PBAL = BAL.
BAL = ( PBAL + I_FINAL3-S_DMBTR ) - I_FINAL3-H_DMBTR.
ELSE.
PBAL = BAL.
PBAL = - PBAL.
BAL = ( PBAL + I_FINAL3-H_DMBTR ) - I_FINAL3-S_DMBTR.
BAL = - BAL.
ENDIF.
PBAL = BAL.
ULINE.
IF BAL > 0.
WRITE : /70(25) 'Month Balance :', PBAL UNDER 'DEBIT BAL.', DEFAULT UNDER 'CREDIT BAL.'.
ELSE.
PBAL = - PBAL.
WRITE : /70(25) 'Month Balance :', DEFAULT UNDER 'DEBIT BAL.', PBAL UNDER 'CREDIT BAL.'.
ENDIF.
ULINE.
ENDAT.
SUM.
ENDLOOP.
AT END OF LIFNR.
WRITE : /70(25) 'Total Debit & Credit:', I_FINAL3-S_DMBTR UNDER 'DEBIT', I_FINAL3-H_DMBTR UNDER ULINE.
IF VOPENBAL > 0.
I_FINAL3-S_DMBTR = DISPBAL + I_FINAL3-S_DMBTR.
ELSE.
I_FINAL3-H_DMBTR = DISPBAL + I_FINAL3-H_DMBTR.
ENDIF.
WRITE : /70(25) 'Grand Total :', I_FINAL3-S_DMBTR UNDER 'DEBIT BAL.', I_FINAL3-H_DMBTR BAL = 0.
ULINE.
ENDAT.
CLOSEBAL = I_FINAL3-H_DMBTR - I_FINAL3-S_DMBTR.
IF CLOSEBAL > 0.
WRITE : /70(25) 'Closing Balance :', DEFAULT UNDER 'DEBIT BAL.', CLOSEBAL UNDER 'CREDIT ELSE.
CLOSEBAL = - CLOSEBAL.
WRITE : /70(25) 'Closing Balance :', CLOSEBAL UNDER 'DEBIT BAL.', DEFAULT UNDER 'CREDIT ENDIF.
ULINE.
IF PAGE_BRK = 'X'.
NEW-PAGE.
ENDIF.
REFRESH I_FINAL3.
CLEAR I_FINAL3.
CLEAR WAFINAL1.
CLEAR DISPBAL.
CLEAR VOPENBAL.
ENDLOOP.
Regards
Eugene