Skip to Content
0
Former Member
Jun 02, 2008 at 07:35 AM

runtime error

75 Views

hi experts,

i have made one report,but wen i execute this report for a full fiscal year n for all customers then it gives an runtime error of LOW MEMORY SPACE.plz tell how cud i recover from this error.m sendin u code of my report.plz do the needful.

&----


*& Report ZCUSTOMER_BAL

*&

&----


*&

*&

&----


REPORT ZCUSTOMER_BAL.

TYPE-POOLS : SLIS .

*Table Decleration.

TABLES : BSID,KNA1,T001,BKPF,TVZBT,TVFKT,VBRK,ADRC,T005T,VBRP,BSAD,T171T,KNVP.

*Input Parameter Decleration for selection

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_BUKRS LIKE BSID-BUKRS OBLIGATORY DEFAULT 'CP01'.

SELECT-OPTIONS : S_DATE FOR BKPF-BUDAT NO-EXTENSION.

SELECTION-SCREEN: END OF BLOCK B1 .

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER : CHECK1 RADIOBUTTON GROUP RAD1 DEFAULT 'X' USER-COMMAND ABC.

SELECTION-SCREEN COMMENT 3(16) TEXT-003.

SELECT-OPTIONS : S_KUNNR FOR BSAD-KUNNR MODIF ID CU .

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER :CHECK5 RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN COMMENT 3(16) TEXT-004.

SELECT-OPTIONS : REGIO FOR T171T-BZIRK MODIF ID RE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER : CHECK3 RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN COMMENT 3(16) TEXT-005.

SELECT-OPTIONS : KUNNSO FOR KNA1-KUNNR MODIF ID SO.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER : CHECK4 RADIOBUTTON GROUP RAD1 .

SELECTION-SCREEN COMMENT 3(16) TEXT-006.

SELECT-OPTIONS : KUNNAM FOR KNA1-KUNNR MODIF ID AM.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETER : CHECK2 RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN COMMENT 3(16) TEXT-007.

SELECT-OPTIONS : KUNNRM FOR KNA1-KUNNR MODIF ID RM.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN: END OF BLOCK B2 .

  • IF CHECK2 = 'X' OR CHECK3 = 'X' OR CHECK4 = 'X'.

  • MESSAGE I008(ZMSG).

  • EXIT.

  • ENDIF.

  • Internal Table TOP-OF-PAGE commentary

DATA: IT_COMMENTARY TYPE SLIS_T_LISTHEADER.

  • Work Area TOP-OF-PAGE commentary

DATA: WA_COMMENTARY TYPE SLIS_LISTHEADER.

data :gd_repid like sy-repid.

gd_repid = sy-repid.

DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV,WBUKRS LIKE BSID-BUKRS,

WBELNR LIKE BKPF-BELNR,

WBUDAT LIKE BKPF-BUDAT.

.

DATA: BEGIN OF ITAB_BSID OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BUKRS LIKE BSID-BUKRS,

BELNR LIKE BSID-BELNR,

GJAHR LIKE BSID-GJAHR,

BUZEI LIKE BSID-BUZEI,

SHKZG LIKE BSID-SHKZG,

VALUT LIKE BSID-ZFBDT,

SGTXT LIKE BSID-SGTXT,

ZFBDT LIKE BSID-ZFBDT,

ZUONR LIKE BSID-ZUONR,

DMBTR LIKE BSID-DMBTR,

PSWSL LIKE BSID-PSWSL,

ZTERM LIKE BSID-ZTERM,

VBELN LIKE BSID-VBELN,

VTEXT LIKE TVZBT-VTEXT,

VTEXT1 LIKE TVFKT-VTEXT,

NAME1 LIKE LFA1-NAME1,

BUDAT LIKE BKPF-BUDAT,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

VORGN LIKE BSEG-VORGN,

WERKS LIKE BSEG-WERKS,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF ITAB_BSID.

DATA: BEGIN OF ITAB_BSAD OCCURS 0,

KUNNR LIKE BSAD-KUNNR,

BUKRS LIKE BSAD-BUKRS,

BELNR LIKE BSAD-BELNR,

GJAHR LIKE BSAD-GJAHR,

BUZEI LIKE BSAD-BUZEI,

SHKZG LIKE BSAD-SHKZG,

VALUT LIKE BSAD-ZFBDT,

SGTXT LIKE BSAD-SGTXT,

ZFBDT LIKE BSAD-ZFBDT,

