Vous êtes sur la page 1sur 25

*&---------------------------------------------------------------------* *& Report ZBALANCE_SHEET_LA *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zbalance_sheet_la MESSAGE-ID icc-kr LINE-SIZE 220

LINE-COUNT 65 NO STANDARD PAGE HEADING. ************************************************************************ * this report is based on the logical database SDF ********************* ************************************************************************ TABLES: skc1a, skb1, skat, t001, t041c, bseg, bkpf, sscrfields. "G/L account sales segment derived from GLDB "G/L account master (company code) "G/L account (chart of accounts: description) "Company Codes "Reasons for reverse posting "needed for net.increase elimination "just needed for month selection

*********************************************** data list viewer ***** TYPE-POOLS: slis. INCLUDE <icon>. INCLUDE <symbol>. CONSTANTS : gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE', gc_formname_end_of_list TYPE slis_formname VALUE 'END_OF_LIST'. DATA : gt_fieldcat gs_layout gt_events gt_sp_group g_repid gt_list_top_of_page g_save(1) gx_variant g_variant g_exit(1) TYPE TYPE TYPE TYPE LIKE TYPE TYPE LIKE LIKE TYPE slis_t_fieldcat_alv, "fieldattributes slis_layout_alv, "list layout slis_t_event, "list events slis_t_sp_group_alv, "list groups sy-repid, "reportname slis_t_listheader, "top-of-page c, disvariant, disvariant, c.

*--- Variables for holding amounts DATA: *-- Liabilities g_pifboy TYPE g_cifboy TYPE g_pifriy TYPE g_cifriy TYPE g_pifeoy TYPE g_cifeoy TYPE g_psfbbs TYPE

umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs,

" " " " " " "

Pre Cur Pre Cur Pre Cur Pre

IRDA fund at beginning of the year IRDA fund at beginning of the year IRDA fund Receipts in the year IRDA fund Receipts in the year IRDA fund balance at end of year IRDA fund balance at end of year Surplus fund Balance as per last Balance Sheet

g_csfbbs TYPE g_pscot TYPE g_cscot TYPE g_ppdda TYPE g_cpdda TYPE g_ppexp TYPE g_cpexp TYPE g_ppf TYPE g_cpf TYPE g_prbf TYPE g_crbf TYPE g_polia TYPE g_colia TYPE g_prren TYPE g_crren TYPE g_psfur TYPE g_csfur TYPE *-- Assets g_pboa TYPE g_cboa TYPE g_pdep TYPE g_cdep TYPE g_pirdab TYPE g_cirdab TYPE g_pigms TYPE g_cigms TYPE g_pmsat TYPE g_cmsat TYPE g_ppcomp TYPE g_cpcomp TYPE g_psung TYPE g_csung TYPE g_pcapw TYPE g_ccapw TYPE g_pfixd TYPE g_cfixd TYPE g_pdepa TYPE g_cdepa TYPE g_pladv TYPE g_cladv TYPE g_padins TYPE g_cadins TYPE g_pocast TYPE g_cocast TYPE g_pchand TYPE h in transit) g_cchand TYPE h in transit) g_pbbal TYPE g_cbbal TYPE

umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs, umxxs.

" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "

Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre Cur Pre

