Upload
vikash-jha
View
400
Download
13
Embed Size (px)
Citation preview
*--------------------------------------------------------------------** Program Name : ZFIRCAR_0130 ** Title : Accounts with Active Instalment Plan and ** redit on Account ** Object ID : 0103 ** Author : Najmunnisa Khan ** Date : 9/1/2010 ** Business Cont : CEA ERP-FI Functional Team **--------------------------------------------------------------------** Program Purpose : <Program Description> **--------------------------------------------------------------------** Input : Goto Transaction - Z013003 and input ** : respective values on the Selection Screen ** Output : Report showing data processed and result ** Return Codes : N/A **--------------------------------------------------------------------** Misc. Notes : N/A **--------------------------------------------------------------------** Modification History ** ** 1) Request # : ** Developer : ** Date : ** Description : **--------------------------------------------------------------------*
REPORT zfircar_0130 NO STANDARD PAGE HEADING LINE-COUNT 65 LINE-SIZE 132.
*********************************************************************** DATA TYPES DECLARATION**********************************************************************TYPES : BEGIN OF TY_S_FKK_INSTPLN_HEAD, "Header Data for Installment Plan VKONT TYPE VKONT_KK, "Contract Account Number RPNUM TYPE RPBEL_KK, "Installment Plan Number GPART TYPE GPART_KK, "Business Partner Number
END OF TY_S_FKK_INSTPLN_HEAD, TY_T_FKK_INSTPLN_HEAD TYPE STANDARD TABLE OF TY_S_FKK_INSTPLN_HEAD,
BEGIN OF TY_S_BUT000, PARTNER TYPE BU_PARTNER, "Business Partner Number TYPE TYPE BU_TYPE, "Business partner category NAME_FIRST TYPE BU_NAMEP_F, "First name of business partner (person) NAME_LST2 TYPE BU_NAMEPL2, "Other Last Name of a Person LEGAL_ENTY TYPE BU_LEGENTY, "BP: Legal form of organization END OF TY_S_BUT000, TY_T_BUT000 TYPE STANDARD TABLE OF TY_S_BUT000,
BEGIN OF TY_S_ADRC, STREETCODE TYPE AD_STRNUM, "Street Number for City/Street File CITY1 TYPE AD_CITY1, "City POST_CODE1 TYPE AD_PSTCD1, "City postal code END OF TY_S_ADRC , TY_T_ADRC TYPE STANDARD TABLE OF TY_S_ADRC,
BEGIN OF TY_S_DFKKOP, OPBEL TYPE OPBEL_KK, "Number of Contract Accts Rec. & Payable Doc. BETRW TYPE BETRW_KK, "Amount in Transaction Currency with +/- Sign END OF TY_S_DFKKOP, TY_T_DFKKOP TYPE STANDARD TABLE OF TY_S_DFKKOP,
*--- Final structure for data BEGIN OF TY_S_FINAL , VKONT TYPE VKONT_KK, " Contract Account Number CUSTOMER_NAME TYPE CHAR80, " CUSTOMER NAME SERVICE_ADDRESS TYPE STRING, " SERVICE ADDRESS RPNUM TYPE RPBEL_KK, " INSTALLAMENT PLAN NUMBER TOT_INST_AMNT TYPE CHAR12, " TOTAL INSTALLEMENT AMOUNT
NINST TYPE NINST_KK, " TOTAL INSTALLEMENT NO_OF_PAID_INST TYPE NINST_KK, " TOTAL NUMBER OF PAID INSTALLEMENT TOT_NO_OPEN_INST TYPE NINST_KK, " TOTAL NUMBER OF OPEN INSTALLEMENT TOT_INST_OPEN_AMT TYPE CHAR12, " TOTAL INSTALLEMENT OPEN AMOUNT BETRW TYPE CHAR15, " TOTAL CREDIT AMOUNT TOT_DIFF TYPE CHAR10, " TOTAL DIFFERENCE ( OPEN BALANCE - CREDIT ) TOT_NO_ACC TYPE CHAR10, " TOTAL NO_ACC_WITH_ACTIVE_INST_PLAN_CREDIT_ON_ACC PER_DIFF TYPE i, " PER_DIFF END OF TY_S_FINAL, TY_T_FINAL TYPE STANDARD TABLE OF TY_S_FINAL, BEGIN OF TY_S_VKONT, VKONT TYPE VKONT_KK , END OF TY_S_VKONT, TY_T_VKONT TYPE STANDARD TABLE OF TY_S_VKONT,
BEGIN OF TY_S_RPNUM, RPNUM TYPE RPBEL_KK, END OF TY_S_RPNUM, TY_T_RPNUM TYPE STANDARD TABLE OF TY_S_RPNUM.
*********************************************************************** INTERNAL TABLE DECLARATION**********************************************************************DATA : GT_FKK_INSTPLN_HEAD TYPE TY_T_FKK_INSTPLN_HEAD, GT_BUT000 TYPE TY_T_BUT000, GT_ADRC TYPE TY_T_ADRC, GT_DFKKOP TYPE TY_T_DFKKOP, GT_FIELDCAT TYPE LVC_T_FCAT, GT_FINAL TYPE TY_T_FINAL, GT_VKONT TYPE TY_T_VKONT, GT_RPNUM TYPE TY_T_RPNUM.*********************************************************************** WORK AREA DECLARATION**********************************************************************DATA : GS_FKK_INSTPLN_HEAD TYPE TY_S_FKK_INSTPLN_HEAD, GS_BUT000 TYPE TY_S_BUT000,
GS_ADRC TYPE TY_S_ADRC, GS_DFKKOP TYPE TY_S_DFKKOP, GS_FINAL TYPE TY_S_FINAL, GS_PRINT TYPE LVC_S_PRNT, GS_FIELDCAT TYPE LVC_S_FCAT, GS_LAYOUT TYPE LVC_S_LAYO, GS_VARI TYPE DISVARIANT.
********************************************************************** VARIABLE DECLARATION**********************************************************************
DATA: GV_VKONT TYPE VKONT_KK, "Contract Account Number GV_RPNUM TYPE RPBEL_KK, "Installment plan number GV_HVORG TYPE HVORG_KK, "Main Transaction GV_BETRW TYPE BETRW_KK, "AMOUNT GV_AUGST TYPE AUGST_KK, "Clearing status GV_STRING TYPE i, GV_TRAN_600 TYPE HVORG_KK, " Main Transaction for Line Item GV_TRAN_060 TYPE HVORG_KK, " Main Transaction for Line Item GV_VALID TYPE CHAR1, GV_FLAG TYPE CHAR1, GV_DATA_CHANGE TYPE CHAR1, GV_LINES TYPE SY-TFILL.
*********************************************************************** CONSTANTS DECLARATION**********************************************************************CONSTANTS : GC_X TYPE CHAR1 VALUE 'X' , " Checked GC_SPACE TYPE CHAR1 VALUE SPACE, " Space GC_0060 TYPE HVORG_KK VALUE '0060', " Transaction 0060 GC_0600 TYPE HVORG_KK VALUE '0600', " Transaction 0600 GC_PER TYPE BU_TYPE VALUE '1', " BP Category for Person GC_CONTAINER TYPE SCRFNAME VALUE 'CC_ALV'," Custom Control Name GC_ALL TYPE CHAR1 VALUE 'A',
GC_SELOPT TYPE TEXTPOOL-KEY VALUE 'S'. " TEXT ELEMENT KEY
*********************************************************************** CLASS REFERENCE**********************************************************************DATA: GR_GRID TYPE REF TO CL_GUI_ALV_GRID, " Reference to Grid GR_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT, " Reference to document GR_DYNDOC_ID1 TYPE REF TO CL_DD_DOCUMENT, " Reference to document GR_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER," Reference to split container GR_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, " Container1 GR_PARENT_GRID TYPE REF TO CL_GUI_CONTAINER, " REFERENCE TO GRID CONTAINER GR_HTML_CNTRL TYPE REF TO CL_GUI_HTML_VIEWER, " REFERENCE TO HTML CONTAINER GR_HTML_CNTRL1 TYPE REF TO CL_GUI_HTML_VIEWER, " REFERENCE TO HTML CONTAINER GR_PARENT_HTML TYPE REF TO CL_GUI_CONTAINER, " REFERENCE TO HTML CONTAINER GR_FOOTER_HTML TYPE REF TO CL_GUI_CONTAINER.
*********************************************************************** OTHER DECLARATION**********************************************************************DATA: OK_CODE LIKE SY-UCOMM, SAVE_OK LIKE SY-UCOMM.
*---------------------------------------------------------------------** CLASS lcl_event_handler DEFINITION*---------------------------------------------------------------------*CLASS LCL_EVENT_HANDLER DEFINITION. PUBLIC SECTION . METHODS:**HOT SPOT HANDLER HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,***DOUBLE CLICK HANDLER
*HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID* IMPORTING E_ROW E_COLUMN ES_ROW_NO,
TOP_OF_PAGE FOR EVENT TOP_OF_PAGE OF CL_GUI_ALV_GRID IMPORTING E_DYNDOC_ID,
END_OF_PAGE FOR EVENT END_OF_LIST OF CL_GUI_ALV_GRID IMPORTING E_DYNDOC_ID.ENDCLASS. "lcl_event_handler DEFINITION*---------------------------------------------------------------------** CLASS lcl_event_handler IMPLEMENTATION*---------------------------------------------------------------------*CLASS LCL_EVENT_HANDLER IMPLEMENTATION.*HANDLE HOTSPOT CLICK METHOD HANDLE_HOTSPOT_CLICK . PERFORM HOTSPOT_CLICK USING E_ROW_ID E_COLUMN_ID. ENDMETHOD. "HANDLE_HOTSPOT_CLICK "lcl_event_handler*Handle Double Click*METHOD HANDLE_DOUBLE_CLICK.*ENDMETHOD. "handle_double_click
METHOD TOP_OF_PAGE. "implementation* Top-of-page event PERFORM EVENT_TOP_OF_PAGE USING GR_DYNDOC_ID. ENDMETHOD. "top_of_page
METHOD END_OF_PAGE. "implementation* Top-of-page event PERFORM EVENT_END_OF_PAGE USING GR_DYNDOC_ID1. ENDMETHOD. "top_of_page
ENDCLASS. "LCL_EVENT_HANDLER IMPLEMENTATION
*&---------------------------------------------------------------------**& Global Definitions*&---------------------------------------------------------------------*DATA: GR_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler*********************************************************************** SELECTION SCREEN CREATION
**********************************************************************SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-027.*--- CONTRACT ACCOUNT NUMBERSELECT-OPTIONS : S_VKONT FOR GV_VKONT NO-EXTENSION OBLIGATORY,*--- Installment plan number in Contract A/R & A/P S_RPNUM FOR GV_RPNUM NO-EXTENSION OBLIGATORY.*--- Skip one line spaceSELECTION-SCREEN SKIP 1.*--- Transaction 0060PARAMETERS : CB_0060 AS CHECKBOX DEFAULT GC_X,*--- Transaction 0600 CB_0600 AS CHECKBOX.*--- Skip one line spaceSELECTION-SCREEN SKIP 1.*--- Amount in Transaction Currency with +/- SignPARAMETERS : P_BETRW TYPE BETRW_KK ,*--- Clearing status P_AUGST TYPE AUGST_KK .*--- Skip one line spaceSELECTION-SCREEN SKIP 1.*--- % Difference Balance / CreditSELECT-OPTIONS P_DIFF FOR GV_STRING NO-EXTENSION OBLIGATORY.SELECTION-SCREEN END OF BLOCK B1.*********************************************************************** END OF SELECTION SCREEN*********************************************************************** Initialization eventINITIALIZATION.PERFORM GET_DATA_FOR_VALIDATION.*************************************************************************To validate the selection screen *************************************************************************AT SELECTION-SCREEN. PERFORM VALIDATE-SELECTIONS.
*Start of selection eventSTART-OF-SELECTION.*fetch data into table and field characteristics PERFORM GET_DATA_FOR_ALV.*ALV display for output PERFORM ALV_OUTPUT.
*&---------------------------------------------------------------------**& Form GET_DATA_FOR_ALV*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM GET_DATA_FOR_ALV . PERFORM FETCH_DATA. " FETCH DATA FROM TRANSPARENT TABLE PERFORM TRANS_TO_FINAL. " TRANSFER FETCHED DATA TO FINAL INTERNAL TABLEENDFORM. " GET_DATA_FOR_ALV
*&---------------------------------------------------------------------**& FORM CREATE_AND_INIT_ALV*&---------------------------------------------------------------------** TEXT*----------------------------------------------------------------------*FORM CREATE_AND_INIT_ALV . DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
CREATE OBJECT GR_CUSTOM_CONTAINER EXPORTING CONTAINER_NAME = GC_CONTAINER. "this is for top of page* Create TOP-Document CREATE OBJECT GR_DYNDOC_ID EXPORTING STYLE = 'ALV_GRID'.
* Create TOP-Document CREATE OBJECT GR_DYNDOC_ID1 EXPORTING STYLE = 'ALV_GRID'.
*********************************************************************** TO SPLIT THE CONTAINER INTO DIFFERENT PARTS AND ASSIGNING THEN
* TO RESPECTABLE AREAS LIKE HEADER BODY AND FOOTER********************************************************************** PERFORM ALV_SPLIT_CONTAINER.
CREATE OBJECT GR_GRID EXPORTING I_PARENT = GR_PARENT_GRID.* Set a titlebar for THE GRID CONTROL PERFORM ALV_100_LAYOUT .
CALL METHOD GR_GRID->REGISTER_EDIT_EVENT EXPORTING I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
CREATE OBJECT GR_HANDLER. SET HANDLER GR_HANDLER->TOP_OF_PAGE FOR GR_GRID. SET HANDLER GR_HANDLER->END_OF_PAGE FOR GR_GRID. SET HANDLER GR_HANDLER->HANDLE_HOTSPOT_CLICK FOR GR_GRID.
* SETTING FOCUS FOR CREATED GRID CONTROL CALL METHOD CL_GUI_CONTROL=>SET_FOCUS EXPORTING CONTROL = GR_GRID.* BUILD FIELDCAT AND SET EDITABLE FOR DATE AND REASON CODE* EDIT ENABLED. ASSIGN A HANDLE FOR THE DROPDOWN LISTBOX. PERFORM BUILD_FIELDCAT. PERFORM PRINT_RESERVE. PERFORM VARIANT_SAVE.**CALLING THE METHOD FOR ALV OUTPUT
CALL METHOD GR_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING IT_TOOLBAR_EXCLUDING = LT_EXCLUDE IS_VARIANT = GS_VARI IS_LAYOUT = GS_LAYOUT IS_PRINT = GS_PRINT I_SAVE = 'A' CHANGING IT_OUTTAB = GT_FINAL[] IT_FIELDCATALOG = GT_FIELDCAT.
DESCRIBE TABLE GT_FINAL LINES GV_LINES. CALL METHOD GR_DYNDOC_ID->INITIALIZE_DOCUMENT.* Processing events CALL METHOD GR_GRID->LIST_PROCESSING_EVENTS
EXPORTING I_EVENT_NAME = 'TOP_OF_PAGE' I_DYNDOC_ID = GR_DYNDOC_ID. "TOP OF PAGE CALL METHOD GR_DYNDOC_ID->INITIALIZE_DOCUMENT. CALL METHOD GR_DYNDOC_ID1->INITIALIZE_DOCUMENT.
CALL METHOD GR_GRID->LIST_PROCESSING_EVENTS EXPORTING I_EVENT_NAME = 'END_OF_LIST' I_DYNDOC_ID = GR_DYNDOC_ID1. "END OF PAGE
ENDFORM. "CREATE_AND_INIT_ALV
*&---------------------------------------------------------------------**& Form FETCH_DATA*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FETCH_DATA . IF CB_0600 = GC_X. GV_TRAN_600 = GC_0600. ENDIF.
IF CB_0060 = GC_X. GV_TRAN_060 = GC_0060. ENDIF. "Selecting data from FKK_INSTPLN_HEAD Table SELECT VKONT "Contract Account Number RPNUM "Installment Plan Number GPART "Business Partner Number FROM FKK_INSTPLN_HEAD INTO TABLE GT_FKK_INSTPLN_HEAD WHERE VKONT IN S_VKONT AND RPNUM IN S_RPNUM.
IF SY-SUBRC = 0. "Fetching Data from BUT000 using For all entries on selection criteria Partner.Here we are fetching all the Category Types "Person/Organisation/Legal Entity SELECT PARTNER "Business Partner Number TYPE " Business partner category NAME_FIRST "First name of business partner (person) NAME_LST2 "Other Last Name of a Person LEGAL_ENTY "Legal Entity of Organization FROM BUT000 INTO TABLE GT_BUT000 FOR ALL ENTRIES IN GT_FKK_INSTPLN_HEAD WHERE PARTNER = GT_FKK_INSTPLN_HEAD-GPART.
IF SY-SUBRC = 0. SORT GT_BUT000 BY PARTNER. ENDIF.
"PERFORM FUNCTION_MODULE_GET_DETAIL USING LV_RPNUM. "Function Module to Fetch data
"Selecting data from the table DFKKOP with selection criteria from head table SELECT OPBEL "Number of Contract Accts Rec. & Payable Doc. BETRW "Amount in Transaction Currency with +/- Sign FROM DFKKOP INTO TABLE GT_DFKKOP FOR ALL ENTRIES IN GT_FKK_INSTPLN_HEAD WHERE OPBEL = GT_FKK_INSTPLN_HEAD-RPNUM AND ( HVORG = GV_TRAN_600 OR HVORG = GV_TRAN_060 ) AND BETRW = P_BETRW AND AUGST = P_AUGST.
IF SY-SUBRC EQ 0. SORT GT_DFKKOP BY OPBEL. ENDIF. ENDIF.
ENDFORM. " FETCH_DATA
*&---------------------------------------------------------------------**& Form TRANS_TO_FINAL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM TRANS_TO_FINAL . DATA : LT_ADDRESS TYPE STANDARD TABLE OF BUS020_EXT, LS_ADDRESS TYPE BUS020_EXT, LS_ATT TYPE FKK_INSTPL_ATTRIBUTES, LT_SKKOP TYPE STANDARD TABLE OF SFKKOP, LS_SKKOP TYPE SFKKOP.*--- TOTAL NO_ACC_WITH_ACTIVE_INST_PLAN_CREDIT_ON_ACC DESCRIBE TABLE GT_FKK_INSTPLN_HEAD LINES GS_FINAL-TOT_NO_ACC.
LOOP AT GT_FKK_INSTPLN_HEAD INTO GS_FKK_INSTPLN_HEAD.*--- Contract Account Number MOVE GS_FKK_INSTPLN_HEAD-VKONT TO GS_FINAL-VKONT.*--- INSTALLAMENT PLAN NUMBER MOVE GS_FKK_INSTPLN_HEAD-RPNUM TO GS_FINAL-RPNUM.
READ TABLE GT_BUT000 INTO GS_BUT000 WITH KEY PARTNER = GS_FKK_INSTPLN_HEAD-GPART BINARY SEARCH. IF SY-SUBRC EQ 0.*--- CUSTOMER NAME IF GS_BUT000-TYPE EQ GC_PER. " IF BP CATEGORY IS PERSON CONCATENATE GS_BUT000-NAME_FIRST GS_BUT000-NAME_LST2 INTO GS_FINAL-CUSTOMER_NAME SEPARATED BY SPACE. ELSE. " IF BP CATEGORY IS NOT PERSON MOVE GS_BUT000-LEGAL_ENTY TO GS_FINAL-CUSTOMER_NAME. ENDIF.
*********************************************************************** FUNCTION MODULE ISU_DB_PARTNER_SINGLE
***********************************************************************--- SERVICE ADDRESS CALL FUNCTION 'ISU_DB_PARTNER_SINGLE' EXPORTING X_PARTNER = GS_BUT000-PARTNER TABLES TY_ADDRESS = LT_ADDRESS EXCEPTIONS PARTNER_NOT_FOUND = 1 PARTNER_IN_ROLE_NOT_FOUND = 2 INTERNAL_ERROR = 3 OTHERS = 4. IF SY-SUBRC EQ 0. SORT LT_ADDRESS BY PARTNER. READ TABLE LT_ADDRESS INTO LS_ADDRESS WITH KEY PARTNER = GS_BUT000-PARTNER BINARY SEARCH. IF SY-SUBRC EQ 0. CONCATENATE LS_ADDRESS-STREETCODE LS_ADDRESS-STREET LS_ADDRESS-CITY1 LS_ADDRESS-POST_CODE1 INTO GS_FINAL-SERVICE_ADDRESS SEPARATED BY ', '. ENDIF. ENDIF.*********************************************************************** FUNCTION MODULE FKK_S_INSTPLAN_GETDETAIL**********************************************************************
CALL FUNCTION 'FKK_S_INSTPLAN_GETDETAIL' EXPORTING I_OPBEL = GS_FKK_INSTPLN_HEAD-RPNUM IMPORTING E_RFKN1_ATTRIBUTES = LS_ATT TABLES T_INSTPLAN_FKKOP = LT_SKKOP. IF SY-SUBRC EQ 0.*--- TOTAL INSTALLEMENT GS_FINAL-NINST = LS_ATT-NINST.*--Initializing the field GS_FINAL-NO_OF_PAID_INST = 0. GS_FINAL-TOT_NO_OPEN_INST = 0. LOOP AT LT_SKKOP INTO LS_SKKOP.*--- TOTAL INSTALLEMENT AMOUNT
GS_FINAL-TOT_INST_AMNT = GS_FINAL-TOT_INST_AMNT + LS_SKKOP-BETRW. IF LS_SKKOP-AUGST = '9'.*--- TOTAL NUMBER OF PAID INSTALLEMENT GS_FINAL-NO_OF_PAID_INST = GS_FINAL-NO_OF_PAID_INST + 1. ELSE.*--- TOTAL NUMBER OF OPEN INSTALLEMENT GS_FINAL-TOT_NO_OPEN_INST = GS_FINAL-TOT_NO_OPEN_INST + 1.*--- TOTAL INSTALLEMENT OPEN AMOUNT GS_FINAL-TOT_INST_OPEN_AMT = GS_FINAL-TOT_INST_OPEN_AMT + LS_SKKOP-BETRW.
ENDIF.
ENDLOOP.
ENDIF. ENDIF.
*--- TOTAL CREDIT AMOUNT READ TABLE GT_DFKKOP INTO GS_DFKKOP WITH KEY OPBEL = GS_FKK_INSTPLN_HEAD-RPNUM BINARY SEARCH. IF SY-SUBRC EQ 0. GS_FINAL-BETRW = GS_DFKKOP-BETRW. ENDIF.**--- TOTAL DIFFERENCE ( TOTAL INSTALLEMENT OPEN AMOUNT - TOTAL CREDIT AMOUNT ) GS_FINAL-TOT_DIFF = GS_FINAL-TOT_INST_OPEN_AMT - GS_FINAL-BETRW.
**-- % Difference Balance / Credit GS_FINAL-PER_DIFF = GS_FINAL-TOT_INST_OPEN_AMT / ( GS_FINAL-BETRW - 1 ).
*IF gs_final-per_diff > ( 10 / 100 ) and gs_final-per_diff < - ( 10 / 100 ).IF p_diff-low < GS_FINAL-PER_DIFF and p_diff-high > GS_FINAL-PER_DIFF.
APPEND GS_FINAL TO GT_FINAL.
endif.
*endif. CLEAR: GS_FINAL , GS_FKK_INSTPLN_HEAD,
LS_ADDRESS, GS_BUT000, GS_DFKKOP. ENDLOOP.ENDFORM. " TRANS_TO_FINAL
*&---------------------------------------------------------------------**& Form build_fieldcat*&---------------------------------------------------------------------** Fieldcatalog*----------------------------------------------------------------------*FORM BUILD_FIELDCAT . PERFORM FIELDCAT_CREATION USING 1 1 TEXT-002 TEXT-001 TEXT-003 15 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 2 TEXT-004 TEXT-001 TEXT-005 30 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 3 TEXT-006 TEXT-001 TEXT-007 40 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 4 TEXT-008 TEXT-001 TEXT-009 20 GC_X. PERFORM FIELDCAT_CREATION USING 1 5 TEXT-010 TEXT-001 TEXT-011 20 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 6 TEXT-012 TEXT-001 TEXT-013 19 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 7 TEXT-014 TEXT-001 TEXT-015 24 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 8 TEXT-016 TEXT-001 TEXT-017 24 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 9 TEXT-018 TEXT-001 TEXT-019 27 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 10 TEXT-020 TEXT-001 TEXT-021 18 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 11 TEXT-022 TEXT-001 TEXT-023 17 GC_SPACE. PERFORM FIELDCAT_CREATION USING 1 12 TEXT-025 TEXT-001 TEXT-026 26 GC_SPACE.ENDFORM. " build_fieldcat
*&---------------------------------------------------------------------**& Form FIELDCAT_CREATION*&--------------------------------------------------------------------
-** text*----------------------------------------------------------------------** LV_ROW_POS TYPE LVC_ROWPOS* LV_COL_POS TYPE LVC_COLPOS* LV_FILED_NAME TYPE LVC_FNAME* LV_TABLE_NAME TYPE LVC_TNAME* LV_DESCRIPTION TYPE LVC_TXTCOL* LV_SIZE TYPE LVC_OUTLEN* lv_HOTSPOT TYPE LVC_HOTSPT.*----------------------------------------------------------------------*FORM FIELDCAT_CREATION USING LV_ROW_POS TYPE LVC_ROWPOS LV_COL_POS TYPE LVC_COLPOS LV_FILED_NAME TYPE LVC_FNAME LV_TABLE_NAME TYPE ANY LV_DESCRIPTION TYPE LVC_TXTCOL LV_SIZE TYPE LVC_OUTLEN LV_HOTSPOT TYPE LVC_HOTSPT.
CLEAR GS_FIELDCAT. GS_FIELDCAT-ROW_POS = LV_ROW_POS. GS_FIELDCAT-COL_POS = LV_COL_POS. GS_FIELDCAT-FIELDNAME = LV_FILED_NAME. GS_FIELDCAT-TABNAME = LV_TABLE_NAME. GS_FIELDCAT-COLTEXT = LV_DESCRIPTION. GS_FIELDCAT-OUTPUTLEN = LV_SIZE. GS_FIELDCAT-HOTSPOT = LV_HOTSPOT. APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDFORM. " FIELDCAT_CREATION
*&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'PF_STATUS'. SET TITLEBAR 'TITLE'. IF GR_CUSTOM_CONTAINER IS INITIAL.
**Initializing the grid and calling the fm to Display the O/P PERFORM CREATE_AND_INIT_ALV. ENDIF.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE USER_COMMAND_0100 INPUT. CASE SY-UCOMM. WHEN 'BACK'. LEAVE TO SCREEN 0. WHEN 'CANCEL'. LEAVE TO SCREEN 0. WHEN 'EXIT'. LEAVE TO SCREEN 0. ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------**& Form EVENT_TOP_OF_PAGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------**-->DG_DYNDOC_ID TEXT*----------------------------------------------------------------------*FORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT. "this is more clear.....check it "first add text, then pass it to comentry write fm DATA: DL_TEXT(255) TYPE C. "Text
MOVE TEXT-031 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_GAP USING 110.CLEAR : DL_TEXT.
MOVE TEXT-032 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.
PERFORM ADD_GAP USING 100.CLEAR : DL_TEXT.
WRITE SY-DATUM TO DL_TEXT DD/MM/YYYY. CONCATENATE TEXT-033 DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_NEW_LINE.CLEAR : DL_TEXT.
MOVE TEXT-034 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_GAP USING 110.CLEAR : DL_TEXT.
MOVE TEXT-035 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_GAP USING 96.CLEAR : DL_TEXT.
WRITE SY-UZEIT TO DL_TEXT. CONCATENATE TEXT-036 DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_NEW_LINE.CLEAR : DL_TEXT.
MOVE TEXT-037 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_GAP USING 130.CLEAR : DL_TEXT.
MOVE TEXT-038 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.PERFORM ADD_GAP USING 112.CLEAR : DL_TEXT.
MOVE TEXT-039 TO DL_TEXT.PERFORM ADD_TEXT USING DL_TEXT.CLEAR : DL_TEXT.
PERFORM HTML.ENDFORM. " EVENT_TOP_OF_PAGE*&---------------------------------------------------------------------**& Form HTML*&--------------------------------------------------------------------
-** text*----------------------------------------------------------------------*FORM HTML.* CREATING HTML CONTROL IF GR_HTML_CNTRL IS INITIAL. CREATE OBJECT GR_HTML_CNTRL EXPORTING PARENT = GR_PARENT_HTML. ENDIF.** CONNECT TOP DOCUMENT TO HTML-CONTROL GR_DYNDOC_ID->HTML_CONTROL = GR_HTML_CNTRL.* DISPLAY TOP DOCUMENT CALL METHOD GR_DYNDOC_ID->DISPLAY_DOCUMENT EXPORTING REUSE_CONTROL = 'X' PARENT = GR_PARENT_HTML EXCEPTIONS HTML_DISPLAY_ERROR = 1. IF SY-SUBRC NE 0. MESSAGE 'Error in displaying top-of-page' TYPE 'I'. ENDIF.ENDFORM. " HTML
*&---------------------------------------------------------------------**& Form EVENT_END_OF_PAGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_DG_DYNDOC_ID text*----------------------------------------------------------------------*FORM EVENT_END_OF_PAGE USING DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT. DATA: DL_TEXT(255) TYPE C, DL_LINES TYPE STRING. "Text* Populating header to top-of-page
PERFORM ADD_GAP_F USING 15. MOVE 'TOTAL NUMBER OF ACCOUNT WITH ACTIVE INSTALMENT PLAN ' TO DL_TEXT.
PERFORM ADD_TEXT_F USING DL_TEXT. PERFORM ADD_NEW_LINE_F. CLEAR : DL_TEXT. DL_LINES = GV_LINES. PERFORM ADD_GAP_F USING 15. CONCATENATE 'WITH CREDIT ON ACCOUNT:' DL_LINES INTO DL_TEXT. PERFORM ADD_TEXT_F USING DL_TEXT. CLEAR : DL_TEXT.
PERFORM HTML_END.ENDFORM. " EVENT_END_OF_PAGE
*&---------------------------------------------------------------------**& Form HTML*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM HTML_END.* CREATING HTML CONTROL* IF GR_HTML_CNTRL1 IS INITIAL.* CREATE OBJECT GR_HTML_CNTRL1* EXPORTING* PARENT = GR_FOOTER_HTML.* ENDIF.*** CONNECT TOP DOCUMENT TO HTML-CONTROL* GR_DYNDOC_ID1->HTML_CONTROL = GR_HTML_CNTRL1.* DISPLAY TOP DOCUMENT CALL METHOD GR_DYNDOC_ID1->DISPLAY_DOCUMENT EXPORTING* REUSE_CONTROL = 'X' PARENT = GR_FOOTER_HTML EXCEPTIONS HTML_DISPLAY_ERROR = 1. IF SY-SUBRC NE 0. MESSAGE 'Error in displaying END OF PAGE' TYPE 'I'. ENDIF.ENDFORM. " HTML_END
*&---------------------------------------------------------------------**& Form ADD_TEXT*&--------------------------------------------------------------------
-** To add Text*----------------------------------------------------------------------*FORM ADD_TEXT USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.* Adding text CALL METHOD GR_DYNDOC_ID->ADD_TEXT EXPORTING TEXT = P_TEXT SAP_EMPHASIS = CL_DD_AREA=>HEADING SAP_FONTSIZE = '20'.ENDFORM. " ADD_TEXT*&---------------------------------------------------------------------**& Form ADD_TEXT*&---------------------------------------------------------------------** To add Text*----------------------------------------------------------------------*FORM ADD_TEXT_F USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.* Adding text CALL METHOD GR_DYNDOC_ID1->ADD_TEXT EXPORTING TEXT = P_TEXT SAP_EMPHASIS = CL_DD_AREA=>HEADING SAP_FONTSIZE = '20'.ENDFORM. " ADD_TEXT
*&---------------------------------------------------------------------**& Form ADD_GAP*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_15 text*----------------------------------------------------------------------*FORM ADD_GAP USING LV_WIDTH. CALL METHOD GR_DYNDOC_ID->ADD_GAP EXPORTING WIDTH = LV_WIDTH.
ENDFORM. " ADD_GAP*&---------------------------------------------------------------------**& Form ADD_GAP*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_15 text*----------------------------------------------------------------------*FORM ADD_GAP_F USING LV_WIDTH. CALL METHOD GR_DYNDOC_ID1->ADD_GAP EXPORTING WIDTH = LV_WIDTH.
ENDFORM. " ADD_GAP*&---------------------------------------------------------------------**& Form ADD_NEW_LINE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ADD_NEW_LINE . CALL METHOD GR_DYNDOC_ID->NEW_LINE EXPORTING REPEAT = 0.ENDFORM. " ADD_NEW_LINE*&---------------------------------------------------------------------**& Form ADD_NEW_LINE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text
*----------------------------------------------------------------------*FORM ADD_NEW_LINE_F . CALL METHOD GR_DYNDOC_ID1->NEW_LINE EXPORTING REPEAT = 0.ENDFORM. " ADD_NEW_LINE*&---------------------------------------------------------------------**& Form HOTSPOT_CLICK*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_E_ROW_ID text* -->P_E_COLUMN_ID text* -->P_ENDMETHOD text*----------------------------------------------------------------------*FORM HOTSPOT_CLICK USING LV_ROW_ID TYPE LVC_S_ROW LV_COLUMN_ID TYPE LVC_S_COL.
READ TABLE GT_FINAL INTO GS_FINAL INDEX LV_ROW_ID-INDEX.
IF SY-SUBRC EQ 0. IF LV_COLUMN_ID = 'RPNUM'. SET PARAMETER ID '8RP' FIELD GS_FINAL-RPNUM. CALL TRANSACTION 'FPR3' AND SKIP FIRST SCREEN. ENDIF. ENDIF.ENDFORM. " HOTSPOT_CLICK*&---------------------------------------------------------------------**& Form VALIDATE-SELECTIONS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM VALIDATE-SELECTIONS .
IF S_VKONT IS INITIAL. "MeSSAGe'Contract Account Number cannot be empty' TYPE 'E'(030). " CONT ACC NO CANNOT BE EMPTY MESSAGE E000(ZCCS_REP) WITH 'Contract Account Number cannot be empty'. " ELSEIF GT_FKK_INSTPLN_HEAD IS INITIAL. " MeSSAGE 'No Values for Contract Account Number' TYPE 'E'(028). " NO VALUES FOR SELECTED ACCOUNT NUMBER " MESSAGE E000(ZAP_ERRORS) WITH 'No Values for Contract Account Number'. ENDIF.
IF p_diff-low LT -10 OR p_diff-high GT 10. Message E000(ZCCS_REP) WITH 'Enter Values between 10 and -10 '. ENDIF.
IF NOT CB_0600 = GC_X. IF NOT CB_0060 = GC_X." MeSSAGE 'Select Proper Transaction' TYPE 'E'(029). MESSAGE E000(ZCCS_REP) WITH 'Select Proper Transaction'. ENDIF. ENDIF.
ENDFORM. " VALIDATE-SELECTIONS*&---------------------------------------------------------------------**& Form ALV_OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ALV_OUTPUT . CALL SCREEN 100.ENDFORM. " ALV_OUTPUT*&---------------------------------------------------------------------**& Form ALV_100_LAYOUT*&---------------------------------------------------------------------*
* text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ALV_100_LAYOUT . CLEAR GS_LAYOUT. GS_LAYOUT-GRID_TITLE = TEXT-024. GS_LAYOUT-ZEBRA = GC_X. GS_LAYOUT-NO_TOOLBAR = GC_SPACE. GS_LAYOUT-CWIDTH_OPT = 'X'. GS_LAYOUT-NO_ROWMARK = 'X'.ENDFORM. " ALV_100_LAYOUT*&---------------------------------------------------------------------**& Form PRINT_RESERVE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM PRINT_RESERVE .* reserve two lines for the PRINT_END_OF_PAGE event GS_PRINT-RESERVELNS = 2. GS_PRINT-PRNT_TITLE = 'X'. GS_PRINT-PRNT_INFO = 'X'.ENDFORM. " PRINT_RESERVE*&---------------------------------------------------------------------**& Form VARIANT_SAVE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*
FORM VARIANT_SAVE .**VAIANT TO SAVE THE LAYOUT GS_VARI-REPORT = SY-REPID. GS_VARI-HANDLE = SPACE. GS_VARI-LOG_GROUP = SPACE. GS_VARI-USERNAME = SPACE. GS_VARI-VARIANT = SPACE. GS_VARI-TEXT = SPACE. GS_VARI-DEPENDVARS = SPACE.
ENDFORM. " VARIANT_SAVE*&---------------------------------------------------------------------**& Form ALV_SPLIT_CONTAINER*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ALV_SPLIT_CONTAINER .*********************************************************************** TO DEVIDE CUSTOM CONTAINER INTO 3 PARTS* 1 HEADER (TOP OF PAGE )* 2 BODY* 3 FOOTER (END OF PAGE )**********************************************************************PERFORM SPLIT_ALV_CUSTOM_CONTAINER.*********************************************************************** ASSIGNING DIVIDED PARTS TO DIFFERENT CONTAINERS*********************************************************************** FOR TOP OF PAGE OR HEADERPERFORM ASSIGN_CUST_CONT_ROW USING 1 1 GR_PARENT_HTML.* SETTING HEIGHT OF TOP OF PAGEPERFORM HEIGHT_CUST_CONT USING 1 15.
* FOR BODYPERFORM ASSIGN_CUST_CONT_ROW USING 2 1 GR_PARENT_GRID.* SETTING HEIGHT FOR BODYPERFORM ASSIGN_CUST_CONT_ROW USING 3 1 GR_FOOTER_HTML.* SETTING HEIGHT OF END OF PAGEPERFORM HEIGHT_CUST_CONT USING 3 10.
ENDFORM. " ALV_SPLIT_CONTAINER
*&---------------------------------------------------------------------**& Form SPLIT_ALV_CUSTOM_CONTAINER*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM SPLIT_ALV_CUSTOM_CONTAINER . CREATE OBJECT GR_SPLITTER EXPORTING PARENT = GR_CUSTOM_CONTAINER ROWS = 3 COLUMNS = 1.ENDFORM. " SPLIT_ALV_CUSTOM_CONTAINER*&---------------------------------------------------------------------**& Form ASSIGN_CUST_CONT_ROW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM ASSIGN_CUST_CONT_ROW USING LV_ROW TYPE I LV_COLUMN TYPE I CHANGING LR_GRID_PART TYPE REF TO CL_GUI_CONTAINER.
CALL METHOD GR_SPLITTER->GET_CONTAINER EXPORTING ROW = LV_ROW COLUMN = LV_COLUMN RECEIVING CONTAINER = LR_GRID_PART.ENDFORM. " ASSIGN_CUST_CONT_ROW
*&---------------------------------------------------------------------**& Form HEIGHT_CUST_CONT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_1 text* -->P_10 text*----------------------------------------------------------------------*FORM HEIGHT_CUST_CONT USING LV_ID TYPE I LV_HEIGHT TYPE I.
CALL METHOD GR_SPLITTER->SET_ROW_HEIGHT EXPORTING ID = LV_ID HEIGHT = LV_HEIGHT.
ENDFORM. " HEIGHT_CUST_CONT*&---------------------------------------------------------------------**& Form GET_DATA_FOR_VALIDATION*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM GET_DATA_FOR_VALIDATION . SELECT vkont FROM fkk_instpln_head INTO TABLE GT_VKONT.
IF SY-SUBRC EQ 0. SORT GT_VKONT.ENDIF.
SELECT RPNUM FROM fkk_instpln_head INTO TABLE GT_RPNUM.
IF SY-SUBRC EQ 0. SORT GT_RPNUM.ENDIF.
ENDFORM. " GET_DATA_FOR_VALIDATION