ZUONR LIKE BSAD-ZUONR,

DMBTR LIKE BSAD-DMBTR,

PSWSL LIKE BSAD-PSWSL,

ZTERM LIKE BSAD-ZTERM,

VBELN LIKE BSAD-VBELN,

VTEXT LIKE TVZBT-VTEXT,

VTEXT1 LIKE TVFKT-VTEXT,

NAME1 LIKE LFA1-NAME1,

BUDAT LIKE BKPF-BUDAT,

D_DMBTR LIKE BSAD-DMBTR,

S_DMBTR LIKE BSAD-DMBTR,

VORGN LIKE BSEG-VORGN,

WERKS LIKE BSEG-WERKS,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF ITAB_BSAD.

DATA: BEGIN OF ITAB OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BELNR LIKE BSID-BELNR,

BUKRS LIKE BSID-BUKRS,

GJAHR LIKE BSID-GJAHR,

BUZEI LIKE BSID-BUZEI,

SHKZG LIKE BSID-SHKZG,

VALUT LIKE BSID-ZFBDT,

SGTXT(70) TYPE C,

ZFBDT LIKE BSID-ZFBDT,

ZUONR LIKE BSID-ZUONR,

DMBTR LIKE BSID-DMBTR,

PSWSL LIKE BSID-PSWSL,

ZTERM LIKE BSID-ZTERM,

VBELN LIKE BSID-VBELN,

VTEXT LIKE TVZBT-VTEXT,

VTEXT1(70) TYPE C,

NAME1 LIKE LFA1-NAME1,

BUDAT LIKE BKPF-BUDAT,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

VORGN LIKE BSEG-VORGN,

WERKS LIKE BSEG-WERKS,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF ITAB.

DATA: BEGIN OF FC OCCURS 0,

BELNR LIKE BSID-BELNR,

KUNNR LIKE BSID-KUNNR,

BUKRS LIKE BSID-BUKRS,

GJAHR LIKE BSID-GJAHR,

BUZEI LIKE BSID-BUZEI,

SHKZG LIKE BSID-SHKZG,

VALUT LIKE BSID-ZFBDT,

SGTXT(70) TYPE C,

ZFBDT LIKE BSID-ZFBDT,

ZUONR LIKE BSID-ZUONR,

DMBTR LIKE BSID-DMBTR,

PSWSL LIKE BSID-PSWSL,

ZTERM LIKE BSID-ZTERM,

VBELN LIKE BSID-VBELN,

VTEXT LIKE TVZBT-VTEXT,

VTEXT1(70) TYPE C,

NAME1 LIKE LFA1-NAME1,

BUDAT LIKE BKPF-BUDAT,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

VORGN LIKE BSEG-VORGN,

WERKS LIKE BSEG-WERKS,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF FC.

DATA: BEGIN OF ITABO OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BELNR LIKE BSID-BELNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

END OF ITABO.

DATA: BEGIN OF ITABF OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BELNR LIKE BSID-BELNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

END OF ITABF.

DATA: BEGIN OF KUNNSO_ITAB OCCURS 0,

KUNN2 LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

END OF KUNNSO_ITAB.

DATA : BEGIN OF CUSTOMER OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

KUNN2 LIKE KNVP-KUNN2,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF CUSTOMER.

DATA : BEGIN OF IT_NAME OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF IT_NAME.

DATA: BEGIN OF ITABO_BSID OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BELNR LIKE BSID-BELNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

END OF ITABO_BSID.

DATA: BEGIN OF ITABO_BSAD OCCURS 0,

KUNNR LIKE BSID-KUNNR,

BELNR LIKE BSID-BELNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

D_DMBTR LIKE BSID-DMBTR,

S_DMBTR LIKE BSID-DMBTR,

END OF ITABO_BSAD.

DATA : BEGIN OF FINAL OCCURS 0,

DMBTR LIKE BSID-DMBTR,

KUNNR LIKE BSID-KUNNR,

  • KOART LIKE BSID-KOART,

SHKZG LIKE BSID-SHKZG,

BLDAT LIKE BKPF-BLDAT,

NAME LIKE KNA1-NAME1,

ORT01 LIKE KNA1-ORT01,

OPEN LIKE BSID-DMBTR,

CR_DR1(4) TYPE C,

CREDIT LIKE BSID-DMBTR,

DEBIT LIKE BSID-DMBTR,

AMOUNT LIKE BSID-DMBTR,

CR_DR(4) TYPE C,

