‎2008 Jul 10 3:09 AM
Hi Experts,
In my alv grid i have 2 top-of page. 1 for detail report and 1 for summery. For detail report every thing is OK. but for summery report ... output is coming whne i go back a blank page is coming in that top-of-page is showing.. so what might b the problem. am using 2 alv grids. 1 for detail report and 1 for summery. all the events am using twice.Please let me know what actually am doing wrong. if you want i can paste my code.
Correct answers will be fully rewarded.
Regards
Sunita
‎2008 Jul 10 5:33 AM
Hi,
In yur from FORM top_of_page.
this Automatically tigger when u call alv grid or list function
module. u cant change the form name. So u give code like below.
&----
*& Form TOP_OF_PAGE
&----
* TOP_OF_PAGE Event
----
FORM top_of_page.
"#EC CALLED
if p_detail = 'X'.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top
i_alv_form = 'X'.
else.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top1
i_alv_form = 'X'.
endif.
* PERFORM f_print_header USING SPACE SPACE SPACE.
ENDFORM. "TOP_OF_PAGE
Reward if useful...
Thanks,
Durai.V
‎2008 Jul 10 4:09 AM
‎2008 Jul 10 4:18 AM
hi sunita,
can i see ur code so that i can try to solve ur problem.
‎2008 Jul 10 4:32 AM
Hi Rics,
Thanks for your reply. Here is my code.. You can paste it in ur system and check as there r no custome tables r custom fields... plz solve this for me.
*&---------------------------------------------------------------------*
*& Report ZRFI0062_CLAS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zrfi0062_clas NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID z01.*REPORT zrfi007 NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID z01.
TYPE-POOLS: slis, abap.
*----------------------------------------------------------------------*
* TYPES Declaration
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_lfa1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
END OF ty_lfa1.
TYPES: BEGIN OF ty_bsik,
bukrs TYPE bsik-bukrs,
lifnr TYPE bsik-lifnr,
belnr TYPE bsik-belnr,
bldat TYPE bsik-bldat,
waers TYPE bsik-waers,
dmbtr TYPE bsik-dmbtr,
wrbtr TYPE bsik-wrbtr,
zfbdt TYPE bsik-zfbdt,
zbd1t TYPE bsik-zbd1t,
zbd2t TYPE bsik-zbd2t,
zbd3t TYPE bsik-zbd3t,
END OF ty_bsik.
TYPES: BEGIN OF ty_lfb1,
lifnr TYPE lfb1-lifnr,
bukrs TYPE lfb1-bukrs,
END OF ty_lfb1.
TYPES: BEGIN OF ty_final,
bukrs TYPE bsik-bukrs,
lifnr TYPE bsik-lifnr,
belnr TYPE bsik-belnr,
bldat TYPE bsik-bldat,
days TYPE sy-datum,
waers TYPE bsik-waers,
dmbtr TYPE bsik-dmbtr,
* waers type bsik-waers,
wrbtr TYPE bsik-wrbtr,
zfbdt TYPE bsik-zfbdt,
zbd1t TYPE bsik-zbd1t,
zbd2t TYPE bsik-zbd2t,
zbd3t TYPE bsik-zbd3t,
name1 TYPE lfa1-name1,
current TYPE bsik-dmbtr,
d30 TYPE bsik-dmbtr,
d60 TYPE bsik-dmbtr,
d90 TYPE bsik-dmbtr,
d120 TYPE bsik-dmbtr,
d180 TYPE bsik-dmbtr,
d240 TYPE bsik-dmbtr,
d360 TYPE bsik-dmbtr,
da365 TYPE bsik-dmbtr,
* ct_date TYPE sy-datum,
* date TYPE datum,
* days TYPE char8,
END OF ty_final.
TYPES: BEGIN OF i_output ,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
dmbtr TYPE bsik-dmbtr,
current TYPE bsik-dmbtr,
d30 TYPE bsik-dmbtr,
d60 TYPE bsik-dmbtr,
d90 TYPE bsik-dmbtr,
d120 TYPE bsik-dmbtr,
d180 TYPE bsik-dmbtr,
d240 TYPE bsik-dmbtr,
d360 TYPE bsik-dmbtr,
da365 TYPE bsik-dmbtr,
END OF i_output.
DATA: tg_data TYPE STANDARD TABLE OF i_output,
wa_data TYPE i_output.
*----------------------------------------------------------------------*
* Data Declaration.
*----------------------------------------------------------------------*
DATA: gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
wa_lfa1 TYPE ty_lfa1.
DATA: gt_final TYPE STANDARD TABLE OF ty_final,
wa_final TYPE ty_final.
DATA: gt_bsik TYPE STANDARD TABLE OF ty_bsik,
wa_bsik TYPE ty_bsik.
DATA: gt_lfb1 TYPE STANDARD TABLE OF ty_lfb1,
wa_lfb1 TYPE ty_lfb1.
DATA: days TYPE sy-datum.
*----------------------------------------------------------------------*
* ALV Components
*----------------------------------------------------------------------*
**** ALV Internal Table
DATA : i_layout TYPE slis_layout_alv OCCURS 0 WITH HEADER LINE,
i_events TYPE slis_t_event,
i_fieldcat TYPE slis_t_fieldcat_alv,
i_print TYPE slis_print_alv,
i_list_top TYPE slis_t_listheader,
i_list_end TYPE slis_t_listheader,
i_sort TYPE slis_t_sortinfo_alv.
DATA: wa_fieldcat LIKE LINE OF i_fieldcat.
*----------------------------------------------------------------------*
* ALV Components for Summery
*----------------------------------------------------------------------*
**** ALV Internal Table
DATA :
i_layout1 TYPE slis_layout_alv OCCURS 0 WITH HEADER LINE,
i_events1 TYPE slis_t_event,
i_fieldcat1 TYPE slis_t_fieldcat_alv,
i_print1 TYPE slis_print_alv,
i_list_top1 TYPE slis_t_listheader,
i_list_end1 TYPE slis_t_listheader,
i_sort1 TYPE slis_t_sortinfo_alv.
DATA: wa_fieldcat1 LIKE LINE OF i_fieldcat1.
*----------------------------------------------------------------------*
* ALV Variable.
*----------------------------------------------------------------------*
DATA: v_top TYPE slis_formname VALUE 'TOP_OF_PAGE',
v_eop TYPE slis_formname VALUE 'END_OF_PAGE',
v_eol TYPE slis_formname VALUE 'END_OF_LIST',
v_tol TYPE slis_formname VALUE 'TOP_OF_LIST'.
**** ALV Variants
DATA: i_variant LIKE disvariant.
*----------------------------------------------------------------------*
* ALV Variable. for summery
*----------------------------------------------------------------------*
DATA: v_top1 TYPE slis_formname VALUE 'TOP_OF_PAGE',
v_eop1 TYPE slis_formname VALUE 'END_OF_PAGE',
v_eol1 TYPE slis_formname VALUE 'END_OF_LIST',
v_tol1 TYPE slis_formname VALUE 'TOP_OF_LIST'.
**** ALV Variants
DATA: i_variant1 LIKE disvariant.
*----------------------------------------------------------------------*
* Selection screen
*----------------------------------------------------------------------*
DATA: v_bukrs TYPE bukrs,
v_lifnr TYPE kunnr,
pa_bldat TYPE bldat.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_bukrs FOR v_bukrs NO INTERVALS NO-EXTENSION OBLIGATORY,
s_lifnr FOR v_lifnr.
* bldat FOR v_bldat no-extension.
PARAMETERS: p_bldat TYPE bsik-bldat.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_detail RADIOBUTTON GROUP r1 DEFAULT 'X',
p_sumry RADIOBUTTON GROUP r1.
SELECTION-SCREEN END OF BLOCK b2.
*----------------------------------------------------------------------*
* Top-Of-Page Declaration Header
*----------------------------------------------------------------------*
*****
DATA: lwa_list_top LIKE LINE OF i_list_top.
DATA: lwa_list_top1 LIKE LINE OF i_list_top1.
DATA: lv_header(70),
lv_text(50),
lv_text1(60),
lv_text2(50),
lv_text3(50) ,
lv_text4(50),
lv_date TYPE char10,
lv_time TYPE char10.
DATA: lv_header1(70),
lv_text12(50),
lv_text11(60),
lv_text21(50),
lv_text31(50) ,
lv_text41(50),
lv_date1 TYPE char10,
lv_time1 TYPE char10.
DATA: lv_butxt LIKE t001-butxt,
lv_butxt1 LIKE lfa1-name1,
lv_butxt2 LIKE lfb1-lifnr.
INITIALIZATION.
*TOP-OF-PAGE.
*----------------------------------------------------------------------*
* Validations for Selection screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON s_bukrs.
IF NOT s_bukrs[] IS INITIAL.
SELECT SINGLE bukrs FROM lfb1
INTO s_bukrs
WHERE bukrs IN s_bukrs.
ENDIF.
IF sy-subrc NE 0.
MESSAGE e003.
ENDIF.
AT SELECTION-SCREEN ON s_lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT SINGLE lifnr FROM lfa1
INTO s_lifnr
WHERE lifnr IN s_lifnr.
IF sy-subrc NE 0.
MESSAGE e005.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON p_bldat.
IF NOT p_bldat IS INITIAL.
SELECT SINGLE bldat FROM bsid
INTO p_bldat
WHERE bldat = p_bldat.
IF sy-subrc NE 0 .
MESSAGE e004.
ENDIF.
ENDIF.
*----------------------------------------------------------------------*
* Selection For Top-of-page.
*----------------------------------------------------------------------*
** Get company code description
SELECT SINGLE butxt
FROM t001 INTO lv_butxt
WHERE bukrs IN s_bukrs.
* SELECT SINGLE lifnr FROM lfb1
* INTO lv_butxt2 WHERE bukrs IN s_bukrs.
*
* SELECT SINGLE name1 FROM lfa1
* INTO lv_butxt1 WHERE lifnr = lv_butxt2.
START-OF-SELECTION.
PERFORM data_retrival.
i_variant-report = sy-repid.
i_variant1-report = sy-repid.
* PERFORM f_build_header_list.
* perform f_build_header_list1.
* PERFORM f_build_fieldcat.
IF p_detail = 'X'.
PERFORM f_build_sort.
PERFORM f_layout_init.
PERFORM f_eventtab_build.
PERFORM fill_fieldcat.
PERFORM f_build_header_list.
PERFORM f_list_display TABLES gt_final[].
PERFORM f_eventtab_build.
PERFORM f_print_control.
ELSE.
PERFORM f_build_sort1.
PERFORM f_layout_init1.
* PERFORM f_list_display1.
PERFORM f_eventtab_build1.
PERFORM f_build_header_list1.
PERFORM fill_fieldcat_sum.
PERFORM f_print_control1.
ENDIF.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form data_retrival
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_retrival .
SELECT bukrs
lifnr
belnr
bldat
waers
dmbtr
wrbtr
zfbdt
zbd1t
zbd2t
zbd3t
FROM bsik INTO TABLE gt_bsik
WHERE bukrs IN s_bukrs
AND lifnr IN s_lifnr.
SELECT lifnr
name1
FROM lfa1 INTO TABLE gt_lfa1
FOR ALL ENTRIES IN gt_bsik
WHERE lifnr = gt_bsik-lifnr.
LOOP AT gt_bsik INTO wa_bsik.
READ TABLE gt_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_bsik-lifnr.
MOVE-CORRESPONDING wa_bsik TO wa_final.
MOVE-CORRESPONDING wa_lfa1 TO wa_final.
DATA: days TYPE char2,
c4 TYPE char2.
DATA: days1 TYPE sy-datum.
DATA:duedate TYPE rfpos-faedt.
CALL FUNCTION 'NET_DUE_DATE_GET'
EXPORTING
i_zfbdt = wa_final-zfbdt
i_zbd1t = wa_final-zbd1t
i_zbd2t = wa_final-zbd2t
i_zbd3t = wa_final-zbd3t
i_shkzg = ' '
i_rebzg = ' '
* I_KOART = 'D'
IMPORTING
e_faedt = duedate.
CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
EXPORTING
i_datum_bis = duedate
i_datum_von = wa_final-bldat
* I_KZ_EXCL_VON = '0'
* I_KZ_INCL_BIS = '0'
* I_KZ_ULT_BIS = ' '
* I_KZ_ULT_VON = ' '
* I_STGMETH = '0'
* I_SZBMETH = '1'
IMPORTING
e_tage = days
EXCEPTIONS
days_method_not_defined = 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.
wa_final-days = duedate.
DATA : wf_char TYPE char10.
wf_char = days.
IF wf_char+0(1) EQ '*' .
SKIP.
ELSE.
IF days EQ 0.
wa_final-current = wa_bsik-wrbtr.
ELSEIF days LE 30 AND days GT 0.
wa_final-d30 = wa_bsik-wrbtr.
ELSEIF days LE 60 AND days GT 30 .
wa_final-d60 = wa_bsik-wrbtr.
ELSEIF days LE 90 AND days GT 60.
wa_final-d90 = wa_bsik-wrbtr.
ELSEIF days LE 120 AND days GT 90.
wa_final-d120 = wa_bsik-wrbtr.
ELSEIF days LE 180 AND days GT 120.
wa_final-d180 = wa_bsik-wrbtr.
ELSEIF days LE 240 AND days GT 180.
wa_final-d240 = wa_bsik-wrbtr.
ELSEIF days LE 360 AND days GT 240.
wa_final-d360 = wa_bsik-wrbtr.
ELSEIF days GT 365 .
wa_final-da365 = wa_bsik-wrbtr.
ENDIF.
ENDIF.
APPEND wa_final TO gt_final.
CLEAR: wa_final,
days,
duedate,days1.
ENDLOOP.
ENDFORM. " data_retrival
*&---------------------------------------------------------------------*
*& Form fill_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM fill_fieldcat.
PERFORM fill_fields USING: 'Vendor Number' 'LIFNR',
'Vendor Name' 'NAME1',
'Document Number' 'BELNR',
'Document Date' 'BLDAT',
'Due Date' 'DAYS',
'Total In Document Currency' 'WRBTR',
'Currency' 'WAERS',
'Total In Reporting Currency' 'DMBTR',
'Current' 'CURRENT',
'1-30 days' 'D30',
'31-60 days' 'D60',
'61-90 days' 'D90',
'91-120 days' 'D120',
'121-180 days' 'D180',
'181-240 days' 'D240',
'241-360 days' 'D360',
* '181-365 days' 'D365',
'Above 365 days' 'DA365'.
.
ENDFORM. "fill_fieldcat
*&---------------------------------------------------------------------*
*& Form fill_fieldcat_sum
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM fill_fieldcat_sum.
TYPES: BEGIN OF i_output ,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
dmbtr TYPE bsik-dmbtr,
current TYPE bsik-dmbtr,
d30 TYPE bsik-dmbtr,
d60 TYPE bsik-dmbtr,
d90 TYPE bsik-dmbtr,
d120 TYPE bsik-dmbtr,
d180 TYPE bsik-dmbtr,
d240 TYPE bsik-dmbtr,
d360 TYPE bsik-dmbtr,
da365 TYPE bsik-dmbtr,
END OF i_output.
DATA: tg_data TYPE STANDARD TABLE OF i_output,
wa_data TYPE i_output.
DATA: tp_dmbtr LIKE bsid-dmbtr.
* DATA:gv_repid LIKE sy-repid.
LOOP AT gt_final INTO wa_final.
* tp_dmbtr = tp_dmbtr + wa_final-dmbtr.
MOVE-CORRESPONDING wa_final TO wa_data.
COLLECT wa_data INTO tg_data.
AT END OF lifnr.
SKIP.
ENDAT.
* APPEND pt_data.
ENDLOOP.
* LOOP AT tg_data INTO wa_data.
wa_fieldcat1-col_pos = '1'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Number'.
wa_fieldcat1-fieldname = 'LIFNR'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '2'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Vendor Name'.
wa_fieldcat1-fieldname = 'NAME1'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '3'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Total In Reporting Currency'.
wa_fieldcat1-fieldname = 'DMBTR'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '4'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'CURRENT'.
wa_fieldcat1-fieldname = 'CURRENT'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '5'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '1-30 Days'.
wa_fieldcat1-fieldname = 'D30'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '6'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '31-60 Days'.
wa_fieldcat1-fieldname = 'D60'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '7'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '61-90 Days'.
wa_fieldcat1-fieldname = 'D90'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '8'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '91-120 Days'.
wa_fieldcat1-fieldname = 'D120'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '9'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '121-180 Days'.
wa_fieldcat1-fieldname = 'D180'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '10'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '181-240 Days'.
wa_fieldcat1-fieldname = 'D240'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '11'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = '241-360 Days'.
wa_fieldcat1-fieldname = 'D360'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '12'.
wa_fieldcat1-tabname = 'TG_DATA'. "t_output_provgr
wa_fieldcat1-seltext_m = 'Over 360 Days'.
wa_fieldcat1-fieldname = 'DA365'.
wa_fieldcat1-do_sum = 'X'.
APPEND wa_fieldcat1 TO i_fieldcat1.
CLEAR wa_fieldcat1.
* ENDLOOP.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top1
i_alv_form = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_variant1-report
is_layout = i_layout1
it_fieldcat = i_fieldcat1[]
it_sort = i_sort1
i_default = 'X'
i_save = 'A'
is_variant = i_variant1
it_events = i_events1[]
is_print = i_print1
TABLES
t_outtab = tg_data[].
ENDFORM. "fill_fieldcat_sum
*&---------------------------------------------------------------------*
*& Form fill_fields
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->&01 text
* -->&02 text
*----------------------------------------------------------------------*
FORM fill_fields USING &01 &02 .
wa_fieldcat-tabname = 'T_OUTPUT'. "t_output_provgr
wa_fieldcat-fieldname = &02.
wa_fieldcat-seltext_m = &01.
* wa_fieldcat-ref_fieldname = 'Total In Reporting Currency'.
* wa_fieldcat-ref_tabname = 'DMBTR'.
* wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "fill_fields
*&---------------------------------------------------------------------*
*& Form f_layout_init
*&---------------------------------------------------------------------*
* Set the layout
*----------------------------------------------------------------------*
FORM f_layout_init.
* P_layout-min_linesize = 170.
* p_layout-max_linesize = 170.
* P_layout-no_colhead = abap_true.
* p_layout-detail_popup = abap_true.
i_layout-colwidth_optimize = abap_true.
i_layout-zebra = abap_true.
* i_layout-subtotals_text = 'SubTotal'.
* i_layout-totals_text = 'Total'.
ENDFORM. " f_layout_init
*&---------------------------------------------------------------------*
*& Form f_eventtab_build
*&---------------------------------------------------------------------*
* Set the events
*----------------------------------------------------------------------*
FORM f_eventtab_build.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events.
READ TABLE i_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE v_top TO: ls_event-form,
ls_event-name.
APPEND ls_event TO i_events.
ENDIF.
READ TABLE i_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE v_eop TO: ls_event-form,
ls_event-name.
APPEND ls_event TO i_events.
ENDIF.
READ TABLE i_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE v_eol TO: ls_event-form,
ls_event-name.
APPEND ls_event TO i_events.
ENDIF.
READ TABLE i_events WITH KEY name = slis_ev_top_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE v_tol TO: ls_event-form,
ls_event-name.
APPEND ls_event TO i_events.
ENDIF.
ENDFORM. " f_eventtab_build
*&---------------------------------------------------------------------*
*& Form f_print_control
*&---------------------------------------------------------------------*
* Set the print control
*----------------------------------------------------------------------*
FORM f_print_control .
* i_print-no_print_listinfos = abap_true.
* i_print-no_print_selinfos = abap_true.
* i_print-reserve_lines = 2.
* i_print-no_change_print_params = abap_true.
ENDFORM. " f_print_control
*&---------------------------------------------------------------------*
*& Form f_build_header_list
*&---------------------------------------------------------------------*
* Build the header list (top of page)
*----------------------------------------------------------------------*
FORM f_build_header_list .
lv_header = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
lv_text = 'Company Name:'(s01).
lv_text1 = 'Open Item As Key Date:'(s02).
lv_text2 = 'Company Code:'(s03).
lv_text3 = 'Vendor Number:'(s04).
lv_text4 = 'Vendor Name:'(s05).
* Header
CLEAR lwa_list_top.
lwa_list_top-typ = 'H'.
lwa_list_top-info = lv_header.
APPEND lwa_list_top TO i_list_top.
* Run date Display
lwa_list_top-typ = 'S'. " Item
WRITE: sy-datum TO lv_date MM/DD/YYYY.
lwa_list_top-key = 'Date :'(025).
lwa_list_top-info = lv_date.
APPEND lwa_list_top TO i_list_top.
CLEAR: lwa_list_top,
lv_date.
* Run time Display
lwa_list_top-typ = 'S'. " Item
WRITE: sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.
lwa_list_top-key = 'Time :'(026).
lwa_list_top-info = lv_time.
APPEND lwa_list_top TO i_list_top.
CLEAR: lwa_list_top,
lv_time.
CLEAR lwa_list_top.
* Company Name
lwa_list_top-typ = 'S'.
lwa_list_top-key = lv_text.
lwa_list_top-info = lv_butxt.
APPEND lwa_list_top TO i_list_top.
CLEAR lwa_list_top.
*Open Item As Key Date
lwa_list_top-typ = 'S'.
lwa_list_top-key = lv_text1.
lwa_list_top-info = p_bldat.
APPEND lwa_list_top TO i_list_top.
CLEAR lwa_list_top.
* Company Code
lwa_list_top-typ = 'S'.
lwa_list_top-key = lv_text2.
lwa_list_top-info = s_bukrs-low.
APPEND lwa_list_top TO i_list_top.
CLEAR lwa_list_top.
** Vendor Number
* lwa_list_top-typ = 'S'.
* lwa_list_top-key = lv_text3.
* lwa_list_top-info = lv_butxt2.
* APPEND lwa_list_top TO i_list_top.
* CLEAR lwa_list_top.
**Vendor Name
* lwa_list_top-typ = 'S'.
* lwa_list_top-key = lv_text4.
* lwa_list_top-info = lv_butxt1.
* APPEND lwa_list_top TO i_list_top.
ENDFORM. " f_build_header_list
*&---------------------------------------------------------------------*
*& Form f_build_header_list1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_build_header_list1 .
lv_header1 = 'Vendor Open Item Analysis By Balance Of Overdue Items'(h01).
lv_text12 = 'Company Name:'(s01).
lv_text11 = 'Open Item As Key Date:'(s02).
lv_text21 = 'Company Code:'(s03).
lv_text31 = 'Vendor Number:'(s04).
lv_text41 = 'Vendor Name:'(s05).
lwa_list_top1-typ = 'H'.
lwa_list_top1-info = lv_header1.
APPEND lwa_list_top1 TO i_list_top1.
* Run date Display
lwa_list_top1-typ = 'S'. " Item
WRITE: sy-datum TO lv_date1 MM/DD/YYYY.
lwa_list_top1-key = 'Date :'(025).
lwa_list_top1-info = lv_date1.
APPEND lwa_list_top1 TO i_list_top1.
CLEAR: lwa_list_top1,
lv_date1.
* Run time Display
lwa_list_top1-typ = 'S'. " Item
WRITE: sy-uzeit TO lv_time1 USING EDIT MASK '__:__:__'.
lwa_list_top1-key = 'Time :'(026).
lwa_list_top1-info = lv_time1.
APPEND lwa_list_top1 TO i_list_top1.
CLEAR: lwa_list_top1,
lv_time1.
CLEAR lwa_list_top1.
* Company Name
lwa_list_top1-typ = 'S'.
lwa_list_top1-key = lv_text12.
lwa_list_top1-info = lv_butxt.
APPEND lwa_list_top1 TO i_list_top1.
CLEAR lwa_list_top1.
*Open Item As Key Date
lwa_list_top1-typ = 'S'.
lwa_list_top1-key = lv_text11.
lwa_list_top1-info = p_bldat.
APPEND lwa_list_top1 TO i_list_top1.
CLEAR lwa_list_top1.
ENDFORM. " f_build_header_list1
*&---------------------------------------------------------------------*
*& Form f_build_sort
*&---------------------------------------------------------------------*
* Set the sorting sequence
*----------------------------------------------------------------------*
FORM f_build_sort .
DATA: l_sort TYPE slis_sortinfo_alv.
l_sort-spos = '1'.
l_sort-fieldname = 'LIFNR'.
l_sort-up = abap_true.
l_sort-group = '*'.
* l_sort-subtot = 'X'.
APPEND l_sort TO i_sort.
ENDFORM. " f_build_sort
*&---------------------------------------------------------------------*
*& Form f_list_display
*&---------------------------------------------------------------------*
* Display the ALV list report
*----------------------------------------------------------------------*
* -->PT_DATA Internal table containing the data
*----------------------------------------------------------------------*
FORM f_list_display TABLES pt_data.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_variant-report
is_layout = i_layout
it_fieldcat = i_fieldcat[]
it_sort = i_sort
i_default = 'X'
i_save = 'A'
is_variant = i_variant
it_events = i_events[]
is_print = i_print
TABLES
t_outtab = pt_data.
ENDFORM. "f_list_display
*&---------------------------------------------------------------------*
*& Form f_list_display
*&---------------------------------------------------------------------*
* Display the ALV list report
*----------------------------------------------------------------------*
* -->PT_DATA Internal table containing the data
*----------------------------------------------------------------------*
FORM f_list_display1 .
*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = i_variant1-report
* is_layout = i_layout1
* it_fieldcat = i_fieldcat1[]
* it_sort = i_sort1
* i_default = 'X'
* i_save = 'A'
* is_variant = i_variant1
* it_events = i_events1[]
* is_print = i_print1
* TABLES
* t_outtab = tg_data[].
*
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = i_variant-report
* is_layout = i_layout
* it_fieldcat = i_fieldcat1[]
* it_sort = i_sort
* i_default = 'X'
* i_save = 'A'
* is_variant = i_variant
* it_events = i_events[]
* is_print = i_print
* TABLES
* t_outtab = pt_data.
ENDFORM. "f_list_display
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
* TOP_OF_PAGE Event
*----------------------------------------------------------------------*
FORM top_of_page. "#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top
i_alv_form = 'X'.
* PERFORM f_print_header USING SPACE SPACE SPACE.
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form top_of_page1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page1. "#EC CALLED
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
** i_logo = 'ZLOGO_BAB'
* it_list_commentary = i_list_top1
* i_alv_form = 'X'.
*
* PERFORM f_print_header USING SPACE SPACE SPACE.
ENDFORM. "TOP_OF_PAGE1
*&---------------------------------------------------------------------*
*& Form END_OF_PAGE
*&---------------------------------------------------------------------*
* END_OF_PAGE Event
*----------------------------------------------------------------------*
FORM end_of_page. "#EC CALLED
* DATA: l_pos(3) TYPE n VALUE 0,
* l_foot(30) VALUE '*** END OF PAGE ***'.
* l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
* ULINE.
* WRITE: /, AT l_pos l_foot.
ENDFORM. "END_OF_PAGE
*&---------------------------------------------------------------------*
*& Form END_OF_LIST
*&---------------------------------------------------------------------*
* END_OF_LIST Event
*----------------------------------------------------------------------*
FORM end_of_list. "#EC CALLED
* DATA: l_pos(3) TYPE n VALUE 0,
* l_foot(30) VALUE '*** END OF REPORT ***'.
* l_pos = ( sy-linsz / 2 ) - ( STRLEN( l_foot ) / 2 ).
* ULINE.
* WRITE: /, AT l_pos l_foot.
ENDFORM. "END_OF_LIST
*&---------------------------------------------------------------------*
*& Form f_print_header
*&---------------------------------------------------------------------*
* Print the header (Top-Of-Page)
*----------------------------------------------------------------------*
* -->P_P_TITLE1 Title text 1
* -->P_P_TITLE2 Title text 2
* -->P_P_TITLE3 Title text 3
*----------------------------------------------------------------------*
FORM f_print_header USING p_title1 LIKE sy-title
p_title2 LIKE sy-title
p_title3 LIKE sy-title.
DATA: l_post1 TYPE i,
l_post2 TYPE i,
l_post3 TYPE i,
l_posin TYPE i.
l_post1 = ( sy-linsz / 2 ) - ( STRLEN( p_title1 ) / 2 ).
l_post2 = ( sy-linsz / 2 ) - ( STRLEN( p_title2 ) / 2 ).
l_post3 = ( sy-linsz / 2 ) - ( STRLEN( p_title3 ) / 2 ).
l_posin = sy-linsz - 17.
WRITE: / 'Report :', sy-cprog.
WRITE AT l_post1 p_title1.
WRITE AT l_posin 'Date :'.
WRITE sy-datum.
WRITE: / 'Cli/Sys :', sy-mandt, '/', sy-sysid.
WRITE AT l_post2 p_title2.
WRITE AT: l_posin 'Time :'.
WRITE sy-uzeit.
WRITE: / 'UserID :', sy-uname.
WRITE AT l_post3 p_title3.
WRITE AT l_posin 'Page :'.
WRITE sy-pagno NO-ZERO.
ENDFORM. " f_print_header
*&---------------------------------------------------------------------*
*& Form f_build_sort1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_build_sort1 .
DATA: l_sort1 TYPE slis_sortinfo_alv.
l_sort1-spos = '1'.
l_sort1-fieldname = 'LIFNR'.
l_sort1-up = abap_true.
* l_sort1-group = '*'.
l_sort1-subtot = 'X'.
APPEND l_sort1 TO i_sort1.
* l_sort-spos = '2'.
* l_sort-fieldname = 'NAME1'.
* l_sort-up = abap_true.
* l_sort-group = '*'.
** l_sort-subtot = 'X'.
* APPEND l_sort TO i_sort.
* l_sort-spos = '3'.
* l_sort-fieldname = 'DMBTR'.
* l_sort-up = abap_true.
* l_sort-group = '*'.
* l_sort-subtot = 'X'.
* APPEND l_sort TO i_sort.
ENDFORM. " f_build_sort1
*&---------------------------------------------------------------------*
*& Form f_eventtab_build1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_eventtab_build1 .
DATA: ls_event1 TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events1.
READ TABLE i_events1 WITH KEY name = slis_ev_top_of_page
INTO ls_event1.
IF sy-subrc = 0.
MOVE v_top1 TO: ls_event1-form,
ls_event1-name.
APPEND ls_event1 TO i_events1.
ENDIF.
READ TABLE i_events1 WITH KEY name = slis_ev_end_of_page
INTO ls_event1.
IF sy-subrc = 0.
MOVE v_eop1 TO: ls_event1-form,
ls_event1-name.
APPEND ls_event1 TO i_events1.
ENDIF.
READ TABLE i_events1 WITH KEY name = slis_ev_end_of_list
INTO ls_event1.
IF sy-subrc = 0.
MOVE v_eol1 TO: ls_event1-form,
ls_event1-name.
APPEND ls_event1 TO i_events1.
ENDIF.
READ TABLE i_events1 WITH KEY name = slis_ev_top_of_list
INTO ls_event1.
IF sy-subrc = 0.
MOVE v_tol1 TO: ls_event1-form,
ls_event1-name.
APPEND ls_event1 TO i_events1.
ENDIF.
ENDFORM. " f_eventtab_build1
*&---------------------------------------------------------------------*
*& Form f_layout_init1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_layout_init1 .
* P_layout-min_linesize = 170.
* p_layout-max_linesize = 170.
* P_layout-no_colhead = abap_true.
* p_layout-detail_popup = abap_true.
i_layout1-colwidth_optimize = abap_true.
i_layout1-zebra = abap_true.
* i_layout-subtotals_text = 'SubTotal'.
* i_layout-totals_text = 'Total'.
ENDFORM. " f_layout_init1
*&---------------------------------------------------------------------*
*& Form f_print_control1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_print_control1 .
* i_print-no_print_listinfos = abap_true.
* i_print-no_print_selinfos = abap_true.
* i_print-reserve_lines = 2.
* i_print-no_change_print_params = abap_true.
ENDFORM. " f_print_control1
‎2008 Jul 10 5:25 AM
hi,
i am trying to do it,but it is not working. can i have your email id so that if i am able to complete it ,i i wll send u the code for it.
‎2008 Jul 10 5:33 AM
Hi,
In yur from FORM top_of_page.
this Automatically tigger when u call alv grid or list function
module. u cant change the form name. So u give code like below.
&----
*& Form TOP_OF_PAGE
&----
* TOP_OF_PAGE Event
----
FORM top_of_page.
"#EC CALLED
if p_detail = 'X'.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top
i_alv_form = 'X'.
else.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ZLOGO_BAB'
it_list_commentary = i_list_top1
i_alv_form = 'X'.
endif.
* PERFORM f_print_header USING SPACE SPACE SPACE.
ENDFORM. "TOP_OF_PAGE
Reward if useful...
Thanks,
Durai.V
‎2008 Jul 10 6:14 AM
Hi Durai,
Awesome answer . Its Done but after the output when i go back a blank page is coming. Can u solve this.
Regards
Sunita.
‎2008 Jul 10 8:07 AM
Hi Sunita,
Remove the SKIP from your perform data_retrival.
SKIP only using in WRITE statement only.
and
Comment.
form f_print_header using p_title1 like sy-title
p_title2 like sy-title
p_title3 like sy-title.
Now it will work fine.
Reward if usefull...
Thanks,
Durai.V
Edited by: Durai V on Jul 10, 2008 9:08 AM
Edited by: Durai V on Jul 10, 2008 9:15 AM