on 01-21-2008 10:18 AM
Hi all,
how to trigger top-of-page event in alv report?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
pls refer this program for TOP-OF-PAGE event.....
BALVHD01
or pls copy paste in se38 and debug the program where is TOP-OF-PAGE is trigger
&----
*& Report Z50818_ALV_EVENTS
*&
&----
REPORT z50818_alv_events.
*tables: customer table
======================================================================
TABLES
======================================================================
TABLES: kna1.
TYPE-POOLS: slis.
======================================================================
SELECTION-SCREEN.
======================================================================
SELECT-OPTIONS : s_kunnr FOR kna1-kunnr.
PARAMETERS: p_vari TYPE slis_vari.
======================================================================
DATA
======================================================================
DATA: BEGIN OF it_alv_data OCCURS 0,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
name2 LIKE kna1-name2,
ort01 LIKE kna1-ort01,
pstlz LIKE kna1-pstlz,
regio LIKE kna1-regio,
sortl LIKE kna1-sortl,
END OF it_alv_data,
wa_alv_data LIKE LINE OF it_alv_data,
lv_kunnr LIKE kna1-kunnr,
it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat,
usercommand TYPE slis_formname VALUE 'USER_COMMAND'.
DATA: it_events TYPE slis_t_event,
wa_events LIKE LINE OF it_events.
RANGES: r_kunnr FOR kna1-kunnr,
r_kunnr1 FOR kna1-kunnr.
DATA: BEGIN OF it_alv_data1 OCCURS 0,
kunnr LIKE kna1-kunnr,
ort01 LIKE kna1-ort01,
END OF it_alv_data1,
wa_alv_data1 LIKE LINE OF it_alv_data1,
it_fieldcat1 TYPE slis_t_fieldcat_alv,
wa_fieldcat1 LIKE LINE OF it_fieldcat1.
DATA: it_sort TYPE slis_t_sortinfo_alv,
wa_sort LIKE LINE OF it_sort.
data: IS_VARIANT LIKE DISVARIANT,
ES_VARIANT LIKE DISVARIANT ,
ES_VARIANT1 LIKE DISVARIANT .
======================================================================
AT SELECTION-SCREEN
======================================================================
AT SELECTION-SCREEN ON value-request for p_vari.
perform f4_variant.
======================================================================
Initialization
======================================================================
INITIALIZATION.
perform initialize_variant.
*s_kunnr-sign = 'I'.
*s_kunnr-option = 'BT'.
*s_kunnr-low = 150.
*s_kunnr-high = 200.
*APPEND S_KUNNR.
*
*s_kunnr-sign = 'E'.
*s_kunnr-option = 'BT'.
*s_kunnr-low = 160.
*s_kunnr-high = 170.
*APPEND S_KUNNR.
*
*s_kunnr-sign = 'I'.
*s_kunnr-option = 'BT'.
*s_kunnr-low = 300.
*s_kunnr-high = 350.
*APPEND S_KUNNR.
r_kunnr-sign = 'I'.
r_kunnr-option = 'BT'.
r_kunnr-low = 150.
r_kunnr-high = 200.
APPEND r_kunnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_RANGE_I'
EXPORTING
input = lv_kunnr
IMPORTING
output = lv_kunnr
TABLES
range_int = r_kunnr1
range_ext = r_kunnr.
START-OF-SELECTION.
PERFORM display.
*
SELECT
kunnr
land1
name1
name2
ort01
pstlz
regio
sortl UP TO 20 ROWS
INTO TABLE it_alv_data
FROM kna1
WHERE kunnr IN r_kunnr1.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'IT_ALV_DATA'
I_STRUCTURE_NAME = 'WA_ALV_DATA'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
CHANGING
ct_fieldcat = it_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 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.
PERFORM modify_fieldcat.
wa_events-name = slis_ev_user_command.
wa_events-form = 'USER_COMMAND'.
APPEND wa_events TO it_events .
CLEAR wa_events.
*
wa_events-name = slis_ev_pf_status_set.
wa_events-form = 'PF_STATUS_SET'.
APPEND wa_events TO it_events .
CLEAR wa_events.
wa_events-name = slis_ev_top_of_page.
wa_events-form = 'FAREEDA'.
APPEND wa_events TO it_events .
CLEAR wa_events.
wa_sort-spos = 1.
wa_sort-fieldname = 'ORT01'.
wa_sort-tabname = 'IT_ALV_DATA'.
wa_sort-down = 'X'.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
wa_sort-spos = 2.
wa_sort-fieldname = 'KUNNR'.
wa_sort-tabname = 'IT_ALV_DATA'.
wa_sort-up = 'X'.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_STATUS'
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'WA_ALV_DATA'
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
i_save = 'A'
IS_VARIANT = eS_VARIANT
it_events = it_events[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = SY-REPID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_alv_data[]
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.
&----
*& Form modify_fieldcat
&----
text
----
FORM modify_fieldcat .
LOOP AT it_fieldcat INTO wa_fieldcat.
CASE wa_fieldcat-fieldname.
WHEN 'KUNNR'.
wa_fieldcat-seltext_s = 'Column1'.
wa_fieldcat-seltext_m = 'Column1'.
wa_fieldcat-seltext_l = 'Column1'.
wa_fieldcat-reptext_ddic = 'Column1'.
ENDCASE.
MODIFY it_fieldcat FROM wa_fieldcat.
ENDLOOP.
ENDFORM. " modify_fieldcat
&----
*& Form user_command
&----
text
----
-->RF_UCOMM text
-->RS_SELFIELD text
----
FORM user_command USING rf_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: w_message(40).
DATA: lv_kunnr1 TYPE kna1-kunnr.
.
CASE rf_ucomm.
WHEN '&IC1'.
CASE rs_selfield-fieldname.
WHEN 'KUNNR'.
CLEAR w_message.
CONCATENATE 'The Customer' rs_selfield-value 'is selected'
INTO w_message SEPARATED BY space.
MESSAGE w_message TYPE 'I'.
CLEAR lv_kunnr.
lv_kunnr = rs_selfield-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_kunnr1
IMPORTING
output = lv_kunnr1.
CLEAR wa_alv_data.
REFRESH it_alv_data1.
READ TABLE it_alv_data INTO wa_alv_data
WITH KEY kunnr = lv_kunnr1.
IF sy-subrc = 0.
wa_alv_data1-kunnr = wa_alv_data-kunnr.
wa_alv_data1-ort01 = wa_alv_data-ort01.
APPEND wa_alv_data1 TO it_alv_data1.
CLEAR wa_alv_data1.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'IT_ALV_DATA1'
I_STRUCTURE_NAME = 'WA_ALV_DATA'
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = sy-repid
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
CHANGING
ct_fieldcat = it_fieldcat1
EXCEPTIONS
inconsistent_interface = 1
program_error = 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 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_STATUS'
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'WA_ALV_DATA'
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fieldcat1
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = ES_VARIANT
it_events = it_events[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = SY-REPID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_alv_data1
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.
WHEN 'ORT01'.
CLEAR w_message.
CONCATENATE 'The City' rs_selfield-value 'is selected'
INTO w_message SEPARATED BY space.
MESSAGE w_message TYPE 'I'.
WHEN 'LAND1'.
CLEAR w_message.
CONCATENATE 'The Country' rs_selfield-value 'is selected'
INTO w_message SEPARATED BY space.
MESSAGE w_message TYPE 'I'.
WHEN OTHERS.
MESSAGE 'USER COMMAND EXECUTES SUCCESSFULLY' TYPE 'I'.
ENDCASE.
MESSAGE 'USER COMMAND EXECUTES SUCCESSFULLY' TYPE 'I'.
ENDCASE.
ENDFORM. "user_command
&----
*& Form PF_STATUS_SET
&----
text
----
-->EXTAB text
----
FORM pf_status_set USING extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' EXCLUDING extab.
ENDFORM. "PF_STATUS_SET
&----
*& Form FAREEDA
&----
text
----
FORM fareeda.
DATA: it_list_commentary TYPE slis_t_listheader,
wa_list_commentary LIKE LINE OF it_list_commentary.
wa_list_commentary-typ = 'H'.
wa_list_commentary-info = 'THIS IS HEADING'.
APPEND wa_list_commentary TO it_list_commentary.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_commentary
i_logo = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = I_END_OF_LIST_GRID
I_ALV_FORM = I_ALV_FORM
.
ENDFORM. "FAREEDA
form f4_variant.
is_variant-REPORT = sy-repid.
is_variant-USERNAME = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = is_variant
I_TABNAME_HEADER = I_TABNAME_HEADER
I_TABNAME_ITEM = I_TABNAME_ITEM
IT_DEFAULT_FIELDCAT = IT_DEFAULT_FIELDCAT
I_SAVE = 'A'
I_DISPLAY_VIA_GRID = ' '
IMPORTING
E_EXIT = E_EXIT
ES_VARIANT = ES_VARIANT
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 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.
p_vari = es_variant-variant.
endform.
form initialize_variant.
es_variant1-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = 'A'
CHANGING
cs_variant = ES_VARIANT1
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
PROGRAM_ERROR = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
p_vari = es_variant1-variant.
endform.
pls reward points if useful. dont forget.....
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Firstly,
Declare an eventcat for it,
DATA: I_EVENTCAT TYPE SLIS_T_EVENT.
then,
PERFORM Z_EVENTCAT USING I_EVENTCAT.
form eventcat
-->P_I_EVENTCAT text
----
FORM Z_EVENTCAT USING P_I_EVENTCAT TYPE SLIS_T_EVENT.
DATA: I_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_I_EVENTCAT
EXCEPTIONS
LIST_TYPE_WRONG = 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.
CLEAR I_EVENT.
READ TABLE P_I_EVENTCAT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO
I_EVENT.
IF SY-SUBRC = 0.
MOVE 'TOP_OF_PAGE' TO I_EVENT-FORM.
APPEND I_EVENT TO P_I_EVENTCAT.
ENDIF.
READ TABLE P_I_EVENTCAT WITH KEY NAME = SLIS_EV_PF_STATUS_SET INTO I_EVENT.
IF SY-SUBRC = 0.
MOVE 'SET_PF_STATUS' TO I_EVENT-FORM.
APPEND I_EVENT TO P_I_EVENTCAT.
ENDIF.
CLEAR I_EVENT.
READ TABLE P_I_EVENTCAT INTO I_EVENT WITH KEY NAME = SLIS_EV_USER_COMMAND .
IF SY-SUBRC = 0.
MOVE 'USER_COMMAND' TO I_EVENT-FORM.
APPEND I_EVENT TO P_I_EVENTCAT.
ENDIF.
FORM Z_DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_PROGNAME
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = V_GRIDTITLE
I_SAVE = 'A'
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_SORT = I_SORTINFO
IT_EVENTS = I_EVENTCAT
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
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. " Z_DISPLAY
FORM Z_GRIDTITLE .
V_GRIDTITLE = 'ALV FOR SALES ORDER DISPLAY'.
ENDFORM. " Z_GRIDTITLE
*TOP OF PAGE.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER.
ENDFORM. "TOP_OF_PAGE
*MENU SETTINGS.
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV_MENU'.
ENDFORM. "SET_PF_STATUS
Regards,
Pritha
Regards points if helpful.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ram,
we have to pass top-of-page event to i_event internal table and write special Form for that top-of-page by using REUSE_ALV_COMMENTARY_WRITE Function module,,,
Regards,
Kumar.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
when ever a new page starts in the output the top of page will trigger
Check this.
http://www.sap-img.com/abap/sample-alv-heading-in-alv.htm
Reward points if useful.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.