NAMESO LIKE KNA1-NAME1,

NAMEAM LIKE KNA1-NAME1,

NAMERM LIKE KNA1-NAME1,

END OF FINAL.

CONSTANTS : C_D VALUE 'D',

C_F VALUE 'F',

C_H VALUE 'H'.

DATA : BEGIN OF ITAB_DET OCCURS 0,

MATNR LIKE VBRP-MATNR,

ARKTX LIKE VBRP-ARKTX,

FKIMG LIKE VBRP-FKIMG,

NETWR LIKE VBRP-NETWR,

END OF ITAB_DET.

  • RANGE DECLARATION **********

RANGES: R_BELNR FOR BKPF-BELNR,

R_BUZEI FOR BSID-BUZEI.

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

*Data Decleration

DATA : TOTAL LIKE BSID-DMBTR,

TOTAL1 LIKE BSID-DMBTR,

TOTAL_F LIKE BSID-DMBTR,

TOTAL_FN LIKE BSID-DMBTR,

TOTAL_D LIKE BSID-DMBTR,

TOTAL_DF LIKE BSID-DMBTR,

TOTAL_S LIKE BSID-DMBTR,

TOTAL_SF LIKE BSID-DMBTR,

AUGRU LIKE VBAK-AUGRU,

VVORGN LIKE BSEG-VORGN,

VBELNR LIKE BSID-BELNR,

VKOART LIKE BSEG-KOART,

VKUNNR LIKE BSID-KUNNR,

VBUZEI LIKE BSID-BUZEI,

VTEXT1 LIKE BSID-SGTXT,

VTEXT2 LIKE BSID-SGTXT,

VTEXT3 LIKE BSID-SGTXT,

VTEXT4 LIKE BSID-SGTXT,

VTEXT TYPE C LENGTH 70,

VVBTYP LIKE VBRK-VBTYP,

VFKART LIKE VBRK-FKART,

F_YEAR(4) TYPE C,

DR_CR(2) TYPE C,

DR_CRO(2) TYPE C,

CLBAL LIKE BSID-DMBTR,

TOTAL_FO LIKE BSID-DMBTR,

N(2) TYPE C VALUE 1,

POS LIKE SY-TABIX,

CVAL LIKE BSID-DMBTR,

DVAL LIKE BSID-DMBTR,

VAL LIKE BSID-DMBTR,

DATE LIKE BKPF-BUDAT,

VBELNR_O LIKE BSID-BELNR,

POS_O LIKE SY-TABIX,

CVAL_O LIKE BSID-DMBTR,

DVAL_O LIKE BSID-DMBTR,

VAL_O LIKE BSID-DMBTR,

FVAL LIKE BSID-DMBTR,

FVAL_O LIKE BSID-DMBTR,

FINAL_OP LIKE BSID-DMBTR,

FINAL_CLO LIKE BSID-DMBTR,

DATE_O LIKE BKPF-BUDAT,

VBELN LIKE VBAK-VBELN,

BEZEI LIKE TVAUT-BEZEI,

WNAME1 LIKE KNA1-NAME1,

LOVE LIKE BSID-DMBTR,

CITY LIKE KNA1-ORT01,

KUNN2 LIKE KNA1-KUNNR.

.

DATA : EYEAR LIKE BKPF-GJAHR,DEL LIKE SY-SUBRC..

*CONSTANTS : C_F VALUE 'F'.

DATA : PAGENO LIKE SY-PAGNO.

AT SELECTION-SCREEN ON S_DATE.

IF S_DATE-LOW IS INITIAL.

MESSAGE E002(Z2) WITH 'Please Enter Posting Start Date'.

ENDIF.

IF S_DATE-HIGH IS INITIAL.

MESSAGE E002(Z2) WITH 'Please Enter Posting End Date'.

ENDIF.

AT SELECTION-SCREEN ON P_BUKRS.

SELECT SINGLE BUKRS FROM T001 INTO T001 WHERE

BUKRS = P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE E038(ZI) WITH P_BUKRS.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF CHECK1 = 'X'.

IF SCREEN-GROUP1 = 'RE' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'AM' OR SCREEN-GROUP1 = 'RM'.

SCREEN-INPUT = 0.

ENDIF.

IF SCREEN-GROUP1 = 'CU'.

FREE: KUNNRM, REGIO, KUNNAM, KUNNSO .

SCREEN-INPUT = 1.

ENDIF.

ELSEIF CHECK5 = 'X'.

