Escolar Documentos
Profissional Documentos
Cultura Documentos
* * * * *
* PROGRAM
: ZSPT_JO_REAL_TIME2
*
*
* AUTHOR
: SPRAO
*
* PURPOSE
: TO IDENTIFY THE CUSTOMER AGING OF ACCOUNT RECEIVABLE
*
*
BASED ON BASE LINE DATE
*
* START DATE : 21/08/2014
*
* FINISH DATE : 26/08/2014
*
* PACKAGE
:
*
* REQUEST NO :
*
* TCODE
:
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * *
REPORT ZSPT_JO_REAL_TIME2.
*DECLARING THE VARIABLES,TABLES AND TYPE-POOLS
TABLES BSID.
TYPE-POOLS SLIS.
DATA V_DAYS TYPE I.
DATA V_CPOS TYPE I.
*DECLARE ALL THE TYPES
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.
PARAMETER PR_BUDAT TYPE BSID-BUDAT DEFAULT SY-DATUM OBLIGATORY.
SELECT-OPTIONS : SO_BUKRS FOR BSID-BUKRS,
SO_KUNNR FOR BSID-KUNNR,
SO_HKONT FOR BSID-HKONT.
SELECTION-SCREEN END OF BLOCK A.
DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT LIKE LINE OF IT_FCAT.
DATA WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
TYPES : BEGIN OF TY_FINAL1,
KUNNR TYPE BSID-KUNNR,
NAME1 TYPE KNA1-NAME1,
NAME2 TYPE KNA1-NAME2,
BUKRS TYPE BSID-BUKRS,
AKONT TYPE KNB1-AKONT,
RDES TYPE SKAT-TXT50,
UMSKZ TYPE BSID-UMSKZ,
NYD TYPE BSID-DMBTR,
AGE30 TYPE BSID-DMBTR,
AGE60 TYPE BSID-DMBTR,
AGE90 TYPE BSID-DMBTR,
AGE120 TYPE BSID-DMBTR,
GET_INITIAL_DAT.
FILL_FINAL_TABLE.
FILL_FIELDCATALOG.
FILL_LAYOUT.
DISPLAY_OUTPUT.
FORM GET_INITIAL_DAT .
SELECT BUKRS KUNNR UMSKZ BELNR BUZEI BUDAT SHKZG DMBTR HKONT ZFBDT FROM BSID INT
O
TABLE IT_BSID WHERE BUDAT <= PR_BUDAT
AND BUKRS IN SO_BUKRS
AND KUNNR IN SO_KUNNR
AND HKONT IN SO_HKONT.
IF NOT IT_BSID IS INITIAL.
SELECT KUNNR NAME1 NAME2 FROM KNA1 INTO TABLE IT_KNA1 FOR ALL ENTRIES IN
IT_BSID WHERE KUNNR = IT_BSID-KUNNR.
SELECT KUNNR BUKRS AKONT FROM KNB1 INTO TABLE IT_KNB1 FOR ALL ENTRIES IN
IT_BSID WHERE KUNNR = IT_BSID-KUNNR AND BUKRS = IT_BSID-BUKRS.
SELECT SAKNR TXT50 FROM SKAT INTO TABLE IT_SKAT FOR ALL ENTRIES IN
IT_BSID WHERE SAKNR = IT_BSID-HKONT.
ENDIF.
IF NOT IT_KNB1 IS INITIAL.
SELECT SAKNR TXT50 FROM SKAT INTO TABLE IT_SKAT1 FOR ALL ENTRIES IN
IT_KNB1 WHERE SAKNR = IT_KNB1-AKONT.
ENDIF.
ENDFORM.
FORM FILL_FINAL_TABLE.
BUKRS = WA_FINAL-BUKRS.
IF SY-SUBRC = 0.
WA_FINAL1-AKONT = WA_KNB1-AKONT.
READ TABLE IT_SKAT1 INTO WA_SKAT1 WITH KEY SAKNR = WA_KNB1-AKONT.
IF SY-SUBRC = 0.
WA_FINAL1-RDES = WA_SKAT-TXT50.
ENDIF.
ENDIF.
READ TABLE IT_SKAT INTO WA_SKAT WITH KEY SAKNR = WA_FINAL-HKONT.
IF SY-SUBRC = 0.
WA_FINAL1-RDES = WA_SKAT-TXT50.
READ TABLE IT_BSID INTO WA_BSID WITH KEY BUKRS = WA_FINAL-BUKRS
KUNNR = WA_FINAL-KUNNR
HKONT = WA_FINAL-HKONT.
IF SY-SUBRC = 0.
WA_FINAL1-UMSKZ = WA_BSID-UMSKZ.
ENDIF.
ENDIF.
WA_FINAL1-TOTAL = WA_FINAL-NYD + WA_FINAL-AGE30 + WA_FINAL-AGE60 + WA_FINAL-AGE9
0 +
WA_FINAL-AGE120 + WA_FINAL-AGE180 + WA_FINAL-AGE365 + WA_FINAL
-AGE2Y +
WA_FINAL-AGE3Y + WA_FINAL-AGE3YA.
APPEND WA_FINAL1 TO IT_FINAL1.
CLEAR WA_FINAL1.
ENDLOOP.
ENDFORM.
FORM FILL_FIELDCATALOG.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'KUNNR'.
V_CPOS.
= 'CUSTOMER'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'NAME1'.
V_CPOS.
= 'NAME1'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'NAME2'.
V_CPOS.
= 'NAME2'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
1.
= 'BUKRS'.
V_CPOS.
= 'COMPANY CODE'.
1.
= 'AKONT'.
V_CPOS.
= 'RECON'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'RDES'.
V_CPOS.
= 'RECON DES'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'HKONT'.
V_CPOS.
= 'G/L ACCOUNT'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'TXT50'.
V_CPOS.
= 'G/L LONG DES'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'UMSKZ'.
V_CPOS.
= 'SPECIAL G/L IND'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'DMBTR'.
V_CPOS.
= 'NOT YET DUE'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE30'.
V_CPOS.
= '0-30ds'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE60'.
V_CPOS.
= '31-60ds'.
IT_FCAT.
V_CPOS = V_CPOS + 1.
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
= 'AGE90'.
V_CPOS.
= '61-90ds'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE120'.
V_CPOS.
= '91-120ds'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE180'.
V_CPOS.
= '121-180ds'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE365'.
V_CPOS.
= '181-365ds'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE2Y'.
V_CPOS.
= '>1Y<2Y'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE3Y'.
V_CPOS.
= '>2Y<3Y'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'AGE3YA'.
V_CPOS.
= '>3Y'.
IT_FCAT.
V_CPOS = V_CPOS +
WA_FCAT-FIELDNAME
WA_FCAT-COL_POS =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT.
1.
= 'TOTAL'.
V_CPOS.
= 'TOTAL'.
IT_FCAT.
ENDFORM.
FORM FILL_LAYOUT.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM.
FORM DISPLAY_OUTPUT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
= SY-CPROG
IS_LAYOUT
= WA_LAYOUT
IT_FIELDCAT
= IT_FCAT
I_SAVE
= 'X'
TABLES
T_OUTTAB
= IT_FINAL1.
ENDFORM.