Skip to Content
author's profile photo Former Member
Former Member

ALV

Hi,

How to handle the TOP OF PAGE and END OF PAGE events in ALV Grid Control.

Regards,

Srinu.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Oct 01, 2006 at 08:49 PM

    If you using the function module to display the ALV..Pass the events in the parameters IT_EVENTS to the function module...

    You can get the events using the function module REUSE_ALV_EVENTS_GET..

    Then add the event name and the form name to the internal table T_EVENTS and pass in the parameters IT_EVENTS...

    THanks,

    Naren

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 01, 2006 at 09:09 PM

    Hi,

    Check this sample code..

    TYPE-POOLS: slis.

    DATA: BEGIN OF itab OCCURS 0,

    vbeln TYPE vbeln,

    END OF itab.

    DATA: BEGIN OF itab1 OCCURS 0,

    vbeln TYPE vbeln,

    posnr TYPE posnr,

    netpr TYPE netpr,

    matnr TYPE matnr,

    END OF itab1.

    DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.

    DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

    s_fieldcatalog-col_pos = '1'.

    s_fieldcatalog-fieldname = 'VBELN'.

    s_fieldcatalog-tabname = 'ITAB1'.

    s_fieldcatalog-rollname = 'VBELN'.

    APPEND s_fieldcatalog TO t_fieldcatalog.

    s_fieldcatalog-col_pos = '2'.

    s_fieldcatalog-fieldname = 'POSNR'.

    s_fieldcatalog-tabname = 'ITAB1'.

    s_fieldcatalog-rollname = 'POSNR'.

    APPEND s_fieldcatalog TO t_fieldcatalog.

    CLEAR: s_fieldcatalog.

    s_fieldcatalog-col_pos = '3'.

    s_fieldcatalog-fieldname = 'NETPR'.

    s_fieldcatalog-tabname = 'ITAB1'.

    s_fieldcatalog-rollname = 'NETPR'.

    s_fieldcatalog-do_sum = 'X'.

    APPEND s_fieldcatalog TO t_fieldcatalog.

    CLEAR: s_fieldcatalog.

    s_fieldcatalog-col_pos = '4'.

    s_fieldcatalog-fieldname = 'MATNR'.

    s_fieldcatalog-tabname = 'ITAB1'.

    s_fieldcatalog-rollname = 'MATNR'.

    s_fieldcatalog-ref_tabname = 'MARA'.

    s_fieldcatalog-ref_fieldname = 'MATNR'.

    s_fieldcatalog-edit = 'X'.

    s_fieldcatalog-input = 'X'.

    APPEND s_fieldcatalog TO t_fieldcatalog.

    DATA: s_layout TYPE slis_layout_alv.

    s_layout-subtotals_text = 'SUBTOTAL TEXT'.

    s_layout-key_hotspot = 'X'.

    SELECT vbeln UP TO 10 ROWS

    FROM

    vbak

    INTO TABLE itab.

    IF NOT itab[] IS INITIAL.

    SELECT vbeln posnr netpr matnr

    FROM vbap

    INTO TABLE itab1

    FOR ALL ENTRIES IN itab

    WHERE vbeln = itab-vbeln.

    ENDIF.

    DATA: v_repid TYPE syrepid.

    v_repid = sy-repid.

    DATA: t_events TYPE slis_t_event.

    DATA: s_events TYPE slis_alv_event.

    s_events-name = 'TOP_OF_PAGE'.

    s_events-form = 'FORM_TOP_OF_PAGE'.

    APPEND s_events TO t_events.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    i_callback_program = v_repid

    it_fieldcat = t_fieldcatalog

    it_events = t_events

    TABLES

    t_outtab = itab1

    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 FORM_TOP_OF_PAGE *

    ----


    • ........ *

    ----


    FORM form_top_of_page.

    DATA: ref TYPE REF TO cl_dd_document.

    CREATE OBJECT ref.

    DATA: ld_logo TYPE sdydo_value.

    DATA: gt_header TYPE slis_t_listheader WITH HEADER LINE.

    MOVE: 'H' TO gt_header-typ,

    'Alv report' TO gt_header-info.

    APPEND gt_header.

    EXPORT it_list_commentary FROM gt_header

    i_logo FROM ld_logo

    TO MEMORY ID 'DYNDOS_FOR_ALV'.

    CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'

    EXPORTING

    document = ref

    bottom = ''

    • IMPORTING

    • LENGTH =

    .

    Thanks,

    Naren

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 01, 2006 at 09:20 PM

    Hi,

    Try this example..

    an event table, which are used for firing both user commands and the system dependent events i.e. top of page, end of page etc.

    A list of possible events is populated into an event table (I_EVENTS) when this table is passed to the function module REUSE_ALV_EVENT_NAMES_GET. The return table from this function module contains all the possible events.

    The function module contains following import and export parameters.

    IMPORTING PARAMETERS: I_LIST_TYPE

    This parameter has possible values from 0-4.

    The parameter I_LIST_TYPE is of TYPE SLIS_LIST_TYPE and is DEFAULT 0 .

    EXPORTING PARAMETERS: I_EVENTS table.

    This table is of TYPE SLIS_T_EVENT and returns to the program the name of all the possible events.

    The table structure contains the fields:

    I_EVENTS-NAME: Name of the Callback event.

    I_EVENTS-FORM: Name of the form routine that should be called in the calling program at the event.

    Only events with a form routine name are processed.

    The I_EVENTS table returns with the following possible constants:

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

    FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

    FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE', FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

    DATA: L_I_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 L_I_EVENT.

    IF SY-SUBRC = 0.

    MOVE FORMNAME_TOP_OF_PAGE TO L_I_EVENT-FORM.

    APPEND L_I_EVENT TO I_EVENTS.

    ENDIF.

    READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE

    INTO L_I_EVENT.

    IF SY-SUBRC = 0.

    MOVE FORMNAME_END_OF_PAGE TO L_I_EVENT-FORM.

    APPEND L_I_EVENT TO I_EVENTS.

    ENDIF.

    CLEAR L_I_EVENT.

    READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND

    INTO L_I_EVENT.

    IF SY-SUBRC = 0.

    MOVE FORMNAME_USER_COMMAND TO L_I_EVENT-FORM.

    APPEND L_I_EVENT TO I_EVENTS.

    ENDIF.

    Hope this helps you.

    Regards

    Madhavi.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.