IF SCREEN-GROUP1 = 'CU' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'AM' OR SCREEN-GROUP1 = 'RM'.

SCREEN-INPUT = 0.

ENDIF.

IF SCREEN-GROUP1 = 'RE'.

FREE: KUNNRM, S_KUNNR, KUNNAM, KUNNSO .

SCREEN-INPUT = 1.

ENDIF.

ELSEIF CHECK3 = 'X'.

IF SCREEN-GROUP1 = 'RE' OR SCREEN-GROUP1 = 'CU' OR SCREEN-GROUP1 = 'AM' OR SCREEN-GROUP1 = 'RM'..

SCREEN-INPUT = 0.

ENDIF.

IF SCREEN-GROUP1 = 'SO'.

FREE: S_KUNNR , REGIO , KUNNAM , KUNNRM .

SCREEN-INPUT = 1.

ENDIF.

ELSEIF CHECK4 = 'X'.

IF SCREEN-GROUP1 = 'RE' OR SCREEN-GROUP1 = 'CU' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'RM'..

SCREEN-INPUT = 0.

ENDIF.

IF SCREEN-GROUP1 = 'AM'.

FREE: S_KUNNR , REGIO , KUNNRM , KUNNSO .

SCREEN-INPUT = 1.

ENDIF.

ELSEIF CHECK2 = 'X'.

IF SCREEN-GROUP1 = 'RE' OR SCREEN-GROUP1 = 'CU' OR SCREEN-GROUP1 = 'SO' OR SCREEN-GROUP1 = 'AM'..

SCREEN-INPUT = 0.

ENDIF.

IF SCREEN-GROUP1 = 'RM'.

FREE: S_KUNNR , REGIO , KUNNAM , KUNNSO .

SCREEN-INPUT = 1.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

*******************SEARCH HELP ON SALE OFFICER*****************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNSO-LOW.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON A~KUNNR = B~KUNN2

WHERE

  • B~KUNN2 IN KUNNSO

  • AND

PARVW = 'ZA'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNSO'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNSO-HIGH.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE

  • B~KUNN2 IN KUNNSO

  • AND

PARVW = 'ZA'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNSO'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

*******************SEARCH HELP ON AREA MANAGER*****************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNAM-LOW.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON A~KUNNR = B~KUNN2

WHERE

PARVW = 'ZB'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNAM'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNAM-HIGH.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE

PARVW = 'ZB'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNAM'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

*******************SEARCH HELP ON REGIONAL MANAGER*****************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNRM-LOW.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON A~KUNNR = B~KUNN2

WHERE

PARVW = 'ZC'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNRM'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR KUNNRM-HIGH.

FREE KUNNSO_ITAB.

SELECT * INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE

PARVW = 'ZC'.

DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'KUNN2'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'KUNNAM'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = KUNNSO_ITAB.

IF SY-SUBRC <> 0.

ENDIF.

INITIALIZATION.

DATA : YEAR TYPE GJAHR,

YEAR1 TYPE GJAHR.

CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'

EXPORTING

I_BUKRS = 'CP01'

I_BUDAT = SY-DATUM

IMPORTING

E_GJAHR = YEAR.

CONCATENATE YEAR '04' '01' INTO S_DATE-LOW.

S_DATE-HIGH = SY-DATUM.

  • S_DATE-SIGN = 'I'.

  • S_DATE-OPTION = 'BT'.

APPEND S_DATE.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM OUTPUT.

END-OF-SELECTION.

&----


*& Form GET_DATA

&----


  • text

----


FORM GET_DATA .

IF CHECK1 = 'X'.

SELECT KUNNR INTO CORRESPONDING FIELDS OF TABLE CUSTOMER

FROM KNA1 WHERE KUNNR IN S_KUNNR.

CLEAR DEL.

DEL = SY-SUBRC .

DELETE ADJACENT DUPLICATES FROM CUSTOMER.

IF DEL = 0.

LOOP AT CUSTOMER.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMESO FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMEAM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZB'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMERM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZC'.

MODIFY CUSTOMER INDEX SY-TABIX.

CLEAR CUSTOMER.

ENDLOOP.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BSHKZG BDMBTR INTO CORRESPONDING FIELDS OF TABLE ITABO_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR IN S_KUNNR .

SELECT ABELNR ABUDAT AGJAHR BKUNNR BSHKZG BDMBTR INTO CORRESPONDING FIELDS OF TABLE ITABO_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR

AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR IN S_KUNNR .