Surplus fund Balance as per last Balance Sheet Sundry creditors other items Sundry creditors other items Provision for doubtful debts and advances Provision for doubtful debts and advances Provision for expenses Provision for expenses Profident Fund Profident Fund Retirement benefit Fund and Staff benefit fund Retirement benefit Fund and Staff benefit fund Other Liabilities Other Liabilities Registration Renewal Fee Registration Renewal Fee Soft Furnishing Soft Furnishing Gross Block of Assets Gross Block of Assets Less: Depreciation Less: Depreciation IRDA Building IRDA Building Software - IGMS Software - IGMS SAP ERP Software WIP () SAP ERP Software WIP (SAP) Product Comparator Project Product Comparator Project Software - Sun Gard (Actuarial) Software - Sun Gard (Actuarial) Capital Work in progress Capital Work in progress Fixed Deposits with scheduled Bank Fixed Deposits with scheduled Bank Deposits with agencies Deposits with agencies Loans and Advances to Staff Loans and Advances to Staff Amount Due from Insurance Companies & Others Amount Due from Insurance Companies & Others Other Current Assets Other Current Assets Cash in Hand(including cheques in hand and cas

" Cur Cash in Hand(including cheques in hand and cas " Pre Bank Balances " Cur Bank Balances **

*********************************************** data records ********* list ******************************** DATA: BEGIN OF list, saknr LIKE skc1a-saknr, txt50 LIKE skat-txt50, curr LIKE skc1a-hwaer, END OF list.

*********************************************** internal tables ******* output_list ****************** DATA: BEGIN OF output_list OCCURS 100, saknr LIKE skc1a-saknr, txt50 LIKE skat-txt50, wa_umxxs LIKE skc1a-um01k, wa_umxxh LIKE skc1a-um01k, wa_umxxk LIKE skc1a-um01k, wa_lasts LIKE skc1a-um01k, wa_lasth LIKE skc1a-um01k, wa_bebal LIKE skc1a-um01k, curr LIKE skc1a-hwaer, END OF output_list. ******** except_list ************************ DATA: except_list LIKE output_list OCCURS 0.

**

************************************************************** data *** DATA: umxxs LIKE skc1a-um01s, "variable for debit fields umxxh LIKE skc1a-um01h, "variable for credit fields umxxk LIKE skc1a-um01k, "varible for ending balance bebal LIKE skc1a-um01k, "variable for begining balance cnt LIKE sy-index, "loop counter for begining balance linecount LIKE sy-dbcnt, "Line counter output table date_string(10) TYPE c, "date string-format per_head(12) TYPE c, "list period in header headli1(30) TYPE c, "column headline last Period found TYPE i, "line counter sthfound TYPE i, curren LIKE t001-waers. " currency format DATA: ok_code TYPE sy-ucomm. TYPES : BEGIN OF ty_itab, p_amt_l TYPE wrbtr, text_l(75) , c_amt_l TYPE wrbtr, p_amt_a TYPE wrbtr, text_a(75), c_amt_a TYPE wrbtr, ind, END OF ty_itab. DATA : itab TYPE STANDARD TABLE OF ty_itab, wa_itab TYPE ty_itab.

* specific selections screen design ************************************ SELECTION-SCREEN BEGIN OF BLOCK period WITH FRAME TITLE text-001. SELECT-OPTIONS: period FOR bkpf-monat DEFAULT '01' TO '16' OBLIGATORY.

SELECT-OPTIONS: doctype FOR bkpf-blart. PARAMETERS: without AS CHECKBOX. SELECTION-SCREEN END OF BLOCK period. ************************************************************* two * selection-screen begin of block two with frame. *SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-060. *PARAMETERS: p_zebra AS CHECKBOX DEFAULT 'X', * p_colopt AS CHECKBOX DEFAULT 'X'. ** p_keyhot as checkbox default ' '. *SELECTION-SCREEN END OF BLOCK a. * * *SELECTION-SCREEN BEGIN OF BLOCK forth WITH FRAME TITLE text-063. *PARAMETERS: p_vari LIKE disvariant-variant. *SELECTION-SCREEN END OF BLOCK forth. ** end selection-screen ******************************************* ************************************************************************ AT SELECTION-SCREEN OUTPUT. *** eliminate unused screen selections LOOP AT SCREEN. IF OR OR OR OR OR OR OR * screen-group3 screen-group4 screen-group4 screen-group4 screen-name screen-name screen-name screen-name = = = = = = = = 'IXS' '003' '012' '013' 'SD_BUKRS-HIGH' 'SD_GJAHR-HIGH' '%_SD_BUKRS_%_APP_%-VALU_PUSH' '%_SD_GJAHR_%_APP_%-VALU_PUSH'.

field wont be displayed screen-active = 0. ELSEIF screen-name = 'SD_BUKRS-LOW' OR screen-name = 'SD_GJAHR-LOW'.

field is obligatory screen-required = 1. ENDIF. MODIFY SCREEN. ENDLOOP.

************************************************* initialization **** INITIALIZATION. . * clearing CLEAR: umxxs, umxxh, umxxk, cnt, list, date_string, per_head, headli1. REFRESH: output_list, except_list.

* set the current year as a default value for the fiscal year sd_gjahr-low = sy-datum. APPEND sd_gjahr. * initialization list viewer -----------------------g_repid = sy-repid. * perform fieldcat_init PERFORM eventtab_build using USING gt_fieldcat[]. gt_events[]. gt_list_top_of_page[]. gt_sp_group[].

* perform make_header_line. * perform comment_build using PERFORM sp_group_build USING

***************************************** Process on value request ** *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari. * PERFORM for_variant. *********************************** At Selection Screen // PAI ****** AT SELECTION-SCREEN. * PERFORM pai_of_selection_screen. * Period value must be in 1 to 16! IF period-low > '16' OR period-high > '16'. MESSAGE e712. ENDIF. IF NOT period-low IS INITIAL AND period-high IS INITIAL. MOVE period-low TO period-high. ENDIF. * Choose one company code! IF sd_bukrs-low CA '*'. MESSAGE e713. ENDIF. CHECK sscrfields-ucomm = 'ONLI' OR sscrfields-ucomm = 'PRIN' OR sscrfields-ucomm = 'SJOB'.

"when executed only

SELECT SINGLE * FROM t001 WHERE bukrs = sd_bukrs-low. MOVE t001-waers TO curren. * negative posting flag is not set on! IF t001-xnegp <> 'X'. SET CURSOR FIELD sd_bukrs-low. MESSAGE w714 WITH sd_bukrs-low. ELSE.

The result may not be correct because of partial negative posting! SELECT * FROM t041c WHERE xnegp <> 'X'. EXIT. ENDSELECT. IF sy-subrc = 0. MESSAGE w715. ENDIF. ENDIF.

*********************************************** start-of-selection ** START-OF-SELECTION. cnt = period-low - 1. * ----------------- GET skb1 ---------GET skb1. * ------------------------------------CLEAR sthfound. SELECT SINGLE * FROM skat WHERE spras = sy-langu AND ktopl = t001-ktopl AND saknr = skb1-saknr.

global account data list-saknr = skb1-saknr. list-txt50 = skat-txt50. list-curr = curren.

* ----------------- GET SKC1A --------GET skc1a. * ------------------------------------PERFORM create_list. * the account has been posted sthfound = 1.

* ------------------- GET SKB1 LATE -----GET skb1 LATE. * ---------------------------------------* a non-posting account was detected * and display without non-posting accounts are required IF without = space AND sthfound IS INITIAL. CLEAR output_list. REJECT. "skip to the next record

* a non-posting account was detected * and display with non-posting accounts are required ELSEIF without = 'X' AND sthfound IS INITIAL.

add non-posting account CLEAR output_list. output_list-saknr = skb1-saknr. output_list-txt50 = skat-txt50. output_list-curr = skb1-waers. fill internal table output_list with non-posting accountinfo APPEND output_list. ENDIF.

********************************************* end-of-selection ******* END-OF-SELECTION. * PERFORM FIELDCAT_INIT PERFORM comment_build PERFORM layout_build USING USING USING GT_FIELDCAT[]. gt_list_top_of_page[]. gs_layout.

* posted tax invoices have to be eleminated PERFORM correction_output_list. * how many accounts have been found ? DESCRIBE TABLE output_list LINES found. IF found >= 1. PERFORM get_amounts. PERFORM get_table. * PERFORM output. ELSE. MESSAGE i500. ENDIF. DATA : v_fm TYPE rs38l_fnam. BREAK-POINT. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZBALANCE_SHEET_FORM' * VARIANT = ' ' * DIRECT_CALL = ' ' IMPORTING fm_name = v_fm * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION v_fm * EXPORTING * ARCHIVE_INDEX * ARCHIVE_INDEX_TAB * ARCHIVE_PARAMETERS * CONTROL_PARAMETERS

= = = =

* MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES itab = itab * EXCEPTIONS * FORMATTING_ERROR = 1 * INTERNAL_ERROR = 2 * SEND_ERROR = 3 * USER_CANCELED = 4 * OTHERS = 5 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.

***************************************************** top of page **** *TOP-OF-PAGE. * DATA: v_year(35), * v_pdate(15), * v_cdate(15), * v_pyear(4). * * v_pdate = '31st March'. * v_pyear = sd_gjahr-low - 1. * * CONCATENATE v_pdate * v_pyear * INTO v_pdate SEPARATED BY space. * * CONCATENATE '31st March' * sd_gjahr-low * INTO v_cdate SEPARATED BY space. * * * CONCATENATE 'Balance sheet as at 31st March' * sd_gjahr-low * INTO v_year SEPARATED BY space. * * ULINE (220). * FORMAT COLOR COL_HEADING INTENSIFIED OFF. * WRITE:/01 sy-vline, * 105 'FORM-A', * 220 sy-vline. * * WRITE:/01 sy-vline, * 85 'INSURANCE REGULATORY AND DEVLEOPMENT AUTHORITY', * 220 sy-vline. * * WRITE:/01 sy-vline, * 92 v_year,

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

220 sy-vline. ULINE (220). FORMAT RESET. FORMAT COLOR COL_TOTAL INTENSIFIED OFF. WRITE:/01 sy-vline, (20) 'FIGURES AS AT' sy-vline, (60) 'LIABILITIES' sy-vline, (20) 'FIGURES AS AT' sy-vline, (20) 'FIGURES AS AT' sy-vline, (60) 'ASSETS' sy-vline, (20) 'FIGURES AS AT' 220 sy-vline. WRITE:/01 sy-vline, (20) v_pdate sy-vline, (60) ' ' , sy-vline, (20) v_cdate sy-vline, (20) v_pdate sy-vline, (60) ' ', sy-vline, (20) v_cdate 220 sy-vline. WRITE:/ sy-uline(220). FORMAT RESET. CENTERED, CENTERED , CENTERED, CENTERED, CENTERED, CENTERED,

CENTERED,

CENTERED, CENTERED,

CENTERED,

*********************************************************** forms **** ** ---------------------------------------------** output **************************** ** ---------------------------------------------FORM output. * ULINE (220). ENDFORM. "OUTPUT

"output

********************************************************************* ** ---------------------------------------------------** form fieldcat_init ********************************* ** ---------------------------------------------------* this form creates the fieldcatalog which is necessary for * the ABAP List Viewer

FORM fieldcat_init USING lt_fieldcat TYPE slis_t_fieldcat_alv. DATA: ls_fieldcat TYPE slis_fieldcat_alv. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'SAKNR'. ls_fieldcat-key = 'X'. * ls_fieldcat-no_out = 'X'. ls_fieldcat-sp_group = 'A'. ls_fieldcat-just = 'R'. ls_fieldcat-ref_tabname = 'SKC1A'. * ls_fieldcat-reptext_ddic = text-100. ls_fieldcat-outputlen = 10. ls_fieldcat-col_pos = '1'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'TXT50'. ls_fieldcat-just = 'L'. * ls_fieldcat-reptext_ddic = text-104. ls_fieldcat-ref_tabname = 'SKAT'. ls_fieldcat-outputlen = 50. ls_fieldcat-col_pos = '2'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR: ls_fieldcat, headli1. ls_fieldcat-fieldname = 'WA_BEBAL'. ls_fieldcat-just = 'R'. ls_fieldcat-reptext_ddic = text-303. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-do_sum = 'X'. ls_fieldcat-col_pos = '3'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR: ls_fieldcat, headli1. ls_fieldcat-fieldname = 'WA_LASTS'. ls_fieldcat-just = 'R'. CONCATENATE text-300 period-high text-302 INTO headli1 ls_fieldcat-reptext_ddic = headli1. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-emphasize = 'C300'. ls_fieldcat-do_sum = 'X'. * ls_fieldcat-ref_fieldname = 'UM01S'. ls_fieldcat-col_pos = '4'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR: ls_fieldcat, headli1. ls_fieldcat-fieldname = 'WA_LASTH'.

SEPARATED BY space .

ls_fieldcat-just = 'R'. CONCATENATE text-300 period-high text-301 INTO headli1 ls_fieldcat-reptext_ddic = headli1. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-emphasize = 'C300'. ls_fieldcat-do_sum = 'X'. ls_fieldcat-col_pos = '5'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'WA_UMXXS'. ls_fieldcat-just = 'R'. ls_fieldcat-reptext_ddic = text-106. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-do_sum = 'X'. ls_fieldcat-col_pos = '6'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'WA_UMXXH'. ls_fieldcat-just = 'R'. ls_fieldcat-reptext_ddic = text-107. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-do_sum = 'X'. ls_fieldcat-col_pos = '7'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'WA_UMXXK'. ls_fieldcat-just = 'R'. ls_fieldcat-reptext_ddic = text-108. ls_fieldcat-ref_tabname = 'SKC1A'. * ls_fieldcat-ref_fieldname = 'UMXXK'. ls_fieldcat-datatype = 'CURR'. ls_fieldcat-cfieldname = 'CURR'. ls_fieldcat-outputlen = 15. ls_fieldcat-do_sum = 'X'. ls_fieldcat-col_pos = '8'. APPEND ls_fieldcat TO lt_fieldcat. CLEAR ls_fieldcat. ls_fieldcat-fieldname = 'CURR'. ls_fieldcat-ref_tabname = 'SKC1A'. ls_fieldcat-ref_fieldname = 'HWAER'. ls_fieldcat-outputlen = 5. ls_fieldcat-datatype = 'CUKY'. ls_fieldcat-col_pos = '9'.

SEPARATED BY space .

APPEND ls_fieldcat TO lt_fieldcat. ENDFORM. "FIELDCAT_INIT

******************************************************************* ** -----------------------------------------------** form layout_build ****************************** ** -----------------------------------------------FORM layout_build USING ls_layout TYPE slis_layout_alv. * * * * * * ls_layout-f2code = '&ETA'. ls_layout-zebra = p_zebra. ls_layout-colwidth_optimize = p_colopt. if p_chkbox = 'X'. ls_layout-box_fieldname = 'BOX'. else. ls_layout-box_fieldname = space. * endif. ls_layout-no_input = 'X'. * ls_layout-no_vline = ' '. ls_layout-no_colhead = ' '. * if p_lights = 'X' or p_lightc = 'X'. * ls_layout-lights_fieldname = 'LIGHTS'. * else. * clear ls_layout-lights_fieldname. * endif. ls_layout-lights_condense = 'X'. * ls_layout-totals_text = p_totext. * ls_layout-subtotals_text = p_sttext. * ls_layout-totals_only = p_totonl. * ls_layout-key_hotspot = p_keyhot. * ls_layout-detail_popup = p_detpop. * ls_layout-group_change_edit = p_groups. * LS_LAYOUT-GROUP_BUTTONS = P_GROUPB. ls_layout-group_buttons = space. * ls_layout-numc_sum = 'X'. * ls_layout-totals_before_items ='X'. ENDFORM. "LAYOUT_BUILD ****************************************************************** ** -------------------------------------------------** form eventtab_build ****************************** ** -------------------------------------------------FORM eventtab_build USING lt_events * CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = lt_events. READ TABLE lt_events WITH KEY name = slis_ev_top_of_page TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

INTO ls_event. IF sy-subrc = 0. MOVE gc_formname_top_of_page TO ls_event-form. APPEND ls_event TO lt_events. ENDIF. READ TABLE lt_events WITH KEY name = slis_ev_end_of_list INTO ls_event. IF sy-subrc = 0. MOVE gc_formname_end_of_list TO ls_event-form. APPEND ls_event TO lt_events. ENDIF. ENDFORM. "EVENTTAB_BUILD

****************************************************************** ** --------------------------------------------------** form comment_build ******************************** ** --------------------------------------------------FORM comment_build USING lt_top_of_page TYPE slis_t_listheader. DATA: ls_line TYPE slis_listheader. * Listenberschrift: Typ H CLEAR ls_line. ls_line-typ = 'H'. ls_line-info = text-052. APPEND ls_line TO lt_top_of_page. * Kopfinfo: Typ S * ---------------------------------- 1. Zeile CLEAR ls_line. ls_line-typ = ls_line-key = ls_line-info = APPEND ls_line 'S'. text-101. sy-uname. TO lt_top_of_page.

* ---------------------------------- 2. Zeile CLEAR ls_line. ls_line-typ = ls_line-key = ls_line-info = APPEND ls_line 'S'. text-099. sy-repid. TO lt_top_of_page.

* ---------------------------------- 3. Zeile CLEAR ls_line. ls_line-typ = ls_line-key = ls_line-info = APPEND ls_line 'S'. text-102. sy-title. TO lt_top_of_page.

* ----------------------------------- 4.Zeile

CLEAR ls_line. ls_line-typ = 'S'. CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = sy-datum IMPORTING date_external = date_string EXCEPTIONS date_internal_is_invalid = 1 OTHERS = 2. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ls_line-key = text-100. ls_line-info = date_string. APPEND ls_line TO lt_top_of_page. * ---------------------------------- 5. Zeile CONCATENATE period-low '-' period-high INTO per_head. CLEAR ls_line. ls_line-typ = ls_line-key = ls_line-info = APPEND ls_line 'S'. text-098. per_head. TO lt_top_of_page.

* Aktionsinfo: Typ A CLEAR ls_line. ls_line-typ = 'A'. * ls_line-key = text-053. APPEND ls_line TO lt_top_of_page. ENDFORM. "COMMENT_BUILD

******************************************************************* ** --------------------------------------------** form top_of_page **************************** ** --------------------------------------------FORM top_of_page. * CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = gt_list_top_of_page. ENDFORM. "TOP_OF_PAGE ******************************************************************* ** --------------------------------------------** form for_variant **************************** ** --------------------------------------------FORM for_variant.

* CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING is_variant = g_variant i_save = g_save * it_default_fieldcat = IMPORTING e_exit = g_exit es_variant = gx_variant EXCEPTIONS not_found = 2. IF sy-subrc = 2. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. * IF g_exit = space. p_vari = gx_variant-variant. ENDIF. ENDIF. ENDFORM. "FOR_VARIANT

******************************************************************** ******************************************************************** ** ----------------------------------------------** form sp_group_build *************************** ** ----------------------------------------------FORM sp_group_build USING lt_sp_group TYPE slis_t_sp_group_alv. DATA: ls_sp_group TYPE slis_sp_group_alv. * CLEAR ls_sp_group. ls_sp_group-sp_group = 'A'. ls_sp_group-text = text-005. APPEND ls_sp_group TO lt_sp_group. ENDFORM. "SP_GROUP_BUILD

********************************************************************** ** -------------------------------------** form create_list ** -------------------------------------FORM create_list. READ TABLE output_list WITH KEY saknr = skc1a-saknr. * nothing found IF sy-subrc > 2.

add new header information output_list-saknr = skc1a-saknr. output_list-txt50 = list-txt50. output_list-curr = list-curr. initialize reporting amounts CLEAR: output_list-wa_umxxs, output_list-wa_umxxh, output_list-wa_bebal, output_list-wa_umxxk, output_list-wa_lasts, output_list-wa_lasth. APPEND output_list. ENDIF.

* read SKC1A data from period-low to period-high DO period-high TIMES VARYING umxxs FROM skc1a-um01s NEXT skc1a-um02s VARYING umxxh FROM skc1a-um01h NEXT skc1a-um02h VARYING umxxk FROM skc1a-um01k NEXT skc1a-um02k. * CHECK sy-index >= period-low. summarize output_list-wa_umxxs = output_list-wa_umxxs + umxxs. output_list-wa_umxxh = output_list-wa_umxxh + umxxh. ENDDO. * update output_list-wa_lasts = output_list-wa_lasts + umxxs. output_list-wa_lasth = output_list-wa_lasth + umxxh. output_list-wa_umxxk = output_list-wa_umxxk + umxxk. * determine the starting balance IF period-low = '01'. bebal = skc1a-umsav. ELSE. DO cnt TIMES VARYING bebal FROM skc1a-um01k NEXT skc1a-um02k. ENDDO. ENDIF. output_list-wa_bebal = output_list-wa_bebal + bebal. * end bebal * change output_list MODIFY TABLE output_list. ENDFORM. " CREATE_NET_LIST

*********************************************************************** ** ------------------------------------** form end_of_list ** ------------------------------------

FORM end_of_list. * how many accounts have been selected DESCRIBE TABLE output_list LINES linecount. SKIP 1. WRITE:/ text-054, linecount . ENDFORM. "END_OF_LIST

************************************************************************ FORM correction_output_list. DATA: wa_out_list LIKE output_list. CLEAR: wa_out_list. IF NOT doctype IS INITIAL. * tax invoice documents SELECT * FROM bkpf WHERE bukrs AND gjahr AND blart AND monat will be selected = sd_bukrs-low = sd_gjahr-low IN doctype IN period.

CHECK bkpf-stblg IS INITIAL. * BSEG items belonging to SELECT * FROM bseg WHERE bukrs AND belnr AND gjahr the found document header will be sel. = bkpf-bukrs = bkpf-belnr = bkpf-gjahr .

CHECK bseg-hkont IN sd_saknr. READ TABLE output_list WITH KEY saknr = bseg-hkont INTO wa_out_list. IF sy-subrc < 4. * update net increase amounts PERFORM update_amounts USING bseg bkpf CHANGING wa_out_list. MODIFY output_list FROM wa_out_list INDEX sy-tabix. * * create internal table including all taxinvoice net increase PERFORM create_except_list USING wa_out_list bseg bkpf. ENDIF. ENDSELECT. " BSEG ENDSELECT. " BKPF ENDIF.

ENDFORM.

"CORRECTION_OUTPUT_LIST

************************************************************************ FORM update_amounts USING wa_bseg LIKE bseg wa_bkpf LIKE bkpf CHANGING wa LIKE output_list.

net increase accumulated will be updated IF wa_bseg-shkzg = 'S'. wa-wa_umxxs = wa-wa_umxxs - wa_bseg-dmbtr. ELSE. wa-wa_umxxh = wa-wa_umxxh - wa_bseg-dmbtr. ENDIF. net increase last reported period will be updated IF wa_bkpf-monat = period-high. IF wa_bseg-shkzg = 'S'. wa-wa_lasts = wa-wa_lasts - wa_bseg-dmbtr. ELSE. wa-wa_lasth = wa-wa_lasth - wa_bseg-dmbtr. ENDIF. ENDIF. "UPDATE_AMOUNTS

ENDFORM.

************************************************************************ FORM create_except_list USING wa LIKE output_list wa_bseg LIKE bseg wa_bkpf LIKE bkpf . DATA: wa_except LIKE output_list. CLEAR: wa_except. READ TABLE except_list WITH KEY * entry not found IF sy-subrc >= 4. CLEAR wa_except. wa_except-saknr = wa-saknr. wa_except-txt50 = wa-txt50. wa_except-curr = wa-curr. PERFORM update_amounts USING wa_bseg wa_bkpf CHANGING wa_except. saknr = wa-saknr INTO wa_except.

APPEND wa_except TO except_list. * entry found ELSE. PERFORM update_amounts USING wa_bseg wa_bkpf CHANGING wa_except. MODIFY except_list FROM wa_except INDEX sy-tabix.

ENDIF. ENDFORM. "CREATE_EXCEPT_LIST

************************************************************************ * -----------------------* form set_status * -----------------------FORM set_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'STATUS_STANDARD' EXCLUDING rt_extab. ENDFORM. "SET_STATUS

************************************************************************ * -------------------------* form user_command * -------------------------FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.

DATA: n TYPE i. CLEAR: n. CASE r_ucomm. WHEN 'EXCEPT'. DESCRIBE TABLE except_list LINES n. IF n = 0 . n = 4. ENDIF. n = n + 8. CALL SCREEN 8000 STARTING AT 5 5 ENDING AT 150 n.

ENDCASE. ENDFORM. "USER_COMMAND

*&---------------------------------------------------------------------* *& Form get_amounts *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM get_amounts . BREAK-POINT. LOOP AT output_list. CASE output_list-saknr. *-- Liabilities *-- IRDA fund at beginning of the year WHEN '0000100010'. g_pifboy = output_list-wa_bebal. g_cifboy = output_list-wa_umxxk.

*-- Surplus fund Balance as per last Balance Sheet WHEN '0000102900'. g_psfbbs = output_list-wa_bebal. g_psfbbs = output_list-wa_umxxk. *-- Sundry creditors other items WHEN '0000106020' OR '0000106027' OR '0000106028' '0000106030' OR '0000106048' OR '0000106051' '0000106013' OR '0000106022' OR '0000106031' '0000106049' OR '0000106050' OR '0000106014' g_pscot = g_pscot + output_list-wa_bebal. g_cscot = g_cscot + output_list-wa_umxxk. *-- Pre Provision for doubtful debts and advances WHEN '0000106016'. g_ppdda = output_list-wa_bebal. g_cpdda = output_list-wa_umxxk. *-- Provision for expenses WHEN '0000106017'. g_ppexp = output_list-wa_bebal. g_cpexp = output_list-wa_umxxk. *-- Profident Fund WHEN '0000106011'. g_ppf = output_list-wa_bebal. g_cpf = output_list-wa_umxxk. *-- Retirement benefit Fund and Staff benefit fund WHEN '0000106012' OR '0000106018' OR '0000106019' g_prbf = g_prbf + output_list-wa_bebal. g_crbf = g_crbf + output_list-wa_umxxk. *-- Other Liabilities WHEN '0000106023' OR '0000106024' OR '0000106025' '0000106046'. g_polia = g_polia + output_list-wa_bebal. g_colia = g_colia + output_list-wa_umxxk. *-- Registration Renewal Fee WHEN '0000106010'. g_prren = output_list-wa_bebal. g_crren = output_list-wa_umxxk. *-- Soft Furnishing WHEN '0000106021'. g_psfur = output_list-wa_bebal. g_csfur = output_list-wa_umxxk. *-- Assets *-- Gross Block of Assets WHEN '0000200010' OR '0000200015' OR '0000200020' '0000200030' OR '0000200035' OR '0000200040' '0000200050' OR '0000200055'. g_pboa = g_pboa + output_list-wa_bebal. g_cboa = g_cboa + output_list-wa_umxxk. *-- Depreciation WHEN '0000106515' OR '0000106525' OR '0000106530' '0000106540' OR '0000106545' OR '0000106550' '0000106595'. g_pdep = g_pdep + output_list-wa_bebal. g_cdep = g_cdep + output_list-wa_umxxk. *-- IRDA Building WHEN '0000200065'. g_pirdab = output_list-wa_bebal. g_cirdab = output_list-wa_umxxk. *-- Software - IGMS WHEN '0000200075'. g_pigms = output_list-wa_bebal.

OR OR OR OR

'0000106029' OR '0000106052' OR '0000106040' OR '0000106015'.

OR '0000106047'.

OR '0000106026' OR

OR '0000200025' OR OR '0000200045' OR

OR '0000106535' OR OR '0000106555' OR

g_cigms = output_list-wa_umxxk. *-- SAP ERP Software WIP (Mahindra Satyam) WHEN '0000200070'. g_pmsat = output_list-wa_bebal. g_cmsat = output_list-wa_umxxk. *-- Pre Product Comparator Project WHEN '0000200085'. g_ppcomp = output_list-wa_bebal. g_cpcomp = output_list-wa_umxxk. *-- Pre Software - Sun Gard (Actuarial) WHEN '0000200080'. g_psung = output_list-wa_bebal. g_csung = output_list-wa_umxxk. *-- Pre Capital Work in progress WHEN '0000200060'. g_pcapw = output_list-wa_bebal. g_ccapw = output_list-wa_umxxk. *-- Pre Fixed Deposits with scheduled Bank WHEN '0000202014'. g_pfixd = output_list-wa_bebal. g_cfixd = output_list-wa_umxxk. *--Pre Deposits with agencies WHEN '0000202015' OR '0000202023' OR '0000202024' OR '0000202025' OR '0000202026' OR '0000202027'. g_pdepa = g_pdepa + output_list-wa_bebal. g_cdepa = g_cdepa + output_list-wa_umxxk. *-- Pre Loans and Advances to Staff WHEN '0000202009' OR '0000202010' OR '0000202011' OR '0000202028' OR '0000202029' OR '0000202030' OR '0000202032' OR '0000202033' OR '0000202034'. g_pladv = g_pladv + output_list-wa_bebal. g_cladv = g_cladv + output_list-wa_umxxk. *-- Pre Amount Due from Insurance Companies & Others WHEN '0000202031'. g_padins = output_list-wa_bebal. g_cadins = output_list-wa_umxxk. *-- Pre Other Current Assets WHEN '0000202012' OR '0000202013' OR '0000202016' OR '0000202022'. g_pocast = g_pocast + output_list-wa_bebal. g_cocast = g_cocast + output_list-wa_umxxk. *-- Pre Cash in Hand(including cheques in hand and cash in transit) WHEN '0000202017' OR '0000202018' OR '0000202019' OR '0000202020' OR '0000202021'. g_pchand = g_pocast + output_list-wa_bebal. g_cchand = g_cocast + output_list-wa_umxxk. WHEN '0000205010' OR '0000205015' OR '0000205020' OR '0000205025' OR '0000205030' OR '0000205035' OR '0000205040' OR '0000205045' OR '0000205050' OR '0000205055' OR '0000205060'. ENDCASE. ENDLOOP. ENDFORM. " GET_AMOUNTS END-OF-PAGE. *&---------------------------------------------------------------------* *& Form GET_TABLE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text

*----------------------------------------------------------------------* FORM get_table . wa_itab-text_l = 'GENERAL FUND' wa_itab-ind = 'H'. APPEND wa_itab TO itab. .

wa_itab-text_l = 'i) IRDA Fund [See Note 4]' . wa_itab-text_a = 'FIXED ASSETS [See Note 1] as per Annexure I'. wa_itab-ind = 'S'. APPEND wa_itab TO itab. wa_itab-text_l = '-At beginning of the year' . wa_itab-text_a = 'Gross Block of Assets'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_pifboy. wa_itab-c_amt_l = g_cifboy. WA_ITAB-P_AMT_A = g_pboa . WA_ITAB-C_AMT_A = g_pboa. APPEND wa_itab TO itab. wa_itab-text_l = '-Receipts in the year'. wa_itab-text_a = 'Less: Depreciation'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_pifriy . wa_itab-c_amt_l = g_cifriy . WA_ITAB-P_AMT_A = g_pdep . WA_ITAB-C_AMT_A = g_Cdep . APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_l = ' -Balance at end of the year'. wa_itab-text_a = 'Net Block of Assets'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_pifeoy . wa_itab-c_amt_l = g_pifeoy . * WA_ITAB-P_AMT_A = * WA_ITAB-C_AMT_A = APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_a = 'Work-in-Progress - IRDA Building'. wa_itab-ind = 'I'. wa_itab-p_amt_a = ''. wa_itab-c_amt_a = ''. APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_a = 'Work-in-Progress - Others'. wa_itab-ind = 'I'. wa_itab-p_amt_a = ''. wa_itab-c_amt_a = ''. APPEND wa_itab TO itab. CLEAR wa_itab. * 2 Capital Funds wa_itab-text_l = 'ii) Capital Fund'. wa_itab-ind = 'H'.

APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_l = '-Capital Grants'. wa_itab-ind = 'I'. * wa_itab-p_amt_l = g_pifeoy . * wa_itab-c_amt_l = g_pifeoy . APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_l = '-Balance at the beginning of the year'. wa_itab-ind = 'I'. * wa_itab-p_amt_l = g_pifeoy . * wa_itab-c_amt_l = g_pifeoy . APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_l = 'Add: Value of Fixed Assets received as grants during the yea r'. wa_itab-ind = 'I'. wa_itab-p_amt_l = '' . wa_itab-c_amt_l = '' . APPEND wa_itab TO itab. CLEAR wa_itab. **************** capital funds APPEND wa_itab TO itab. " sapce. * Surplus and Funds and INVESTMENTS [See Note 2] wa_itab-text_l = 'iii) Surplus and Funds'. wa_itab-text_a = 'INVESTMENTS [See Note 2]'. wa_itab-ind = 'H'. APPEND wa_itab TO itab. CLEAR wa_itab. wa_itab-text_a = '(Method of Valuation - at Cost]'. wa_itab-ind = 'I'. APPEND wa_itab TO itab. CLEAR wa_itab. APPEND wa_itab TO itab. wa_itab-text_l = '-Balance as per last Balance Sheet'. wa_itab-text_a = 'i) Securities of Central and State Government'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . * WA_ITAB-P_AMT_A = * WA_ITAB-C_AMT_A = APPEND wa_itab TO itab. clear wa_itab. WA_ITAB-TEXT_L = 'Add: Excess of Income over expenditure as per Income'. wa_itab-text_a = 'ii) Units'. WA_ITAB-IND = 'I'. * WA_ITAB-P_AMT_A = * WA_ITAB-C_AMT_A = APPEND WA_ITAB TO ITAB. clear wa_itab. wa_itab-text_l = 'and Expenditure Account - Annexed'.

wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . * WA_ITAB-P_AMT_A = * WA_ITAB-C_AMT_A = APPEND wa_itab TO itab. clear wa_itab. WA_ITAB-TEXT_L = 'Less: Excess of Expenditure Over Income as per Income'. wa_itab-text_a = 'iii) Fixed Deposits with scheduled Bank'. WA_ITAB-IND = 'I'. WA_ITAB-P_AMT_A = g_cfixd . WA_ITAB-C_AMT_A = g_cfixd . APPEND WA_ITAB TO ITAB. clear wa_itab. wa_itab-text_l = 'and Expenditure Account - Annexed'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. wa_itab-text_A = 'iv) Others'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. wa_itab-text_L = 'iv) Gift and Donations'. wa_itab-ind = 'S'. APPEND WA_ITAB TO ITAB. CLEAR WA_ITAB. wa_itab-text_L = 'v) Other Balances'. wa_itab-ind = 'S'. APPEND WA_ITAB TO ITAB. CLEAR WA_ITAB. wa_itab-text_l = 'LOANS'. WA_ITAb-text_a = 'CURRENT ASSETS, LOANS AND ADVANCES [See Note 3]'. wa_itab-ind = 'H'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. APPEND WA_ITAB TO ITAB. " For space. wa_itab-text_l = 'i) Secured (stating the security offered for the purpose)'. WA_ITAb-text_a = 'i) Deposits with agencies'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. wa_itab-text_l = 'ii) Unsecured'. WA_ITAb-text_a = 'ii) Loans and Advances to Staff'.

wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. wa_itab-text_l = 'iii) Loan from Government of India'. WA_ITAb-text_a = 'iii) Amount Due from Insurance Companies & Others'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. wa_itab-text_l = 'iv) Other Loans'. WA_ITAb-text_a = 'iv) Other Current Assets'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. WA_itab-text_a = 'v)Cash & Bank Balances'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. WA_itab-text_a = ' a)Cash in Hand(including cheques in hand and cash in transi t)'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab. WA_itab-text_a = 'b) Bank Balances'. wa_itab-ind = 'I'. wa_itab-p_amt_l = g_psfbbs. wa_itab-c_amt_l = g_csfbbs . APPEND wa_itab TO itab. clear wa_itab.

BREAK-POINT.

ENDFORM.

" GET_TABLE

Vous aimerez peut-être aussi