dear experts,
I have a report in which i am fetching multiple company codes in report and in o/p they are displayed according to company codes, but during sorting of any field in list i want to hide some of the headings in top of page...for any of the radio buttons the headings which i want to hide are...
1) company code
2) opening balance and
3) closing balance
please help...my code is as follows...
TYPE-POOLS:slis. TABLES:bkpf,bseg,kna1,bsid. TYPES:BEGIN OF ty_bsad, bukrs TYPE bsad-bukrs, gjahr TYPE bsad-gjahr, kunnr TYPE bsad-kunnr, belnr TYPE bsad-belnr, budat TYPE bsad-budat, xblnr TYPE bsad-xblnr, bldat TYPE bsad-bldat, augdt TYPE bsad-augdt, dmbtr type bsad-dmbtr, END OF ty_bsad. TYPES:BEGIN OF ty_kna1, kunnr TYPE kna1-kunnr, name1 TYPE kna1-name1, city TYPE kna1-ort01, END OF ty_kna1. TYPES:BEGIN OF ty_knb1, kunnr TYPE knb1-kunnr, bukrs TYPE knb1-bukrs, vzskz TYPE knb1-vzskz, END OF ty_knb1. TYPES:BEGIN OF ty_bkpf, bukrs TYPE bkpf-bukrs, gjahr TYPE bkpf-gjahr, hwaer TYPE bkpf-hwaer, kursf TYPE bkpf-kursf, bktxt TYPE bkpf-bktxt, belnr TYPE bkpf-belnr, budat TYPE bkpf-budat, xblnr TYPE bkpf-xblnr, bldat TYPE bkpf-bldat, waers TYPE bkpf-waers, END OF ty_bkpf. TYPES:BEGIN OF ty_bsid, bukrs TYPE bsid-bukrs, gjahr TYPE bsid-gjahr, kunnr TYPE bsid-kunnr, belnr TYPE bsid-belnr, budat TYPE bsid-budat, xblnr TYPE bsid-xblnr, bldat TYPE bsid-bldat, augdt TYPE bsid-augdt, dmbtr type bsid-dmbtr, END OF ty_bsid. TYPES:BEGIN OF ty_bseg, bukrs TYPE bseg-bukrs, gjahr TYPE bseg-gjahr, belnr TYPE bseg-belnr, kunnr TYPE bseg-kunnr, werks TYPE bseg-werks, umskz TYPE bseg-umskz, zuonr TYPE bseg-zuonr, dmbtr TYPE bseg-dmbtr, zbd1t TYPE bseg-zbd1t, sgtxt TYPE bseg-sgtxt, shkzg TYPE bseg-shkzg, zterm TYPE bseg-zterm, zfbdt TYPE bseg-zfbdt, END OF ty_bseg. TYPES:BEGIN OF ty_open, bukrs TYPE bsid-bukrs, shkzg TYPE bsid-shkzg, dmbtr TYPE bsid-dmbtr, umskz TYPE bsid-umskz, END OF ty_open. **Main internal Table **For both open & cleared Customer DATA:BEGIN OF it_main_all OCCURS 0, bukrs TYPE bsad-bukrs, gjahr TYPE bsad-gjahr, kunnr TYPE bsad-kunnr, belnr TYPE bsad-belnr, budat TYPE bsad-budat, xblnr TYPE bsad-xblnr, bldat TYPE bsad-bldat, augdt TYPE bsad-augdt, dmbtr type bsad-dmbtr, hwaer TYPE bkpf-hwaer, kursf TYPE bkpf-kursf, bktxt TYPE bkpf-bktxt, name TYPE kna1-name1, city TYPE kna1-ort01, vzskz TYPE knb1-vzskz, lights TYPE c, END OF it_main_all. **For Opening balance DATA:BEGIN OF it_main_open1 OCCURS 0, bukrs TYPE bsid-bukrs, opening TYPE p DECIMALS 2, END OF it_main_open1. **Internal tables DATA : t_bsad TYPE STANDARD TABLE OF ty_bsad, w_bsad TYPE ty_bsad, t_bkpf TYPE STANDARD TABLE OF ty_bkpf, w_bkpf TYPE ty_bkpf, t_kna1 TYPE STANDARD TABLE OF ty_kna1, w_kna1 TYPE ty_kna1, t_knb1 TYPE STANDARD TABLE OF ty_knb1, w_knb1 TYPE ty_knb1, t_bsid TYPE STANDARD TABLE OF ty_bsid, w_bsid TYPE ty_bsid, t_bseg TYPE STANDARD TABLE OF ty_bseg, w_bseg TYPE ty_bseg, t_open TYPE STANDARD TABLE OF ty_open, w_open TYPE ty_open. **ALV display variables DATA:fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE, gd_layout TYPE slis_layout_alv, gt_events TYPE slis_t_event, gt_list_top_of_page TYPE slis_t_listheader, heading TYPE slis_t_listheader, g_save(1) TYPE c, g_exit(1) TYPE c, g_variant TYPE disvariant, gx_variant TYPE disvariant, it_sort TYPE slis_t_sortinfo_alv, x_sort TYPE slis_sortinfo_alv. **Selection Screens SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS:s_bukrs FOR bkpf-bukrs OBLIGATORY, s_gjahr FOR bkpf-gjahr OBLIGATORY NO-EXTENSION NO INTERVALS, s_kunnr FOR bseg-kunnr OBLIGATORY NO-EXTENSION NO INTERVALS, s_name1 FOR kna1-name1 NO-EXTENSION NO INTERVALS, s_date FOR bkpf-budat OBLIGATORY, s_umskz FOR bsid-umskz. SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003. PARAMETERS:xnorm AS CHECKBOX DEFAULT 'X', xshbv AS CHECKBOX. SELECTION-SCREEN END OF BLOCK b3. DATA:golive TYPE d VALUE '20080401', date TYPE d, date1 TYPE d, closing TYPE p DECIMALS 2 VALUE 0, opening TYPE p DECIMALS 2 VALUE 0. **Start Of Selection START-OF-SELECTION. PERFORM get_data. PERFORM events. PERFORM f_layout. PERFORM display. *----------------------------------------------------------------------* FORM get_data . **Open Customers master data SELECT bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr FROM bsid INTO TABLE t_bsid WHERE bukrs IN s_bukrs AND gjahr IN s_gjahr AND kunnr IN s_kunnr AND budat IN s_date AND umskz IN s_umskz. **Clear Customers master data SELECT bukrs gjahr kunnr belnr budat xblnr bldat augdt dmbtr FROM bsad INTO TABLE t_bsad WHERE bukrs IN s_bukrs AND gjahr IN s_gjahr AND kunnr IN s_kunnr AND budat IN s_date AND umskz IN s_umskz. ****Open Customers data IF NOT t_bsid[] IS INITIAL. SORT t_bsid BY bukrs bldat. SELECT bukrs gjahr hwaer kursf bktxt belnr FROM bkpf INTO CORRESPONDING FIELDS OF TABLE t_bkpf FOR ALL ENTRIES IN t_bsid WHERE bukrs = t_bsid-bukrs AND gjahr = t_bsid-gjahr AND belnr = t_bsid-belnr. SORT t_bkpf. SELECT kunnr name1 ort01 FROM kna1 INTO TABLE t_kna1 FOR ALL ENTRIES IN t_bsid WHERE kunnr = t_bsid-kunnr AND name1 IN s_name1. SORT t_kna1. SELECT kunnr bukrs vzskz FROM knb1 INTO TABLE t_knb1 FOR ALL ENTRIES IN t_bsid WHERE kunnr = t_bsid-kunnr AND bukrs = t_bsid-bukrs. SORT t_knb1. LOOP AT t_bsid INTO w_bsid. it_main_all-bukrs = w_bsid-bukrs. it_main_all-kunnr = w_bsid-kunnr. it_main_all-gjahr = w_bsid-gjahr. it_main_all-belnr = w_bsid-belnr. it_main_all-budat = w_bsid-budat. it_main_all-xblnr = w_bsid-xblnr. it_main_all-bldat = w_bsid-bldat. READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsid-bukrs gjahr = w_bsid-gjahr belnr = w_bsid-belnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-hwaer = w_bkpf-hwaer. it_main_all-kursf = w_bkpf-kursf. it_main_all-bktxt = w_bkpf-bktxt. ENDIF. READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-name = w_kna1-name1. it_main_all-city = w_kna1-city. ENDIF. READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsid-kunnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-vzskz = w_knb1-vzskz. ENDIF. it_main_all-lights = '1'. APPEND it_main_all. CLEAR it_main_all. CLEAR : w_bsid, w_bkpf, w_kna1, w_knb1. ENDLOOP . ENDIF. **Clear customers data IF NOT t_bsad[] IS INITIAL. SORT t_bsad BY bukrs bldat. SELECT bukrs gjahr hwaer kursf bktxt belnr FROM bkpf INTO CORRESPONDING FIELDS OF TABLE t_bkpf FOR ALL ENTRIES IN t_bsad WHERE bukrs = t_bsad-bukrs AND gjahr = t_bsad-gjahr AND belnr = t_bsad-belnr. SORT t_bkpf. SELECT kunnr name1 ort01 FROM kna1 INTO TABLE t_kna1 FOR ALL ENTRIES IN t_bsad WHERE kunnr = t_bsad-kunnr AND name1 IN s_name1. SORT t_kna1. SELECT kunnr bukrs vzskz FROM knb1 INTO TABLE t_knb1 FOR ALL ENTRIES IN t_bsad WHERE kunnr = t_bsad-kunnr AND bukrs = t_bsad-bukrs. SORT t_knb1. LOOP AT t_bsad INTO w_bsad. it_main_all-bukrs = w_bsad-bukrs. it_main_all-gjahr = w_bsad-gjahr. it_main_all-kunnr = w_bsad-kunnr. it_main_all-belnr = w_bsad-belnr. it_main_all-budat = w_bsad-budat. it_main_all-xblnr = w_bsad-xblnr. it_main_all-bldat = w_bsad-bldat. READ TABLE t_bkpf INTO w_bkpf WITH KEY bukrs = w_bsad-bukrs gjahr = w_bsad-gjahr belnr = w_bsad-belnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-hwaer = w_bkpf-hwaer. it_main_all-kursf = w_bkpf-kursf. it_main_all-bktxt = w_bkpf-bktxt. ENDIF. READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-name = w_kna1-name1. it_main_all-city = w_kna1-city. ENDIF. READ TABLE t_knb1 INTO w_knb1 WITH KEY kunnr = w_bsad-kunnr BINARY SEARCH. IF sy-subrc EQ 0. it_main_all-vzskz = w_knb1-vzskz. ENDIF. it_main_all-lights = '3'. APPEND it_main_all. CLEAR : w_bsad, w_bkpf, w_kna1, w_knb1. ENDLOOP . ENDIF. ENDFORM. " get_data *&---------------------------------------------------------------------* *& Form events *&---------------------------------------------------------------------* FORM events . DATA : l_i_event TYPE slis_alv_event. l_i_event-name = 'TOP_OF_PAGE' . l_i_event-form = 'TOP2' . APPEND l_i_event TO gt_events . CLEAR l_i_event . ENDFORM. " events *&---------------------------------------------------------------------* *& Form f_layout *&---------------------------------------------------------------------* FORM f_layout . CLEAR gd_layout. gd_layout-detail_popup = 'X'. gd_layout-zebra = 'X'. gd_layout-no_vline = ' '. gd_layout-lights_fieldname = 'LIGHTS'. gd_layout-colwidth_optimize = 'X'. ENDFORM. " f_layout *&---------------------------------------------------------------------* *& Form display *&---------------------------------------------------------------------* FORM display . fieldcatalog-fieldname = 'BUKRS'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Company Code'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'GJAHR'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Fiscal year'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'BELNR'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Doc No.'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'BLDAT'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Doc Date'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'BUDAT'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Posting date'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. fieldcatalog-fieldname = 'DMBTR'. fieldcatalog-tabname = 'IT_MAIN_ALL'. fieldcatalog-seltext_m = 'Amt in local cur.'. fieldcatalog-do_sum = 'X'. fieldcatalog-just = 'R'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. **For Subtotal of fields x_sort-fieldname = 'BUKRS' . x_sort-group = '*'. x_sort-subtot = 'X'. APPEND x_sort TO it_sort. CLEAR x_sort . CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = gd_layout it_fieldcat = fieldcatalog[] it_sort = it_sort i_default = 'X' it_events = gt_events[] TABLES t_outtab = it_main_all EXCEPTIONS program_error = 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. ENDFORM. *&---------------------------------------------------------------------* *& Form top_of_page *&---------------------------------------------------------------------* FORM top_of_page. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING i_logo = 'RUCHI_LOGO' it_list_commentary = heading[]. ENDFORM. *&---------------------------------------------------------------------* *& Form opening *&---------------------------------------------------------------------* FORM opening USING p_bukrs TYPE bsid-bukrs. DATA : opdate TYPE d. IF s_date-low < golive. opening = 0. ELSE. opdate = s_date-low - 1. SELECT bukrs shkzg dmbtr umskz FROM bsid INTO TABLE t_open WHERE bukrs IN s_bukrs AND kunnr IN s_kunnr AND gjahr IN s_gjahr AND budat <= opdate. LOOP AT t_open INTO w_open. IF w_open-shkzg = 'S'. opening = opening + w_open-dmbtr. ELSEIF w_open-shkzg = 'H'. w_open-dmbtr = w_open-dmbtr * ( -1 ). opening = opening + w_open-dmbtr . ENDIF. CLEAR : w_open. ENDLOOP. SELECT bukrs shkzg dmbtr umskz FROM bsad INTO TABLE t_open WHERE bukrs IN s_bukrs AND kunnr IN s_kunnr AND gjahr IN s_gjahr AND budat <= opdate. LOOP AT t_open INTO w_open. IF w_open-shkzg = 'S'. opening = opening + w_open-dmbtr. ELSEIF w_open-shkzg = 'H'. w_open-dmbtr = w_open-dmbtr * ( -1 ). opening = opening + w_open-dmbtr. ENDIF. CLEAR w_open. ENDLOOP. ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form top2 *&---------------------------------------------------------------------* FORM top2 . date = s_date-low. date1 = s_date-high. WRITE : / 'CUSTOMER LEDGER FOR ALL ITEMS' COLOR 7. WRITE : / 'Customer Code:', it_main_all-kunnr. WRITE : / 'Customer Name:', it_main_all-name. WRITE : / 'Customer City:', it_main_all-city. ON CHANGE OF it_main_all-bukrs. WRITE : / 'Company Code:' COLOR 3 , it_main_all-bukrs COLOR 3. PERFORM opening USING it_main_all-bukrs. PERFORM closing USING it_main_all-bukrs. WRITE : / 'Opening Balance : Rs.' , opening . WRITE : / 'Closing Balance : Rs.' , closing . ENDON. CLEAR : closing, opening. IF date1 IS INITIAL. WRITE : / 'Date:', date DD/MM/YYYY. ELSE. WRITE : / 'Date:' , date DD/MM/YYYY, ' to ', date1 DD/MM/YYYY. ENDIF. ENDFORM. *&---------------------------------------------------------------------* *&Form closing *&---------------------------------------------------------------------* FORM closing USING c_bukrs TYPE bsid-bukrs. LOOP AT it_main_all WHERE bukrs = c_bukrs. closing = closing + it_main_all-dmbtr. ENDLOOP . closing = closing + opening . ENDFORM.
Edited by: Vishu on Apr 20, 2009 9:32 AM