LOOP AT CUSTOMER.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

  • AND B~KUNNR IN S_KUNNR.

AND B~KUNNR = CUSTOMER-KUNNR.

ITAB_BSID-NAMESO = CUSTOMER-NAMESO.

ITAB_BSID-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSID-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSID.

CLEAR ITAB_BSID.

ENDSELECT.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

  • AND B~KUNNR IN S_KUNNR.

AND B~KUNNR = CUSTOMER-KUNNR.

ITAB_BSAD-NAMESO = CUSTOMER-NAMESO.

ITAB_BSAD-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSAD-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSAD.

CLEAR ITAB_BSAD.

ENDSELECT.

ENDLOOP.

ENDIF.

ELSEIF CHECK5 = 'X'.

FREE CUSTOMER.

  • SELECT * INTO CORRESPONDING FIELDS OF TABLE CUSTOMER

  • FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

  • WHERE A~REGIO IN REGIO.

SELECT KUNNR INTO CORRESPONDING FIELDS OF TABLE CUSTOMER FROM KNA1 WHERE REGIO IN REGIO.

CLEAR DEL.

DEL = SY-SUBRC .

DELETE ADJACENT DUPLICATES FROM CUSTOMER.

IF DEL = 0.

LOOP AT CUSTOMER.

  • SELECT SINGLE ANAME1 BKUNNR INTO (IT_NAME-NAMESO, IT_NAME-KUNNR) FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

  • WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMESO FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMEAM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZB'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMERM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZC'.

MODIFY CUSTOMER INDEX SY-TABIX.

CLEAR CUSTOMER.

ENDLOOP.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

LOOP AT CUSTOMER.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSID-NAMESO = CUSTOMER-NAMESO.

ITAB_BSID-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSID-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSID.

CLEAR ITAB_BSID.

ENDSELECT.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSAD-NAMESO = CUSTOMER-NAMESO.

ITAB_BSAD-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSAD-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSAD.

CLEAR ITAB_BSAD.

ENDSELECT.

ENDLOOP.

ENDIF.

ELSEIF CHECK3 = 'X'.

SELECT ANAME1 BKUNNR B~KUNN2 INTO CORRESPONDING FIELDS OF TABLE CUSTOMER

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE B~KUNN2 IN KUNNSO

AND B~PARVW = 'ZA'.

CLEAR DEL.

DEL = SY-SUBRC .

SORT CUSTOMER BY KUNNR.

DELETE ADJACENT DUPLICATES FROM CUSTOMER.

IF DEL = 0.

CLEAR CUSTOMER.

LOOP AT CUSTOMER.

  • SELECT SINGLE ANAME1 BKUNNR INTO (IT_NAME-NAMESO, IT_NAME-KUNNR) FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

  • WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMESO FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMEAM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZB'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMERM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZC'.

MODIFY CUSTOMER INDEX SY-TABIX.

CLEAR CUSTOMER.

ENDLOOP.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

LOOP AT CUSTOMER.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSID-NAMESO = CUSTOMER-NAMESO.

ITAB_BSID-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSID-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSID.

CLEAR ITAB_BSID.

ENDSELECT.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSAD-NAMESO = CUSTOMER-NAMESO.

ITAB_BSAD-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSAD-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSAD.

CLEAR ITAB_BSAD.

ENDSELECT.

ENDLOOP.

ENDIF.

ELSEIF CHECK4 = 'X'.

SELECT ANAME1 BKUNNR B~KUNN2 INTO CORRESPONDING FIELDS OF TABLE CUSTOMER

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE B~KUNN2 IN KUNNAM

AND B~PARVW = 'ZB'.

CLEAR DEL.

DEL = SY-SUBRC .

SORT CUSTOMER BY KUNNR.

DELETE ADJACENT DUPLICATES FROM CUSTOMER.

IF DEL = 0.

CLEAR CUSTOMER.

LOOP AT CUSTOMER.

  • SELECT SINGLE ANAME1 BKUNNR INTO (IT_NAME-NAMESO, IT_NAME-KUNNR) FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

  • WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMESO FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMEAM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZB'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMERM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZC'.

MODIFY CUSTOMER INDEX SY-TABIX.

CLEAR CUSTOMER.

ENDLOOP.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

LOOP AT CUSTOMER.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSID-NAMESO = CUSTOMER-NAMESO.

ITAB_BSID-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSID-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSID.

CLEAR ITAB_BSID.

