Skip to Content
avatar image
Former Member

Refresh TOP_OF_PAGE of ALV OO

Hi!

There´s a ALV Grid OO with TOP_OF_PAGE.

In TOP_OF_PAGE there is a variable with number of rows of ALV, it´s OK, but if I filter the information I must change the value of this variable.

If I generate all of ALV again changing the variable, the filter is wrong, all of lines appear again.

How can I do that?

Thanks!

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Dec 06, 2007 at 12:09 PM

    The code i used to implement top of page for OO ALV is as below but when you proceed to print out the report, it doesn't print out the header as the list output doesn't show the header.

    REPORT ZTEST1234_ALV_TOP MESSAGE-ID ZZ .

    DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.

    DATA: L_VALID TYPE C,

    V_FLAG,

    V_DATA_CHANGE,

    V_ROW TYPE LVC_S_ROW,

    V_COLUMN TYPE LVC_S_COL,

    V_ROW_NUM TYPE LVC_S_ROID.

    "The Below Definitions Must.....

    DATA:

    • Reference to document

    DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT,

    • Reference to split container

    DG_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,

    • Reference to grid container

    DG_PARENT_GRID TYPE REF TO CL_GUI_CONTAINER,

    • Reference to html container

    DG_HTML_CNTRL TYPE REF TO CL_GUI_HTML_VIEWER,

    • Reference to html container

    DG_PARENT_HTML TYPE REF TO CL_GUI_CONTAINER.

    "up to here

    ----


    • CLASS lcl_event_handler DEFINITION

    ----


    CLASS LCL_EVENT_HANDLER DEFINITION .

    PUBLIC SECTION .

    METHODS:

    **Hot spot Handler

    HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID

    IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,

    **Double Click Handler

    HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID

    IMPORTING E_ROW E_COLUMN ES_ROW_NO,

    TOP_OF_PAGE FOR EVENT TOP_OF_PAGE "event handler

    OF CL_GUI_ALV_GRID

    IMPORTING E_DYNDOC_ID.

    ENDCLASS. "lcl_event_handler DEFINITION

    ----


    • CLASS lcl_event_handler IMPLEMENTATION

    ----


    CLASS LCL_EVENT_HANDLER IMPLEMENTATION.

    *Handle Hotspot Click

    METHOD HANDLE_HOTSPOT_CLICK .

    CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.

    V_ROW = E_ROW_ID.

    V_COLUMN = E_COLUMN_ID.

    V_ROW_NUM = ES_ROW_NO.

    MESSAGE I000 WITH V_ROW 'clicked'.

    ENDMETHOD. "lcl_event_handler

    *Handle Double Click

    METHOD HANDLE_DOUBLE_CLICK.

    ENDMETHOD. "handle_double_click

    METHOD TOP_OF_PAGE. "implementation

    • Top-of-page event

    PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.

    ENDMETHOD. "top_of_page

    ENDCLASS. "LCL_EVENT_HANDLER IMPLEMENTATION

    &----


    *& Global Definitions

    &----


    DATA: G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1

    G_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler

    DATA: OK_CODE LIKE SY-UCOMM,

    SAVE_OK LIKE SY-UCOMM,

    G_CONTAINER1 TYPE SCRFNAME VALUE 'TEST',

    GS_LAYOUT TYPE LVC_S_LAYO.

    *- Fieldcatalog for First and second Report

    DATA: IT_FIELDCAT TYPE LVC_T_FCAT,

    X_FIELDCAT TYPE LVC_S_FCAT,

    LS_VARI TYPE DISVARIANT.

    *----


    • START-OF_SELECTION

    *----


    START-OF-SELECTION.

    DATA:BEGIN OF ITAB OCCURS 0,

    VBELN LIKE LIKP-VBELN,

    POSNR LIKE LIPS-POSNR,

    CELLCOLOR TYPE LVC_T_SCOL, "required for color

    DROP(10),

    END OF ITAB.

    SELECT VBELN

    POSNR

    FROM LIPS

    UP TO 20 ROWS

    INTO CORRESPONDING FIELDS OF TABLE ITAB.

    END-OF-SELECTION.

    IF NOT ITAB[] IS INITIAL.

    CALL SCREEN 100.

    ELSE.

    MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).

    ENDIF.

    &----


    *& Form CREATE_AND_INIT_ALV

    &----


    • text

    ----


    FORM CREATE_AND_INIT_ALV .

    DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.

    "attention.....from here

    "split your container here...into two parts

    "create the container

    CREATE OBJECT G_CUSTOM_CONTAINER

    EXPORTING CONTAINER_NAME = G_CONTAINER1.

    "this is for top of page

    • Create TOP-Document

    CREATE OBJECT DG_DYNDOC_ID

    EXPORTING STYLE = 'ALV_GRID'.

    • Create Splitter for custom_container

    CREATE OBJECT DG_SPLITTER

    EXPORTING PARENT = G_CUSTOM_CONTAINER

    ROWS = 2

    COLUMNS = 1.

    • Split the custom_container to two containers and move the reference

    • to receiving containers g_parent_html and g_parent_grid

    "i am allocating the space for grid and top of page

    CALL METHOD DG_SPLITTER->GET_CONTAINER

    EXPORTING

    ROW = 1

    COLUMN = 1

    RECEIVING

    CONTAINER = DG_PARENT_HTML.

    CALL METHOD DG_SPLITTER->GET_CONTAINER

    EXPORTING

    ROW = 2

    COLUMN = 1

    RECEIVING

    CONTAINER = DG_PARENT_GRID.

    "you can set the height of it

    • Set height for g_parent_html

    CALL METHOD DG_SPLITTER->SET_ROW_HEIGHT

    EXPORTING

    ID = 1

    HEIGHT = 5.

    "from here as usual..you need to specify parent as splitter part

    "which we alloted for grid

    CREATE OBJECT G_GRID

    EXPORTING I_PARENT = DG_PARENT_GRID.

    • Set a titlebar for the grid control

    CLEAR GS_LAYOUT.

    GS_LAYOUT-GRID_TITLE = TEXT-003.

    GS_LAYOUT-ZEBRA = SPACE.

    GS_LAYOUT-CWIDTH_OPT = 'X'.

    GS_LAYOUT-NO_ROWMARK = 'X'.

    GS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'.

    CALL METHOD G_GRID->REGISTER_EDIT_EVENT

    EXPORTING

    I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.

    CREATE OBJECT G_HANDLER.

    SET HANDLER G_HANDLER->HANDLE_DOUBLE_CLICK FOR G_GRID.

    SET HANDLER G_HANDLER->HANDLE_HOTSPOT_CLICK FOR G_GRID.

    SET HANDLER G_HANDLER->TOP_OF_PAGE FOR G_GRID.

    DATA: LS_CELLCOLOR TYPE LVC_S_SCOL. "required for color

    DATA: L_INDEX TYPE SY-TABIX.

    "Here i am changing the color of line 1,5,10...

    "so you can change the color of font conditionally

    LOOP AT ITAB.

    L_INDEX = SY-TABIX.

    IF L_INDEX = 1 OR L_INDEX = 5 OR L_INDEX = 10.

    LS_CELLCOLOR-FNAME = 'VBELN'.

    LS_CELLCOLOR-COLOR-COL = '6'.

    LS_CELLCOLOR-COLOR-INT = '0'.

    LS_CELLCOLOR-COLOR-INV = '1'.

    APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

    MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

    LS_CELLCOLOR-FNAME = 'POSNR'.

    LS_CELLCOLOR-COLOR-COL = '6'.

    LS_CELLCOLOR-COLOR-INT = '0'.

    LS_CELLCOLOR-COLOR-INV = '1'.

    APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

    MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

    ENDIF.

    ENDLOOP.

    • setting focus for created grid control

    CALL METHOD CL_GUI_CONTROL=>SET_FOCUS

    EXPORTING

    CONTROL = G_GRID.

    • Build fieldcat and set editable for date and reason code

    • edit enabled. Assign a handle for the dropdown listbox.

    PERFORM BUILD_FIELDCAT.

    PERFORM SET_DRDN_TABLE.

    • Optionally restrict generic functions to 'change only'.

    • (The user shall not be able to add new lines).

    PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.

    **Vaiant to save the layout

    LS_VARI-REPORT = SY-REPID.

    LS_VARI-HANDLE = SPACE.

    LS_VARI-LOG_GROUP = SPACE.

    LS_VARI-USERNAME = SPACE.

    LS_VARI-VARIANT = SPACE.

    LS_VARI-TEXT = SPACE.

    LS_VARI-DEPENDVARS = SPACE.

    **Calling the Method for ALV output

    CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY

    EXPORTING

    IT_TOOLBAR_EXCLUDING = LT_EXCLUDE

    IS_VARIANT = LS_VARI

    IS_LAYOUT = GS_LAYOUT

    I_SAVE = 'A'

    CHANGING

    IT_FIELDCATALOG = IT_FIELDCAT

    IT_OUTTAB = ITAB[].

    "do these..{

    • Initializing document

    CALL METHOD DG_DYNDOC_ID->INITIALIZE_DOCUMENT.

    • Processing events

    CALL METHOD G_GRID->LIST_PROCESSING_EVENTS

    EXPORTING

    I_EVENT_NAME = 'TOP_OF_PAGE'

    I_DYNDOC_ID = DG_DYNDOC_ID.

    "end }

    • Set editable cells to ready for input initially

    CALL METHOD G_GRID->SET_READY_FOR_INPUT

    EXPORTING

    I_READY_FOR_INPUT = 1.

    ENDFORM. "CREATE_AND_INIT_ALV

    &----


    *& Form EXCLUDE_TB_FUNCTIONS

    &----


    • text

    ----


    • -->PT_EXCLUDE text

    ----


    FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.

    • Only allow to change data not to create new entries (exclude

    • generic functions).

    DATA LS_EXCLUDE TYPE UI_FUNC.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.

    APPEND LS_EXCLUDE TO PT_EXCLUDE.

    ENDFORM. " EXCLUDE_TB_FUNCTIONS

    &----


    *& Form build_fieldcat

    &----


    • Fieldcatalog

    ----


    FORM BUILD_FIELDCAT .

    DATA: L_POS TYPE I.

    L_POS = L_POS + 1.

    X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).

    X_FIELDCAT-FIELDNAME = 'VBELN'.

    X_FIELDCAT-TABNAME = 'IT_FINAL'.

    X_FIELDCAT-COL_POS = L_POS.

    X_FIELDCAT-NO_ZERO = 'X'.

    X_FIELDCAT-OUTPUTLEN = '10'.

    X_FIELDCAT-HOTSPOT = 'X'.

    APPEND X_FIELDCAT TO IT_FIELDCAT.

    CLEAR X_FIELDCAT.

    L_POS = L_POS + 1.

    X_FIELDCAT-SCRTEXT_M = 'Item'(025).

    X_FIELDCAT-FIELDNAME = 'POSNR'.

    X_FIELDCAT-TABNAME = 'IT_FINAL'.

    X_FIELDCAT-COL_POS = L_POS.

    X_FIELDCAT-OUTPUTLEN = '5'.

    APPEND X_FIELDCAT TO IT_FIELDCAT.

    CLEAR X_FIELDCAT.

    L_POS = L_POS + 1.

    X_FIELDCAT-SCRTEXT_M = 'Drop'(025).

    X_FIELDCAT-FIELDNAME = 'DROP'.

    X_FIELDCAT-TABNAME = 'IT_FINAL'.

    X_FIELDCAT-COL_POS = L_POS.

    X_FIELDCAT-OUTPUTLEN = '5'.

    X_FIELDCAT-EDIT = 'X'.

    X_FIELDCAT-DRDN_HNDL = '1'.

    X_FIELDCAT-DRDN_ALIAS = 'X'.

    APPEND X_FIELDCAT TO IT_FIELDCAT.

    CLEAR X_FIELDCAT.

    ENDFORM. " build_fieldcat

    &----


    *& Module STATUS_0100 OUTPUT

    &----


    • text

    ----


    MODULE STATUS_0100 OUTPUT.

    SET PF-STATUS 'MAIN100'.

    SET TITLEBAR 'MAIN100'.

    IF G_CUSTOM_CONTAINER IS INITIAL.

    **Initializing the grid and calling the fm to Display the O/P

    PERFORM CREATE_AND_INIT_ALV.

    ENDIF.

    ENDMODULE. " STATUS_0100 OUTPUT

    &----


    *& Module USER_COMMAND_0100 INPUT

    &----


    • text

    ----


    MODULE USER_COMMAND_0100 INPUT.

    CASE SY-UCOMM.

    WHEN 'BACK'.

    LEAVE TO SCREEN 0.

    ENDCASE.

    ENDMODULE. " USER_COMMAND_0100 INPUT

    &----


    *& Form SET_DRDN_TABLE

    &----


    • text

    ----


    FORM SET_DRDN_TABLE.

    DATA:LT_DRAL TYPE LVC_T_DRAL,

    LS_DRAL TYPE LVC_S_DRAL.

    LOOP AT ITAB .

    • First listbox (handle '1').

    IF SY-INDEX = 1.

    LS_DRAL-HANDLE = '1'.

    LS_DRAL-VALUE = ' '.

    LS_DRAL-INT_VALUE = ' '.

    ELSE.

    LS_DRAL-HANDLE = '1'.

    LS_DRAL-VALUE = ITAB-POSNR.

    LS_DRAL-INT_VALUE = ITAB-POSNR.

    ENDIF.

    APPEND LS_DRAL TO LT_DRAL.

    ENDLOOP.

    **Setting the Drop down table for Reason Code

    CALL METHOD G_GRID->SET_DROP_DOWN_TABLE

    EXPORTING

    IT_DROP_DOWN_ALIAS = LT_DRAL.

    ENDFORM. " set_drdn_table

    &----


    *& Form EVENT_TOP_OF_PAGE

    &----


    • text

    ----


    • -->DG_DYNDOC_ID text

    ----


    FORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.

    "this is more clear.....check it

    "first add text, then pass it to comentry write fm

    DATA : DL_TEXT(255) TYPE C. "Text

    • Populating header to top-of-page

    CALL METHOD DG_DYNDOC_ID->ADD_TEXT

    EXPORTING

    TEXT = 'Test Report'

    SAP_STYLE = CL_DD_AREA=>HEADING.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    CLEAR : DL_TEXT.

    • Move program ID

    CONCATENATE 'Program Name :' SY-REPID

    INTO DL_TEXT SEPARATED BY SPACE.

    • Add Program Name to Document

    PERFORM ADD_TEXT USING DL_TEXT.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    CLEAR : DL_TEXT.

    • Move User ID

    CONCATENATE 'User ID :' SY-UNAME INTO DL_TEXT SEPARATED BY SPACE

    .

    • Add User ID to Document

    PERFORM ADD_TEXT USING DL_TEXT.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    CLEAR : DL_TEXT.

    • Move Client

    CONCATENATE 'Client :' SY-MANDT INTO DL_TEXT SEPARATED BY SPACE.

    • Add Client to Document

    PERFORM ADD_TEXT USING DL_TEXT.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    CLEAR : DL_TEXT.

    • Move date

    WRITE SY-DATUM TO DL_TEXT.

    CONCATENATE 'Date :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.

    • Add Date to Document

    PERFORM ADD_TEXT USING DL_TEXT.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    CLEAR : DL_TEXT.

    • Move time

    WRITE SY-UZEIT TO DL_TEXT.

    CONCATENATE 'Time :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.

    • Add Time to Document

    PERFORM ADD_TEXT USING DL_TEXT.

    • Add new-line

    CALL METHOD DG_DYNDOC_ID->NEW_LINE.

    • Populating data to html control

    PERFORM HTML.

    ENDFORM. " EVENT_TOP_OF_PAGE

    &----


    *& Form ADD_TEXT

    &----


    • To add Text

    ----


    FORM ADD_TEXT USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.

    • Adding text

    CALL METHOD DG_DYNDOC_ID->ADD_TEXT

    EXPORTING

    TEXT = P_TEXT

    SAP_EMPHASIS = CL_DD_AREA=>HEADING.

    ENDFORM. " ADD_TEXT

    &----


    *& Form HTML

    &----


    • text

    ----


    FORM HTML.

    DATA : DL_LENGTH TYPE I, " Length

    DL_BACKGROUND_ID TYPE SDYDO_KEY VALUE SPACE. " Background_id

    • Creating html control

    IF DG_HTML_CNTRL IS INITIAL.

    CREATE OBJECT DG_HTML_CNTRL

    EXPORTING

    PARENT = DG_PARENT_HTML.

    ENDIF.

    • Reuse_alv_grid_commentary_set

    CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'

    EXPORTING

    DOCUMENT = DG_DYNDOC_ID

    BOTTOM = SPACE

    IMPORTING

    LENGTH = DL_LENGTH.

    • Get TOP->HTML_TABLE ready

    CALL METHOD DG_DYNDOC_ID->MERGE_DOCUMENT.

    • Set wallpaper

    CALL METHOD DG_DYNDOC_ID->SET_DOCUMENT_BACKGROUND

    EXPORTING

    PICTURE_ID = DL_BACKGROUND_ID.

    • Connect TOP document to HTML-Control

    DG_DYNDOC_ID->HTML_CONTROL = DG_HTML_CNTRL.

    • Display TOP document

    CALL METHOD DG_DYNDOC_ID->DISPLAY_DOCUMENT

    EXPORTING

    REUSE_CONTROL = 'X'

    PARENT = DG_PARENT_HTML

    EXCEPTIONS

    HTML_DISPLAY_ERROR = 1.

    IF SY-SUBRC NE 0.

    MESSAGE I999 WITH 'Error in displaying top-of-page'(036).

    ENDIF.

    ENDFORM. " HTML

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hello Rodrigo

      Recently I developed a report with an ALV list where the summary of the data is dynamically displayed in the TOP-OF-PAGE section.

      Following are some hints how I solved this problem:

      (1) When I create the controls (executed only once) the document instance (CL_DD_DOCUMENT) is created as well:

      ...
        CALL METHOD me->set_handler( ).
      
      *Create the document object
        CREATE OBJECT me->mo_doc_header  " TYPE REF TO cl_dd_document
          EXPORTING
      *      style            = style
            background_color = cl_dd_document=>col_textarea
      *      bds_stylesheet   = bds_stylesheet
            no_margins       = abap_true.
      
      
        CALL METHOD me->init_document_header( ).  " dynamically set values for header section
      
      
        CALL METHOD me->mo_grid->set_table_for_first_display
          EXPORTING
      ...
      

      (2) Define event handler method for TOP_OF_PAGE (do not forget to SET HANDLER):

      METHOD handle_top_of_page.
      
        CALL METHOD me->call_document
          EXPORTING
            ref_doc = me->mo_doc_header.  " e_dyndoc_id
        .
      
      ENDMETHOD.
      
      
      " Coding of method CALL_DOCUMENT:
      METHOD call_document.
      * ...
      
      *Creating html control
        IF ( me->mo_html IS INITIAL ).
          CREATE OBJECT me->mo_html
               EXPORTING
                    parent    = me->mo_cell_top.
        ENDIF.
        CALL METHOD ref_doc->merge_document.
        ref_doc->html_control = me->mo_html.
      
        CALL METHOD me->mo_grid->set_html_header.
      
      * Display document
        CALL METHOD ref_doc->display_document
          EXPORTING
            reuse_control      = 'X'
            parent             = me->mo_cell_top
          EXCEPTIONS
            html_display_error = 1.
      
      ENDMETHOD.
      

      (3) Change the header section when the data on the ALV list are changed:

      " NOTE: This method is called at the end of PAI
      
      METHOD refresh_display.
      * define local data
        DATA: ls_stable    TYPE lvc_s_stbl.
      
      
        CALL METHOD me->set_outtab_status( ).
        CALL METHOD me->init_document_header( ).  " dynamically set NEW values for header section
      
      
        CALL METHOD me->mo_grid->set_frontend_layout( me->ms_layout ).
      
        ls_stable-row = abap_true.
        ls_stable-col = abap_true.
      
        CALL METHOD me->mo_grid->refresh_table_display
          EXPORTING
            is_stable      = ls_stable
      *      I_SOFT_REFRESH =
          EXCEPTIONS
            finished       = 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.
      
      ENDMETHOD.
      

      Regards

      Uwe