Skip to Content
0
Apr 20, 2009 at 07:25 AM

To hide some headings in top of page during sorting of fields...

29 Views

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