|
ABAP is an event-driven programming language. The general flow of an ABAP program is controlled by events. These events are defined in an ABAP program using event keywords. All statements between event keywords or between an event keyword and a FORM statement form processing blocks. For clarity of reading code, it is good programming practice to code event processing blocks in the order in which they will be triggered during execution. However, they do not have to be coded in a sequential order. Within an ABAP Processing Block, statements are processed sequentially (top to bottom). Finally, the code in the END-OF-SELECTION processing block is executed. All ABAP statements that are not written as part of a processing block (after an event keyword) or a FORM-ENDFORM block are automatically part of the Start-of Selection processing block if they are coded above all other event keywords or subroutines. Following are the system-triggered events which occur during the run time of a report program . These events are presented in the order in which they are processed. These are called run time events.
Run time Event: Initialization If a report has a selection screen defined (either explicitly or by default through the use of a logical database), the ABAP processor processes the selection screen first. A programmer can execute another block of code before the selection screen by using the event keyword INITIALIZATION. This processing block can be used to define characteristics of the selection screen. Examples include : setting default values on selection fields, setting a title bar, assigning text to push buttons, etc. Run time Event: AT SELECTION-SCREEN AT SELECTION-SCREEN occurs when the user triggers a function code on the selection screen (i.e., by clicking on push-button, hitting a function key, etc.). Checks can be made on selection screen fields and appropriate messages sent back to the user (error, confirmation, warning messages), or the program can be terminated. After the user enters new information, AT SELECTION-SCREEN is triggered again. Run time Event: START-OF-SELECTION START-OF-SELECTION is triggered after the selection screen is processed, and before any GET events or any other event processing blocks. If no event keywords are coded in a report program, the report statement automatically starts START-OF-SELECTION processing (it can be explicitly coded, but need not be). All ABAP statements that are not part of a processing block (after an event keyword) or a FORM-ENDFORM block are automatically part of the START-OF-SELECTION processing block if they are coded above all other event keywords or subroutines. The Syntax Check will offer a warning if it detects that a line of code is inaccessible due to being severed from an event processing block. START-OF-SELECTION can be used to set default values of program-defined variables, or to code WRITE statements to be output to the screen.
Run time Event: GET and GET LATE GET <table> events can only be used for the basic list in an interactive report. The GET event is triggered each time a row is read from a logical database table. The data for this record is loaded into the table work area. A GET event keyword can only be coded once for any one table in the logical database program. The GET <table> LATE event, if coded, occurs just before the next row (record) of the table specified in the GET event is selected from the database. It also occurs after any other GET or GET LATE events for tables lower in the hierarchy of the logical database program. GET event processing requires that the logical database be specified as an attribute of the report program (while in the ABAP Editor, use the menu path Go to -> Attributes).
Run time Event: END-OF-SELECTION END-OF-SELECTION is the last system event to be processed during the runtime of a report program. It occurs after all logical database records have been read, and before any user-invoked events. END-OF-SELECTION occurs only once. The other set of events that occur occur while the ABAP processor is processing the output list of a report program are called output events. Output Event: TOP-OF-PAGE TOP-OF-PAGE is used for page headers on the basic list only. TOP-OF-PAGE is triggered when the system encounters a WRITE, SKIP, or ULINE statement on the basic list. TOP-OF-PAGE occurs the moment the first line of the first page is written to the screen. NEW-PAGE also invokes the TOP-OF-PAGE event. TOP-OF-PAGE DURING LINE-SELECTION allows a programmer to display headers for detail lists (other than the basic list). TOP-OF-PAGE DURING LINE-SELECTION is triggered with a WRITE, SKIP or ULINE statement on a detail list. Output Event: END-OF-PAGE The END-OF-PAGE event is used for page footers. This event is triggered when the system encounters insufficient space on the current output page. The LINE-COUNT statement within the REPORT statement specifies the size of the page area. If a LINE-COUNT is not explicitly coded, the END-OF-PAGE event block will not be processed. Proper usage of LINE-COUNT is to include the number of lines per page, as well as how many lines are reserved for the footer. For example, the following statement will display 50 lines of output, and then 3 lines of footer information. REPORT YPROG LINE-COUNT 53(3).
|