ENDSELECT.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSAD-NAMESO = CUSTOMER-NAMESO.

ITAB_BSAD-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSAD-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSAD.

CLEAR ITAB_BSAD.

ENDSELECT.

ENDLOOP.

ENDIF.

ELSEIF CHECK2 = 'X'.

SELECT ANAME1 BKUNNR B~KUNN2 INTO CORRESPONDING FIELDS OF TABLE CUSTOMER

FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

WHERE B~KUNN2 IN KUNNRM

AND B~PARVW = 'ZC'.

CLEAR DEL.

DEL = SY-SUBRC .

SORT CUSTOMER BY KUNNR.

DELETE ADJACENT DUPLICATES FROM CUSTOMER.

IF DEL = 0.

CLEAR CUSTOMER.

LOOP AT CUSTOMER.

  • SELECT SINGLE ANAME1 BKUNNR INTO (IT_NAME-NAMESO, IT_NAME-KUNNR) FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = BKUNN2

  • WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMESO FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZA'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMEAM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BPARVW = 'ZB'.

SELECT SINGLE ANAME1 INTO CUSTOMER-NAMERM FROM KNA1 AS A INNER JOIN KNVP AS B ON AKUNNR = B~KUNN2

WHERE BKUNNR = CUSTOMER-KUNNR AND BKUNN2 = CUSTOMER-KUNN2 AND B~PARVW = 'ZC'.

MODIFY CUSTOMER INDEX SY-TABIX.

CLEAR CUSTOMER.

ENDLOOP.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BBLDAT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF TABLE ITABO_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT < S_DATE-LOW

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

LOOP AT CUSTOMER.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSID

FROM BKPF AS A INNER JOIN BSID AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSID-NAMESO = CUSTOMER-NAMESO.

ITAB_BSID-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSID-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSID.

CLEAR ITAB_BSID.

ENDSELECT.

SELECT ABELNR ABUDAT AGJAHR BKUNNR BBUZEI BSHKZG BSGTXT BZFBDT BZUONR BDMBTR BPSWSL BZTERM B~VBELN

INTO CORRESPONDING FIELDS OF ITAB_BSAD

FROM BKPF AS A INNER JOIN BSAD AS B ON ABELNR = BBELNR AND AGJAHR EQ BGJAHR

AND AMANDT = BMANDT AND ABUKRS = BBUKRS

  • FOR ALL ENTRIES IN CUSTOMER

WHERE A~BUDAT IN S_DATE

AND A~BUKRS EQ P_BUKRS

AND ( BUMSKZ EQ SPACE OR BUMSKZ EQ 'A')

AND B~ZUMSK EQ SPACE

AND B~KUNNR EQ CUSTOMER-KUNNR.

ITAB_BSAD-NAMESO = CUSTOMER-NAMESO.

ITAB_BSAD-NAMEAM = CUSTOMER-NAMEAM.

ITAB_BSAD-NAMERM = CUSTOMER-NAMERM.

APPEND ITAB_BSAD.

CLEAR ITAB_BSAD.

ENDSELECT.

ENDLOOP.

ENDIF.

ENDIF.

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

LOOP AT ITABO_BSID.

MOVE-CORRESPONDING ITABO_BSID TO ITABO.

APPEND ITABO.

ENDLOOP.

LOOP AT ITABO_BSAD.

MOVE-CORRESPONDING ITABO_BSAD TO ITABO.

APPEND ITABO.

ENDLOOP.

SORT ITABO BY BELNR.

LOOP AT ITABO.

IF ITABO-SHKZG = 'H'.

ITABO-S_DMBTR = ITABO-DMBTR.

ELSE.

ITABO-D_DMBTR = ITABO-DMBTR.

ENDIF.

MODIFY ITABO INDEX SY-TABIX.

CLEAR ITABO.

ENDLOOP.

LOOP AT ITAB_BSID.

MOVE-CORRESPONDING ITAB_BSID TO ITAB.

APPEND ITAB.

ENDLOOP.

LOOP AT ITAB_BSAD.

MOVE-CORRESPONDING ITAB_BSAD TO ITAB.

APPEND ITAB.

ENDLOOP.

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

SORT ITABO BY KUNNR .

LOOP AT ITABO.

TOTAL_FO = TOTAL_FO + ( ITABO-D_DMBTR - ITABO-S_DMBTR ).

MOVE-CORRESPONDING ITABO TO ITABF.

MOVE TOTAL_FO TO ITABF-D_DMBTR.

