Events in Classical Reports: Load-Of-Praogram
Events in Classical Reports: Load-Of-Praogram
screen.
SAP ABAP is an event driven programming language, ABAP programs executed
based on events not line-by-line.
Syntax: AT SELECTION-SCREEN ON HELP REQUEST FOR <parameter name>. "Input (F1) help
for a input parameters
At Selection-Screen
This event is used to validate multiple input fields
Start-of-Selection
This is default event which is used to write actual business logic.
End-of-Selection
We can use this event just to state that start-of-selection is ended, this event is used with
logical databases, logical databases are in HR ABAP only. In normal ABAP we don`t
have much importance .
Top-of-Page
This event prints constant heading for all pages.
End-of-Page
This event prints constant footer for all pages.
Before using this event, we need to reserve some lines for displaying footer.
REPORT ZSAPN_CLASSICAL_REPORT LINE-COUNT 34(2). "34 lines are for report space an
d 2 lines are for footer space
TABLES : MARA.
TYPES: BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MATKL TYPE MARA-MATKL,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
DATA: IT_MARA TYPE TABLE OF TY_MARA. "material out put internal table
DATA: WA_MARA TYPE TY_MARA. " work area
START-OF-SELECTION.
PERFORM GET_MATERIALS.
END-OF-SELECTION.
LV_END_TIME = SY-UZEIT.
PERFORM DISPLAY_OUTPUT.
IF P_DLOAD = 'X'.
PERFORM DOWNLOAD_DATA.
ENDIF.
TOP-OF-PAGE.
WRITE: 'Material Details ' COLOR 2.
END-OF-PAGE.
WRITE:'The above materials are active materials available in database' COLOR 3.
WRITE: 'Start time'.
WRITE: LV_START_TIME.
WRITE: 'End time'.
WRITE: LV_END_TIME.
FORM VALIDATE_INPUTS.
IF S_MATNR IS INITIAL OR P_MTART IS INITIAL.
ELSE.
FORM GET_MATERIALS.
SELECT MATNR ERSDA MTART MBRSH MATKL MEINS FROM MARA
INTO TABLE IT_MARA
UP TO P_LIMIT ROWS
WHERE MATNR IN S_MATNR AND MTART = P_MTART.
FORM DISPLAY_OUTPUT .
IF IT_MARA IS NOT INITIAL.
LOOP AT IT_MARA INTO WA_MARA.
ENDLOOP.
ELSE.
WRITE :'No Data Found for your Query'.
ENDIF.
ENDFORM. " DISPLAY_OUTPUT
FORM MTART_HELP.
MESSAGE 'Enter a Material Type ' TYPE 'I'.
ENDFORM. " MTART_HELP
FORM MTART_VALUE_HELP.
MESSAGE 'Material type input ex: FERT' TYPE 'I'.
ENDFORM. " MTART_VSLUE_HELP
FORM DOWNLOAD_DATA .
DATA : LV_FILE TYPE STRING .
LV_FILE = P_FILE .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
FILENAME = LV_FILE
FILETYPE = 'ASC'
* APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* IMPORTING
* FILELENGTH =
TABLES
DATA_TAB = IT_MARA
* FIELDNAMES =
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* NO_BATCH = 2
* GUI_REFUSE_FILETRANSFER = 3
* INVALID_TYPE = 4
* NO_AUTHORITY = 5
* UNKNOWN_ERROR = 6
* HEADER_NOT_ALLOWED = 7
* SEPARATOR_NOT_ALLOWED = 8
* FILESIZE_NOT_ALLOWED = 9
* HEADER_TOO_LONG = 10
* DP_ERROR_CREATE = 11
* DP_ERROR_SEND = 12
* DP_ERROR_WRITE = 13
* UNKNOWN_DP_ERROR = 14
* ACCESS_DENIED = 15
* DP_OUT_OF_MEMORY = 16
* DISK_FULL = 17
* DP_TIMEOUT = 18
* FILE_NOT_FOUND = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* OTHERS = 22
.
IF SY-SUBRC = 0.
WRITE :/ 'Data downloaded to'.
WRITE:P_FILE.
ENDIF.
FORM FILE_VALUE_HELP.
When ever we check enable input field check box, one input field will be enabled.
REPORT ZSPN_SELECTION_SCREEN_OUTPUT.
PARAMETERS P_ENABLE AS CHECKBOX USER-COMMAND UC1.
PARAMETERS: INPUT(5) TYPE C MODIF ID IN1 . "Based on modif id we will perform dyna
mic operations
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF P_ENABLE = 'X' . " If check box is selected
IF SCREEN-GROUP1 = 'IN1' .
SCREEN-ACTIVE = 1.
MODIFY SCREEN.
ENDIF.
ELSE.
IF SCREEN-GROUP1 = 'IN1' .
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
At selection screen on the field and at selection screen are selection-screen events
which are used for input validations in SAP report programming.
This event is used to validate a single input field. This event is used to validate multiple input
If we this event, if any, error the error field will be By using this event, the error field is heighte
highlighted and the remaining fields will be disabled. all the remaining fields will be enabled.
AT SELECTION-SCREEN. AT SELECTION-S
IF P_FIELD1 IS INITIAL. IF P_FIELD1
MESSAGE 'Please enter field1' TYPE 'E'. MESSAGE 'P
ENDIF. ENDIF.
IF P_FIELD2 IS INITIAL. AT SELECTION-S
MESSAGE 'Please enter field2' TYPE 'E'. IF P_FIELD2
ENDIF. MESSAGE 'P
ENDIF.
After error message both input fields are enabled for input. After error mes
heightened .
Most of the times in real-time business requirements we need to set default values on
selection-screen elements like input fields, check boxes, select-options, radio buttons
etc. We use the initialization event to set default values on selection screen.
REPORT ZSAPN_INITIALIZATION.
TABLES: MARA. "tables decleration for select-options
PARAMETERS : P_INPUT TYPE CHAR20. "Inputfied with 20 character length.
But we need to set default values to the input field, select-options(High, low), check
box(default select), select radio button default.
INITIALIZATION.
S_SO-LOW = '1'.
S_SO-OPTION = 'BT'.
S_SO-SIGN = 'I'.
S_SO-HIGH = '100'.
APPEND S_SO. " append select-options to screen
Set Default values for check box and radio buttons group
Check box and radio buttons store either X or space, X means selected, space means
not selected, use the below code to default check box and radio buttons.
INITIALIZATION.
P_CHK = 'X'.
P_RAD2 = 'X'.
REPORT ZSAPN_INITIALIZATION.
TABLES : MARA. "tables decleration for select-options
PARAMETERS: P_INPUT TYPE CHAR20. "Input fied with 20 character length.
INITIALIZATION.
P_INPUT = 'SAPNuts'.
S_SO-LOW = '1'.
S_SO-OPTION = 'BT'.
S_SO-SIGN = 'I'.
S_SO-HIGH = '100'.
APPEND S_SO.
P_CHK = 'X'.