Saturday, March 26, 2011

Event in ABAP Report


Event in ABAP report determine process flow of a program. The events are triggered depended on the way the output is generated. They begin after event keyword and end when the next event reached.

Event keyword:

INITIALIZATION.

Occurs when report initialized.
We can use it to check user authorization or prepare output for selection screen.



AT SELECTION-SCREEN OUTPUT :

Occurs each time selection screen about to generated.
We can use it to modify selection screen, for example hide / unhide parameter.

AT SELECTION-SCREEN.

Occurs each user command in selection screen. we can use it to perform checking on user input.

START-OF-SELECTION

Occurs after the standard selection screen has been processed.,
data is read in this event.

END-OF-SELECTION

Occurs after start-of-selection.

TOP-OF-PAGE

Occurs when a new page starts.
Use it for write report header.

END-OF-PAGE

Occurs when a page ends.
Use it for write report footer.

AT LINE-SELECTION

Occurs when the user double-click on report.

AT USER-COMMAND

Occurs when the user push toolbar button.

This is program to demonstrate how to use event properly.


    REPORT ZAALGAL0008
    LINE-COUNT 10(1).

    TABLES: sflight.

    DATA: BEGIN OF t_report OCCURS 3,
    carrid LIKE sflight-carrid,
    connid LIKE sflight-connid,
    END OF t_report.

    *begin selection screen

    PARAMETERS p_datum LIKE sy-datum.
    PARAMETERS p_check AS CHECKBOX.

    *end selection screen

    INITIALIZATION.

    *begin initialization

    MOVE sy-datum TO p_datum.

    *end initialization

    AT SELECTION-SCREEN.
    *begin at selection-screen
    MESSAGE I888(sabapdocu) WITH 'At selection-screen'.
    IF p_check = 'X'.
    MESSAGE E888(sabapdocu) WITH 'Clear checkbox'.
    ENDIF.
    *end at selection-screen

    AT SELECTION-SCREEN OUTPUT.
    *begin at selection-screen output
    MESSAGE I888(sabapdocu) WITH 'At selection-screen output'.
    *end at selection-screen output

    START-OF-SELECTION.
    *begin start-of-selection.
    MESSAGE I888(sabapdocu) WITH 'start-of-selection'.
    SELECT * FROM sflight.
    MOVE sflight-carrid TO t_report-carrid.
    MOVE sflight-connid TO t_report-connid.
    APPEND t_report.
    ENDSELECT.
    *end start-of-selection.

    END-OF-SELECTION.
    *begin end-of-selection.
    MESSAGE I888(sabapdocu) WITH 'end-of-selection'.
    FORMAT COLOR col_normal.
    DO 30 TIMES.
    LOOP AT t_report.
    WRITE / t_report-carrid.
    WRITE t_report-connid.
    ENDLOOP.
    ENDDO.
    *end end-of-selection.

    TOP-OF-PAGE.
    FORMAT COLOR col_heading.
    WRITE 'This is header'.

    END-OF-PAGE.
    FORMAT COLOR col_total.
    WRITE 'This is footer'.

    AT LINE-SELECTION.
    WRITE: / 'Cursor Row:', sy-curow.
    WRITE: / 'Cursor Col:', sy-cucol.

No comments:

Post a Comment