AT END OF KUNNR.

APPEND ITABF.

CLEAR TOTAL_FO.

ENDAT.

CLEAR ITABO.

ENDLOOP.

REFRESH ITABO.

CLEAR TOTAL_FO.

LOOP AT ITAB.

IF ITAB-SHKZG = C_H.

ITAB-DMBTR = 0 - ITAB-DMBTR .

ENDIF.

MODIFY ITAB.

ENDLOOP.

SORT ITAB BY KUNNR BELNR.

LOOP AT ITAB.

TOTAL_FO = TOTAL_FO + ITAB-DMBTR.

MOVE-CORRESPONDING ITAB TO FC.

MOVE TOTAL_FO TO FC-DMBTR.

AT END OF BELNR.

APPEND FC.

CLEAR TOTAL_FO.

ENDAT.

CLEAR ITAB.

ENDLOOP.

REFRESH ITAB.

LOOP AT FC.

MOVE-CORRESPONDING FC TO ITAB.

APPEND ITAB.

CLEAR FC.

ENDLOOP..

REFRESH FC.

LOOP AT ITAB.

IF ITAB-DMBTR < 0.

ITAB-S_DMBTR = ITAB-DMBTR * -1.

ELSE.

ITAB-D_DMBTR = ITAB-DMBTR.

ENDIF.

MODIFY ITAB INDEX SY-TABIX.

ENDLOOP.

DELETE ITAB WHERE S_DMBTR = 0 AND D_DMBTR = 0.

SORT CUSTOMER BY KUNNR .

SORT ITAB BY BUDAT.

LOOP AT CUSTOMER.

READ TABLE ITABF WITH KEY KUNNR = CUSTOMER-KUNNR.

IF SY-SUBRC = 0.

LOVE = ITABF-D_DMBTR.

ELSE.

CLEAR ITABF.

ENDIF.

SELECT SINGLE NAME1 ORT01 FROM KNA1 INTO (WNAME1, CITY) WHERE KUNNR = CUSTOMER-KUNNR.

LOOP AT ITAB WHERE KUNNR = CUSTOMER-KUNNR.

MOVE-CORRESPONDING ITAB TO FINAL.

TOTAL_FO = TOTAL_FO + ITAB-S_DMBTR .

FINAL_CLO = FINAL_CLO + ITAB-D_DMBTR .

CLBAL = FINAL_CLO - TOTAL_FO + ITABF-D_DMBTR.

ENDLOOP.

IF SY-SUBRC NE 0.

CLBAL = ITABF-D_DMBTR.

MOVE ITABF-D_DMBTR TO FINAL-OPEN.

ENDIF.

MOVE CUSTOMER-KUNNR TO FINAL-KUNNR.

MOVE WNAME1 TO FINAL-NAME .

MOVE CITY TO FINAL-ORT01 .

MOVE LOVE TO FINAL-OPEN.

MOVE TOTAL_FO TO FINAL-CREDIT.

MOVE FINAL_CLO TO FINAL-DEBIT.

MOVE CLBAL TO FINAL-AMOUNT.

IF CLBAL > 0.

FINAL-CR_DR = 'DR'.

ELSE.

FINAL-CR_DR = 'CR'.

ENDIF.

AT END OF KUNNR.

  • FORMAT COLOR 1 ON.

  • WRITE :/ SY-VLINE,035 ' CLOSING BALANCE AS ON' , S_DATE-HIGH,141 CLBAL,SY-VLINE, (5) DR_CR,166 SY-VLINE.

  • FORMAT COLOR OFF.

  • WRITE :/001(170) SY-ULINE.

  • WRITE : /120 'Page No = ' , PAGENO .

IF FINAL-CREDIT NE '0.00' OR FINAL-DEBIT NE '0.00' OR FINAL-OPEN NE '0.00'.

IF FINAL-AMOUNT < 0.

FINAL-AMOUNT = FINAL-AMOUNT * -1.

ENDIF.

IF FINAL-OPEN < 0.

FINAL-CR_DR1 = 'CR'.

FINAL-OPEN = FINAL-OPEN * -1.

ELSE.

FINAL-CR_DR1 = 'DR'.

ENDIF.

APPEND FINAL.

ENDIF.

CLEAR : CLBAL , FINAL_CLO ,FINAL_OP ,TOTAL_FO , PAGENO , ITABF ,LOVE.

ENDAT.

ENDLOOP.

ENDFORM. "GET_DATA

  • PERFORM OUTPUT.

