Quick Contact

    SAP Tutorial
    Sap FI

    Reports of SAP ABAP

    Classical Reports

    Classical Reports are reports which contain both selection-screen and output screen.SAP ABAP is an event driven programming language, ABAP programs executed based on events not line-by-line.

    Events in Classical Reports

    Below are the list and sequence of events available under classical reports, each event has it`s own importance .

    Load-of-praogram

    This event is used to load program into memory for execution and this is the first event in execution sequence.

    Initialization

    This event is used to initialize variables, screen default values and other default actions.

    At Selection-Screen output

    By using this event we can manipulate dynamic selection-screen changes.

    At Selection-Screen on field

    This event is used to validate a single selection-screen input parameter.

    Syntax: AT SELECTION-SCREEN ON < parameter name>. “Validate a input parameter

    At Selection-Screen on value request

    This event is used to provide value help ( field help ) for a input field.

    Syntax: AT SELECTION-SCREEN ON VALUE REQUEST FOR < parameter name>. “Input search help for a input parameters

    At Selection-Screen on help request

    By using this event we can provide F1 help for a input field.

    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

    Syntax: AT SELECTION-SCREEN . “used to validate multiple input fields

    Start-of-Selection

    This is default event which is used to write actual business logic.

    Syntax: START-OF-SELECTION. “Default event

    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 .

    Syntax: END-OF-SELECTION . “Start of selection is ended

    Top-of-Page

    This event prints constant heading for all pages.

    Syntax: TOP-OF-PAGE.”Page heading

    End-of-Page

    This event prints constant footer for all pages.

    Before using this event, we need to reserve some lines for displaying footer.

    Syntax: END-OF-PAGE . “Page footer

    Example: REPORT ZPROGRAM LINE-COUNT 27(3). ” Here we reserve 3 lines for footer

    Classical Report using all events

    Develop a Classical Report to display list of materials for a material input range(select-Options) and for a material type (screen input) with validations, search help and value help, the report can be able to download into excel sheet.

    Input elements :

    Select-options for matnr ( material no for MARA table), parameter mtart( Material type from MARA), a check box and a parameter limit for limiting no of results.

    Whenever we click on download data, select file to download field will be enabled otherwise this should be disabled.

    REPORT ZSAPN_CLASSICAL_REPORT LINE-COUNT 34(2). “34 lines are for report space and 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. "materialout put internal table
    DATA:  WA_MARA TYPE TY_MARA. " work area
    
    DATA: LV_MTART TYPE MARA-MTART.
    DATA: LV_START_TIME TYPE SY-UZEIT.
    DATA: LV_END_TIME TYPE SY-UZEIT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. "designs a block just for design double click on TEXT-001 to add text
    
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. " Material range input
    PARAMETERS: P_MTART TYPE MARA-MTART. "material type input
    
    SELECTION-SCREEN END OF BLOCK B1.
    PARAMETERS  P_DLOAD AS CHECKBOX USER-COMMAND UC1.
    PARAMETERS  P_FILE TYPE RLGRAP-FILENAME MODIF ID DLD.
    PARAMETERS P_LIMIT TYPE I. "Limit no of rows to display to avoid the burden on database
    
    LOAD-OF-PROGRAM. "loads program into memory
      LV_START_TIME = SY-UZEIT. " see system variables www.sapnuts.com/resourse/system-variable.html
    
    INITIALIZATION. "triggers second
      P_MTART = 'FERT'. "MATERIAL TYPE DEFAULT VALUE
      P_LIMIT = '50'. "Limit rows to 50
    
    AT SELECTION-SCREEN OUTPUT. "For dynamic modifications
      IF P_DLOAD IS INITIAL.
        LOOP AT SCREEN.
          CHECK SCREEN-GROUP1 = 'DLD'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    

    AT SELECTION-SCREEN ON P_MTART. ” Validate single input field at selection-screen is an alternative and good see http://www.sapnuts.com/courses/core-abap/classical-reports/selection-screen-event.html

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MTART. “This event is not required here will use in the next lesson

      PERFORM MTART_VALUE_HELP.
    
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
      PERFORM FILE_VALUE_HELP.
    

    AT SELECTION-SCREEN ON HELP-REQUEST FOR P_MTART. ” Provide help request F1 help.

      PERFORM MTART_HELP.
    
    
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_INPUTS.
    
    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.
    
        MESSAGE 'Please enter required inputs' TYPE 'E'.
    
      ELSE.
    
    ***Validate material type is valid or not
        SELECT MTART FROM MARA INTO LV_MTART
           UP TO 1 ROWS WHERE MTART = P_MTART.
        ENDSELECT.
        IF LV_MTART IS INITIAL.
          MESSAGE 'Material type is not available in MARA' TYPE 'E'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_INPUTS
    
    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.
    
    ENDFORM.                    " GET_MATERIALS
    
    FORM DISPLAY_OUTPUT .
      IF IT_MARA IS NOT INITIAL.
        LOOP AT IT_MARA INTO WA_MARA.
    

    WRITE :/ WA_MARA-MATNR, WA_MARA-ERSDA, WA_MARA-MTART, WA_MARA-MBRSH, WA_MARA-MATKL, WA_MARA-MEINS .

        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.
    
    ENDFORM.                    " DOWNLOAD_DATA
    
    FORM FILE_VALUE_HELP.
    
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          FIELD_NAME = 'P_FILE'
        IMPORTING
          FILE_NAME  = P_FILE.
    ENDFORM.                    " FILE_VALUE_HELP
    

     

    Apply now for Advanced SAP Course

    Copyright 1999- Ducat Creative, All rights reserved.

    Anda bisa mendapatkan server slot online resmi dan terpercaya tentu saja di sini. Sebagai salah satu provider yang menyediakan banyak pilihan permainan.