&----


*& Form OUTPUT

&----


  • text

----


FORM OUTPUT .

WA_FCAT-FIELDNAME = 'KUNNR'.

WA_FCAT-SELTEXT_M = 'CUSTOMER'.

WA_FCAT-COL_POS = 1.

WA_FCAT-OUTPUTLEN = 10.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NAME'.

WA_FCAT-SELTEXT_M = 'CUSTOMER NAME'.

WA_FCAT-COL_POS = 2.

WA_FCAT-OUTPUTLEN = 30.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'ORT01'.

WA_FCAT-SELTEXT_M = 'CITY'.

WA_FCAT-COL_POS = 3.

WA_FCAT-OUTPUTLEN = 15.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'OPEN'.

WA_FCAT-SELTEXT_M = 'OPENING BALANCE'.

WA_FCAT-COL_POS = 4.

WA_FCAT-OUTPUTLEN = 15.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'CR_DR1'.

WA_FCAT-SELTEXT_M = 'CR/DR'.

WA_FCAT-COL_POS = 5.

WA_FCAT-OUTPUTLEN = 6.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'CREDIT'.

WA_FCAT-SELTEXT_M = 'CREDIT AMOUNT'.

WA_FCAT-COL_POS = 6.

WA_FCAT-OUTPUTLEN = 16.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'DEBIT'.

WA_FCAT-SELTEXT_M = 'DEBIT AMOUNT'.

WA_FCAT-COL_POS = 7.

WA_FCAT-OUTPUTLEN = 16.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'AMOUNT'.

WA_FCAT-SELTEXT_M = 'TOTAL AMOUNT'.

WA_FCAT-COL_POS = 8.

WA_FCAT-OUTPUTLEN = 16.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'CR_DR'.

WA_FCAT-SELTEXT_M = 'CR/DR'.

WA_FCAT-COL_POS = 9.

WA_FCAT-OUTPUTLEN = 6.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NAMESO'.

WA_FCAT-SELTEXT_M = 'SALES OFFICER'.

WA_FCAT-COL_POS = 10.

WA_FCAT-OUTPUTLEN = 30.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NAMEAM'.

WA_FCAT-SELTEXT_M = 'AREA MANAGER'.

WA_FCAT-COL_POS = 11.

WA_FCAT-OUTPUTLEN = 30.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'NAMERM'.

WA_FCAT-SELTEXT_M = 'REGIONAL MANAGER'.

WA_FCAT-COL_POS = 12.

WA_FCAT-OUTPUTLEN = 30.

APPEND WA_FCAT TO IT_FCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZCUSTOMER_BAL'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = IT_FCAT

I_DEFAULT = 'X'

I_SAVE = 'X'

  • IS_VARIANT = SY-REPID

TABLES

T_OUTTAB = FINAL[].

FREE ITAB.

APPEND WA_FCAT TO IT_FCAT.

ENDFORM.

&----


*& Form TOP-OF-PAGE

&----


  • For Top of page

----


FORM TOP_OF_PAGE. "#EC CALLED

WBUKRS = P_BUKRS.

*ALV Header declarations

data: t_header type slis_t_listheader,

wa_header type slis_listheader,

t_line like wa_header-info,

ld_lines type i,

ld_linesc(10) type c.

  • Title

IF WBUKRS = 'CP01' .

wa_header-typ = 'H'.

wa_header-info = 'C R Y S T A L P H O S P H A T E S L T D .'.

append wa_header to t_header.

clear wa_header.

ELSEIF WBUKRS = 'JB01' .

wa_header-typ = 'H'.

wa_header-info = 'J A I B H A R A T C R O P C H E M P V T L T D .'.

append wa_header to t_header.

clear wa_header.

ENDIF.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'FROM: '.

CONCATENATE S_DATE-LOW+6(2) '.'

S_DATE-LOW+4(2) '.'

S_DATE-LOW(4) ' ' ' TO: ' S_DATE-HIGH6(2) '.' S_DATE-HIGH4(2) '.' S_DATE-HIGH(4)

INTO wa_header-info. "DATE

append wa_header to t_header.

clear: wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Printed on: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) ' ' ' Time: ' Sy-uzeit(2) ':' Sy-uzeit2(2) ':' Sy-uzeit4(2)

INTO wa_header-info. "DATE

append wa_header to t_header.

clear: wa_header.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = t_header.

  • i_logo = 'Z_LOGO'.

ENDFORM.

" OUTPUT

regards,

raman