How to add interactive feature in top of page in ALV .

Hi All ,
There is immediate requirement , I have to add interactive feature in top of page in ALV grid .
Can anyone sort this out ?
Reward points will be given.

hi,
check this example:
REPORT  ZSR_ALV_INTERACTIVE2.
TYPE-POOLS: SLIS.
*DATA DECLARATION.
TYPES: BEGIN OF I_VBAK,
VBELN TYPE VBELN_VA,
AUGRU TYPE AUGRU,
END OF I_VBAK.
TYPES: BEGIN OF I_VBAP,
VBELN TYPE VBELN_VA,
AUGRU TYPE AUGRU,
POSNR TYPE POSNR_VA,
MATNR TYPE MATNR,
ZMENG TYPE DZMENG,
END OF I_VBAP.
TYPES: BEGIN OF I_MAKT,
MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
END OF I_MAKT.
TYPES: BEGIN OF I_LIPS,
POSNR TYPE POSNR_VL,
MATNR TYPE MATNR,
LFIMG TYPE LFIMG,
END OF I_LIPS.
TYPES: BEGIN OF I_REASON,
SPRAS TYPE SPRAS,
AUGRU TYPE AUGRU,
BEZEI TYPE BEZEI40,
END OF I_REASON.
TYPES: BEGIN OF I_VBPA,
VBELN TYPE VBELN,
PARVW TYPE PARVW,
KUNNR TYPE KUNNR,
END OF I_VBPA.
TYPES: BEGIN OF I_KNA1,
KUNNR TYPE KUNNR,
NAME1 TYPE NAME1_GP,
END OF I_KNA1.
TYPES: BEGIN OF I_FINAL,
VBELN TYPE VBELN_VA,
POSNR TYPE POSNR_VA,
MATNR TYPE MATNR,
ZMENG TYPE DZMENG,
MAKTX TYPE MAKTX,
LFIMG TYPE LFIMG,
SPRAS TYPE SPRAS,
AUGRU TYPE AUGRU,
BEZEI TYPE BEZEI40,
PARVW TYPE PARVW,
KUNNR TYPE KUNNR,
NAME1 TYPE NAME1_GP,
END OF I_FINAL.
*INTERNAL TABLES
DATA: IT_VBAK TYPE STANDARD TABLE OF I_VBAK.
DATA: IT_VBAP TYPE STANDARD TABLE OF I_VBAP.
DATA: IT_MAKT TYPE STANDARD TABLE OF I_MAKT.
DATA: IT_LIPS TYPE STANDARD TABLE OF I_LIPS.
DATA: IT_VBPA TYPE STANDARD TABLE OF I_VBPA.
DATA: IT_KNA1 TYPE STANDARD TABLE OF I_KNA1.
DATA: IT_FINAL TYPE STANDARD TABLE OF I_FINAL.
DATA: IT_REASON TYPE STANDARD TABLE OF I_REASON.
DATA : V_FLAG.
*WORK AREA
DATA: WA_VBAK TYPE I_VBAK.
DATA: WA_VBAP TYPE I_VBAP.
DATA: WA_MAKT TYPE I_MAKT.
DATA: WA_LIPS TYPE I_LIPS.
DATA: WA_VBPA TYPE I_VBPA.
DATA: WA_KNA1 TYPE I_KNA1.
DATA: WA_FINAL TYPE I_FINAL.
DATA: WA_REASON TYPE I_REASON.
*DATA DECLARATION.
DATA: V_PROGNAME TYPE SY-REPID.
DATA: V_VBELN TYPE VBAK-VBELN.
DATA: V_GRIDTITLE TYPE LVC_TITLE.
***PARAMETERS: D_VARI LIKE DISVARIANT-VARIANT.
*DATA: I_VARIANT LIKE DISVARIANT.
*DATA: P_VARI LIKE DISVARIANT-VARIANT.
*DATA DECLARATION FOR CATALOGS LAYOUT SORT EVENTCATALOG TOPOFPAGE.
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: I_SORTINFO TYPE SLIS_T_SORTINFO_ALV.
DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: I_EVENTCAT TYPE SLIS_T_EVENT.
INITIALIZATION.
  V_PROGNAME = SY-REPID.
  V_FLAG = SPACE.
*SELECTION SCREEN
  SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-002.
  SELECT-OPTIONS: S_VBELN FOR V_VBELN.
  SELECTION-SCREEN END OF BLOCK BLK1.
*AT SLECTION-SCREEN.
AT SELECTION-SCREEN.
  PERFORM Z_VALIDATIONS.
*START OF SELECTION.
START-OF-SELECTION.
  PERFORM Z_SELECT.
  PERFORM CHECK_VALIDATION_FLAG.
  PERFORM Z_FIELDCAT USING I_FIELDCAT.
  PERFORM Z_LAYOUT.
  PERFORM Z_SORTINFO USING I_SORTINFO.
  PERFORM Z_EVENTCAT USING I_EVENTCAT.
  PERFORM Z_GRIDTITLE.
  PERFORM Z_LISTHEADER USING I_LISTHEADER.
  PERFORM Z_DISPLAY.
*& Form Z_VALIDATIONS
FORM Z_VALIDATIONS .
  SELECT VBELN INTO V_VBELN
  UP TO 1 ROWS
  FROM VBAK
  WHERE VBELN IN S_VBELN.
  ENDSELECT.
  IF SY-SUBRC <> 0.
    MESSAGE I002(SY) WITH 'No Records'.
    V_FLAG = 'X'.
  ENDIF.
ENDFORM. " Z_VALIDATIONS
*& Form Z_FIELDCAT
FORM Z_FIELDCAT USING P_I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
  DATA: I_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*VBAK-VELN
  I_FIELDCAT-COL_POS = '1'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-KEY = 'X'. " SO THAT THIS FIELD IS NOT SCROLLABLE AND
*HIDDABLE.
  I_FIELDCAT-JUST = 'C'. " FOR JUSTIFICATION.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'SALES ORDER'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 15. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBAK'. " FOR F1 & F4 HELP AS REFERNCED TO
*THE DDIC TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-SPRAS
  I_FIELDCAT-COL_POS = '2'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'SPRAS'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'LANGUAGE'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 5. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'TVAUT'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-AUGRU
  I_FIELDCAT-COL_POS = '3'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'AUGRU'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'REASON'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 5. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBAK'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-bezei
  I_FIELDCAT-COL_POS = '4'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'BEZEI'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'DESCRIPTION'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'TVAUT'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-POSNR
  I_FIELDCAT-COL_POS = '5'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'POSNR'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'ITEM'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 8. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-MATNR.
  I_FIELDCAT-COL_POS = '6'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'MATNR'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'MATERIAL'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 10. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*VBAP-ZMENG
  I_FIELDCAT-COL_POS = '7'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'ZMENG'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'QUANT'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 10. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*MAKT-MAKTX
  I_FIELDCAT-COL_POS = '8'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'MAKTX'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'DESCRIPTION'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'MAKT'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*LIPS-VBELN
  I_FIELDCAT-COL_POS = '9'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'DELIVERY'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 15. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'LIPS'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*LIPS-LFIMG
  I_FIELDCAT-COL_POS = '10'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'LFIMG'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-DO_SUM = 'X'.
  I_FIELDCAT-SELTEXT_L = 'LFIMG'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 18. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'LIPS'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*parvw
  I_FIELDCAT-COL_POS = '11'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'PARVW'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'PARTNER FUN'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 18. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBPA'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*KUNNR
  I_FIELDCAT-COL_POS = '12'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'KUNNR'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'SHIP'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 18. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'VBPA'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
*NAME1
  I_FIELDCAT-COL_POS = '13'. " POSITION OF THE COLUMN.
  I_FIELDCAT-FIELDNAME = 'NAME1'. " FIELD FOR WHICH CATALOG ID FILLED.
  I_FIELDCAT-TABNAME = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD
*BELONGS TO.
  I_FIELDCAT-LZERO = 'X'. " OUTPUT WITH LEADING ZEROS.
  I_FIELDCAT-SELTEXT_L = 'NAME'. " LONG TEXT FOR HEADER.
  I_FIELDCAT-OUTPUTLEN = 18. " SET THE OUTPUT LENGTH.
  I_FIELDCAT-REF_TABNAME = 'KNA1'. " FOR F1 & F4 HELP AS REFERNCED TO
*TABLE.
  APPEND I_FIELDCAT TO P_I_FIELDCAT.
ENDFORM. " Z_FIELDCAT
*& Form Z_SELECT
FORM Z_SELECT .
  SELECT VBELN
  AUGRU INTO CORRESPONDING FIELDS OF TABLE IT_VBAK
  FROM VBAK
  WHERE VBELN IN S_VBELN.
  IF SY-SUBRC = 0.
    SELECT VBELN
    POSNR
    MATNR
    ZMENG INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
    FROM VBAP
    FOR ALL ENTRIES IN IT_VBAK
    WHERE VBELN = IT_VBAK-VBELN.
    IF SY-SUBRC = 0.
      SELECT SPRAS
      AUGRU
      BEZEI INTO CORRESPONDING FIELDS OF TABLE IT_REASON
      FROM TVAUT
      FOR ALL ENTRIES IN IT_VBAK
      WHERE AUGRU = IT_VBAK-AUGRU.
      IF SY-SUBRC = 0.
        SELECT VBELN
        PARVW
        KUNNR INTO CORRESPONDING FIELDS OF TABLE IT_VBPA
        FROM VBPA
        FOR ALL ENTRIES IN IT_VBAK
        WHERE VBELN = IT_VBAK-VBELN.
        IF SY-SUBRC = 0.
          SELECT KUNNR
          NAME1 INTO CORRESPONDING FIELDS OF TABLE IT_KNA1
          FROM KNA1
          FOR ALL ENTRIES IN IT_VBPA
          WHERE KUNNR = IT_VBPA-KUNNR.
          IF SY-SUBRC = 0.
            SELECT POSNR
            MATNR
            LFIMG INTO CORRESPONDING FIELDS OF TABLE IT_LIPS
            FROM LIPS
            FOR ALL ENTRIES IN IT_VBAP
            WHERE POSNR = IT_VBAP-POSNR.
            IF SY-SUBRC = 0.
              SELECT MATNR
              MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT
              FROM MAKT
              FOR ALL ENTRIES IN IT_VBAP
              WHERE MATNR = IT_VBAP-MATNR.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.
  ELSE.
    MESSAGE I002(SY) WITH 'No Data found'.
    LEAVE LIST-PROCESSING.
  ENDIF.
  IF SY-SUBRC = 0.
    LOOP AT IT_VBAP INTO WA_VBAP.
      READ TABLE IT_VBAK INTO WA_VBAK WITH KEY VBELN = WA_VBAP-VBELN
BINARY SEARCH.
      IF SY-SUBRC = 0.
*MOVE DATA INTO IT_FINAL.
        MOVE: WA_VBAK-VBELN TO WA_FINAL-VBELN,
        WA_VBAK-AUGRU TO WA_FINAL-AUGRU,
        WA_VBAP-POSNR TO WA_FINAL-POSNR,
        WA_VBAP-MATNR TO WA_FINAL-MATNR,
        WA_VBAP-ZMENG TO WA_FINAL-ZMENG.
      ENDIF.
      READ TABLE IT_LIPS INTO WA_LIPS WITH KEY POSNR = WA_FINAL-POSNR
BINARY SEARCH.
      IF SY-SUBRC = 0.
        MOVE: WA_LIPS-LFIMG TO WA_FINAL-LFIMG.
      ENDIF.
      READ TABLE IT_REASON INTO WA_REASON WITH KEY AUGRU =
WA_FINAL-AUGRU BINARY SEARCH.
      IF SY-SUBRC = 0.
        MOVE: WA_REASON-SPRAS TO WA_FINAL-SPRAS,
        WA_REASON-BEZEI TO WA_FINAL-BEZEI.
      ENDIF.
      READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR
BINARY SEARCH.
      IF SY-SUBRC = 0.
        MOVE: WA_MAKT-MAKTX TO WA_FINAL-MAKTX.
      ENDIF.
      READ TABLE IT_VBPA INTO WA_VBPA WITH KEY VBELN = WA_FINAL-VBELN
BINARY SEARCH.
      IF SY-SUBRC = 0.
        MOVE: WA_VBPA-PARVW TO WA_FINAL-PARVW,
        WA_VBPA-KUNNR TO WA_FINAL-KUNNR.
      ENDIF.
      READ TABLE IT_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_FINAL-KUNNR
BINARY SEARCH.
      IF SY-SUBRC = 0.
        MOVE: WA_KNA1-NAME1 TO WA_FINAL-NAME1.
      ENDIF.
      APPEND WA_FINAL TO IT_FINAL.
      CLEAR WA_FINAL.
    ENDLOOP.
  ENDIF.
ENDFORM. " Z_SELECT
*& Form Z_LAYOUT
FORM Z_LAYOUT .
  I_LAYOUT-ZEBRA = 'X'.
  I_LAYOUT-TOTALS_TEXT = 'Total'(A00).
  I_LAYOUT-SUBTOTALS_TEXT = 'SubTotal'(A01).
  I_LAYOUT-BOX_TABNAME = 'IT_FINAL'.
ENDFORM. " Z_LAYOUT
*& Form Z_SORTINFO
FORM Z_SORTINFO USING P_I_SORTINFO TYPE SLIS_T_SORTINFO_ALV.
  DATA: I_SORTINFO TYPE SLIS_SORTINFO_ALV.
  CLEAR I_SORTINFO.
  I_SORTINFO-SPOS = '1'.
  I_SORTINFO-FIELDNAME = 'VBELN'.
  I_SORTINFO-TABNAME = 'IT_FINAL'.
  I_SORTINFO-UP = 'X'.
  I_SORTINFO-GROUP = 'UL'. " I.E UNDERLINE AFTER EVERY GROUP
  I_SORTINFO-SUBTOT = 'X'.
  APPEND I_SORTINFO TO P_I_SORTINFO.
ENDFORM. " Z_SORTINFO
*& Form Z_EVENTCAT
FORM Z_EVENTCAT USING P_I_EVENTCAT TYPE SLIS_T_EVENT.
  DATA: I_EVENT TYPE SLIS_ALV_EVENT.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE     = 0
    IMPORTING
      ET_EVENTS       = P_I_EVENTCAT
    EXCEPTIONS
      LIST_TYPE_WRONG = 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.
  CLEAR I_EVENT.
  READ TABLE P_I_EVENTCAT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO
  I_EVENT.
  IF SY-SUBRC = 0.
    MOVE 'TOP_OF_PAGE' TO I_EVENT-FORM.
    APPEND I_EVENT TO P_I_EVENTCAT.
  ENDIF.
  READ TABLE P_I_EVENTCAT WITH KEY NAME = SLIS_EV_PF_STATUS_SET INTO
I_EVENT.
  IF SY-SUBRC = 0.
    MOVE 'SET_PF_STATUS' TO I_EVENT-FORM.
    APPEND I_EVENT TO P_I_EVENTCAT.
  ENDIF.
  CLEAR I_EVENT.
  READ TABLE P_I_EVENTCAT INTO I_EVENT WITH KEY NAME =
SLIS_EV_USER_COMMAND .
  IF SY-SUBRC = 0.
    MOVE 'USER_COMMAND' TO I_EVENT-FORM.
    APPEND I_EVENT TO P_I_EVENTCAT.
  ENDIF.
ENDFORM. " Z_EVENTCAT
*& Form Z_DISPLAY
FORM Z_DISPLAY .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
  I_CALLBACK_PROGRAM = V_PROGNAME
*I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
  I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
  I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
  I_GRID_TITLE = V_GRIDTITLE
  I_SAVE = 'A'
  IS_LAYOUT = I_LAYOUT
  IT_FIELDCAT = I_FIELDCAT[]
  IT_SORT = I_SORTINFO
  IT_EVENTS = I_EVENTCAT
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
  TABLES
  T_OUTTAB = IT_FINAL
  EXCEPTIONS
  PROGRAM_ERROR = 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.
ENDFORM. " Z_DISPLAY
*& Form Z_GRIDTITLE
FORM Z_GRIDTITLE .
  V_GRIDTITLE = 'ALV FOR SALES ORDER DISPLAY'.
ENDFORM. " Z_GRIDTITLE
*TOP OF PAGE.
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = I_LISTHEADER.
ENDFORM. "TOP_OF_PAGE
*MENU SETTINGS.
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'ALV_MENU'.
ENDFORM. "SET_PF_STATUS
*USER-COMMAND
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
  DATA : VBELN TYPE VBELN_VA.
  CASE P_UCOMM.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN '&IC1'.
      CLEAR : VBELN.
      VBELN = RS_SELFIELD-VALUE.
      SET PARAMETER ID: 'AUN' FIELD VBELN.
      CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
  ENDCASE.
ENDFORM. " USER_COMMAND
*& Form Z_LISTHEADER
FORM Z_LISTHEADER USING P_I_LISTHEADER TYPE SLIS_T_LISTHEADER.
  DATA: L_LISTHEADER TYPE SLIS_LISTHEADER.
  REFRESH P_I_LISTHEADER.
  CLEAR L_LISTHEADER.
  L_LISTHEADER-TYP = 'H'.
  L_LISTHEADER-INFO = TEXT-001.
  APPEND L_LISTHEADER TO P_I_LISTHEADER.
  CLEAR L_LISTHEADER.
  L_LISTHEADER-TYP = 'H'.
  L_LISTHEADER-INFO = TEXT-002.
  APPEND L_LISTHEADER TO P_I_LISTHEADER.
ENDFORM. " Z_LISTHEADER
*& Form check_validation_flag
text
--> p1 text
<-- p2 text
FORM CHECK_VALIDATION_FLAG .
  IF NOT V_FLAG IS INITIAL.
    LEAVE LIST-PROCESSING.
  ENDIF.
ENDFORM. " check_validation_flag

Similar Messages

  • How to give colors to the top-of-page in ALV Grid

    How to give colors to the top-of-page in ALV Grid
    in table GT_LIST_TOP_OF_PAGE i am filling 3 rows ,i need 3 different colors to be displyed on top-of-page(one color to one row)
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    I_LOGO = 'ENJOYSAP_LOGO'
    IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    please help mee

    HI Kranthi,
    Check out teh foll. link,
    http://www.sapfans.com/forums/viewtopic.php?t=52107
    Hope this helps.

  • How to give colors to the top-of-page in ALV List Display

    how to give colors to the top-of-page in ALV List Display....

    Check this blog.........
    It provides your required output...........
    /people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
    See the point 7 for complete code...
    Regards,
    Pavan

  • How to Print the space in Top-of-Page in ALV output

    Hi gurus,
         I had a problem in Printing the Spaces in Top-of-Page.
    My Requirement is like.
    Material no: (space with 18 char)  to   5235268
    but it is coming like .
    Material no: to  5235268
    i wrote the code like this.
    form Top_of_page.
    IF s_matnr IS NOT INITIAL.
          wa_header-typ = 'S'.
          wa_header-key = 'Material No:' .
          IF s_matnr-high IS INITIAL.
            MOVE s_matnr-low TO wa_header-info.
          ELSE.
            CONCATENATE s_matnr-low  ' to ' s_matnr-high INTO wa_header-info SEPARATED BY space.
          ENDIF.
          APPEND wa_header TO tb_header.
          CLEAR wa_header.
        ENDIF.
    Thanks & Regards,
    Anil.

    Hi Anil ,
    If u concatenate anything with space , your space will be lost.
    Give a try for this if your  s_matnr-high is initial.
    data : c(21) type c.
    IF s_matnr-high IS INITIAL.
    Concatenate '(19 spaces )to'  into C.   concatenate C s_matnr-low  into wa_header-info SEPARATED BY space.
    endif.
    <b>Please Note i wanted to put spaces at "(19 spaces)to"  but posting this message is removing those spaces so have put it in words.</b>you have to take Variable c with first 19spaces and then 'to' as shown.
    Here the Variable C is with 21 length for 18 spaces , one space to separate the 18 spaces from 'to' , and then 2 chars for 'to'.
    I hope this will help you.
    Regards,
    AShwini

  • How I add a LIBRARY ITEM to a page layout, top/bottom ?

    how I add a LIBRARY ITEM to a page layout, top/bottom ? in
    dwmr mx 2004 and cs4 ?

    Have you looked at the DW help file - it will explain all
    about library items :-)
    Nadia
    Adobe® Community Expert : Dreamweaver
    Unique CSS Templates |Tutorials |SEO Articles
    http://www.DreamweaverResources.com
    CSS Tutorials for Dreamweaver |
    http://www.adobe.com/devnet/dreamweaver/css.html
    Book: Ultimate CSS Reference (aff link) |
    http://www.sitepoint.com/launch/005dfd4/3/133
    http://twitter.com/nadiap
    "lse987" <[email protected]> wrote in
    message news:gpsvtt$t5q$[email protected]..
    > how I add a LIBRARY ITEM to a page layout, top/bottom ?
    in dwmr mx 2004 and cs4 ?

  • How to add i18n features to a Struts application?

    How to add i18n features to a Struts application?
    txs!

    How to add I18N to Struts application
    operation:
    1) provide your native ascii encoded properties file.
    2) set the correct language priority. (As to IE: Tools - Internet Options - Languages
    3) coding: add correct encoding in your web page, exp. for zh_CN:
    <%@ page contentType="text/html; charset=gb2312" %>
    utility batch file:
    native2ascii -encoding gb2312 MessageResources_zh_CN.txt MessageResources_zh_CN.properties
    copy MessageResources.txt MessageResources_en_US.properties
    note
    Before you run the utility batch file, you should first add %JAVA_HOME%/bin to system %PATH% environment variable.

  • I buy my iphone 5 in uae but i live in other country i want use a facetime how can add this feature to my iphone 5 please help me

    i buy my iphone 5 in uae but i live in other country i want use a facetime how can add this feature to my iphone 5 please help me

    If you wanted FaceTime, you should not have purchased your phone in the UAE. There is no way to add it back to your phone, as it has been permanently removed.

  • How To Print Field Value in TOP-OF-PAGE During Line Selection.

    How To Print Field Value in TOP-OF-PAGE During Line Selection when double click on field.

    (If my memory serves me well (not used for long time ago)
    Assign values to system fields sy-tvar0 - sy-tvar9, they will replace the placeholders "&0" through "&9" in the list headers and column headers.
    TOP-OF-PAGE DURING LINE-SELECTION.
         WRITE: / 'Interactive Report &3'.
      WRITE record-vbeln TO sy-tvar3.
    Regards,
    Raymond

  • How to add Change Layout, savelayout, select layout Button to ALV Toolba

    How to add Change Layout, savelayout, select layout Button to ALV Toolbar?
    Moderator message: please (re)search yourself before asking.
    [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers]
    locked by: Thomas Zloch on Sep 10, 2010 10:57 AM

    Variant
    CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant          = gs_variant
                i_save              = c_save
              it_default_fieldcat =
           IMPORTING
                e_exit              = gf_exit
                es_variant          = gs_variant
           EXCEPTIONS
                not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF gf_exit = space.
          cf_varia = gs_variant-variant.
        ENDIF.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          i_save        = c_save
        CHANGING
          cs_variant    = gs_variant
        EXCEPTIONS
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          OTHERS        = 4.
      IF sy-subrc NE 0.
        cf_subrc = sy-subrc.
      ENDIF.
    Change Layout, savelayout, select layout Button  pass the value which is in BOLD
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                =  gd_repid
         i_callback_user_command           =  'U_COMMAND'
         i_callback_top_of_page            = 'TOP-OF-PAGE'
                         is_layout                    =  fld_lay
           it_fieldcat                  =  fieldcatalog[]
                       IT_EXCLUDING                  =
                       IT_SPECIAL_GROUPS             =
                       IT_SORT                        =  it_sort[]
         i_default                      = 'X'
         i_save                         = 'A'
         is_variant                     = gs_variant
         it_events                      =  it_event[]
        TABLES
          t_outtab                      =    it_sales
                     EXCEPTIONS
                       PROGRAM_ERROR                     = 1
                       OTHERS                            = 2
    Annasaheb

  • How to declare top of page in alv report

    hi guru
    how to declare top of page in alv report
    thanks
    subhasis

    Hi,
    check this simple program.
    REPORT ZBHALV_LIST.
    TABLES:MARA.
    SELECT-OPTIONS: MATNR FOR MARA-MATNR.
    DATA:BEGIN OF ITAB OCCURS 0,
    MATNR LIKE MARA-MATNR,
    ERSDA LIKE MARA-ERSDA,
    MTART LIKE MARA-MTART,
    MBRSH LIKE MARA-MBRSH,
    END OF ITAB.
    SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR
    IN MATNR.
    TYPE-POOLS SLIS.
    DATA:FCAT TYPE slis_t_fieldcat_alv.
    DATA:LAYOUT TYPE slis_layout_alv.
    DATA:EVE TYPE slis_t_event WITH HEADER LINE.
    DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
    DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    SORT-UP = 'X'.
    SORT-SPOS = 1.
    SORT-FIELDNAME = 'ERSDA'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    SORT-SPOS = 2.
    SORT-FIELDNAME = 'MTART'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    EVE-NAME = 'TOP_OF_PAGE'.
    EVE-FORM = 'TOPOFPAGE'.
    APPEND EVE.
    EVE-NAME = 'TOP_OF_LIST'.
    EVE-FORM = 'TOPOFLIST'.
    APPEND EVE.
    EVE-NAME = 'END_OF_LIST'.
    EVE-FORM = 'ENDOFLIST'.
    APPEND EVE.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-no_hline = 'X'.
    LAYOUT-NO_VLINE = 'X'.
    LAYOUT-window_titlebar = 'MATERIAL DETAILS'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'ITAB'
    I_STRUCTURE_NAME =
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_INCLNAME = SY-REPID
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE =
    CHANGING
    CT_FIELDCAT = FCAT
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 2
    OTHERS = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = FCAT
    IT_SORT = SORT[]
    IT_EVENTS = EVE[]
    TABLES
    T_OUTTAB = ITAB .
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    FORM TOPOFPAGE.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    FORM TOPOFLIST.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS-LISTTOP'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    FORM ENDOFLIST.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS-LISTEND'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    Regards,
    Priyanka.

  • How i can show the selection screen input field in the top of page in alv

    hi ,
              how i can show the selection screen input field in the top of page in alv  grid output.
    tell me the process

    Hi,
    excample from my program:
    FORM topof_page.
      DATA: l_it_header   TYPE TABLE OF slis_listheader WITH HEADER LINE,
            l_info        LIKE l_it_header-info.
      DATA: l_it_textpool TYPE TABLE OF textpool WITH HEADER LINE.
      DATA: l_key LIKE l_it_textpool-key.
      READ TEXTPOOL c_repid INTO l_it_textpool LANGUAGE sy-langu.
      DEFINE m_selinfo.
        if not &1 is initial.
          clear l_it_header.
          l_it_header-typ   = 'S'.
          l_key = '&1'.
          translate l_key to upper case.
          read table l_it_textpool with key key = l_key.
          if sy-subrc = 0.
            shift l_it_textpool-entry left deleting leading space.
            l_it_header-key = l_it_textpool-entry  .
          endif.
          loop at &1.
            case &1-option.
              when 'EQ'
                or 'BT'
                or 'CP'.
                write &1-low to l_it_header-info.
              when others.
                write &1-low to l_it_header-info.
                concatenate &1-option
                            l_it_header-info
                       into l_it_header-info
                       separated by space.
            endcase.
            if not &1-high is initial.
              write &1-high to l_info left-justified.
              concatenate l_it_header-info
                          l_info
                     into l_it_header-info
                     separated by space.
            endif.
            if &1-sign = 'E'.
              concatenate ']'
                          l_it_header-info
                     into l_it_header-info.
            endif.
            append l_it_header.
            clear: l_it_header-key,
                   l_it_header-info.
          endloop.
        endif.
      END-OF-DEFINITION.
      m_selinfo: s_trmdat,
                 s_trmext,
                 s_trmint,
                 s_fkdat,
                 s_delno,
                 s_vbeln,
                 s_deact,
                 s_kdmat.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = l_it_header[].
    ENDFORM.
    I hope, this will help you.
    Regards
    Nicole

  • How to display horizontal line in top-of-page by using object oriented ALV?

    How to display horizontal line in top-of-page by using object oriented ALV.
    I am created top-of-page in object oriented alv.
    But not be successes in showing horizontal line in it.
    Can any one pls give solution for this..
    Thanks and regards..

    Hi
    Try like this
    data: gt_list_top_of_page type slis_t_listheader. " Top of page text. 
    Initialization. 
    perform comment_build using gt_list_top_of_page[]. 
    form top_of_page. 
    * Note to self: the gif must be loaded into transaction OAOR with 
    * classname 'PICTURES' AND TYPE 'OT' to work with ALV GRID Functions. 
    * I Loaded NOVALOGO2 into system. 
    call function 'REUSE_ALV_COMMENTARY_WRITE' 
         exporting 
    * I_LOGO = 'NOVALOGO2' 
    * i_logo = 'ENJOYSAP_LOGO' 
             it_list_commentary = gt_list_top_of_page. 
    endform. " TOP_OF_PAGE 
    form comment_build using e04_lt_top_of_page type slis_t_listheader. 
    data: ls_line type slis_listheader. 
          clear ls_line. 
          ls_line-typ = 'A'. 
          ls_line-info = 'Special'(001). 
          fgrant = xgrant. 
          concatenate ls_line-info fgrant 
          'Stock Option Report to the board'(002) 
                 into ls_line-info separated by space. 
                        condense ls_line-info. 
          append ls_line to e04_lt_top_of_page. 
    endform. " COMMENT_BUILD
    Use following syntex for footer print in alv:
    * For End of Page
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *  For End of Report
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    check this link
    http://abapprogramming.blogspot.com/
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5dc3e690-0201-0010-1ebf-b85b3bed962d
    Changing width of a custom container dynamically
    Display Page numbers in ALV
    Insert picture in selection screen.
    Logo in OO ALV Grid
    Reward all helpfull answers
    Regards
    Pavan

  • How to add 'Confidential' watermark to all the pages in portal

    Hi
    How to add 'Confidential' watermark to all the pages in portal.We have ESS/MSS business packages installed 60.1, 60.2.
    ECC5, EP SP16 is the environment.
    Help will be appreciated
    Thanks
    Sharath

    Hi Sharath,
    What about using the theme editor to add a background to either the page or the iView tray?
    Daniel

  • How to devide the top of page in alv grid display

    hi all
    in the alv grid display am getting the page number and total number of pages in the left hand side
    but what i need is i need in the right hand side
    how to get that

    Hi,
    PLease refer to the code below:
    *& Report  ZDEMO_ALVGRID                                               *
    *& Example of a simple ALV Grid Report                                 *
    *& The basic requirement for this demo is to display a number of       *
    *& fields from the EKKO table.                                         *
    REPORT  zdemo_alvgrid                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid,
          gt_events     type slis_t_event,
          gd_prntparams type slis_print_alv.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform build_events.
    perform build_print_params.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    * There are a number of ways to create a fieldcat.
    * For the purpose of this example i will build the fieldcatalog manualy
    * by populating the internal table fields individually and then
    * appending the rows. This method can be the most time consuming but can
    * also allow you  more control of the final product.
    * Beware though, you need to ensure that all fields required are
    * populated. When using some of functionality available via ALV, such as
    * total. You may need to provide more information than if you were
    * simply displaying the result
    *               I.e. Field type may be required in-order for
    *                    the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    *  fieldcatalog-do_sum      = 'X'.
    *  fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    *  gd_layout-totals_only        = 'X'.
    *  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
    *                                         "click(press f2)
    *  gd_layout-zebra             = 'X'.
    *  gd_layout-group_change_edit = 'X'.
    *  gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
    *            i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
    *            it_special_groups       = gd_tabgroup
                it_events               = gt_events
                is_print                = gd_prntparams
                i_save                  = 'X'
    *            is_variant              = z_template
           tables
                t_outtab                = it_ekko
           exceptions
                program_error           = 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.
    endform.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
    *       Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL
    * Form  TOP-OF-PAGE                                                 *
    * ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    * Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO Table Report'.
      append wa_header to t_header.
      clear wa_header.
    * Date
      wa_header-typ  = 'S'.
      wa_header-key = 'Date: '.
      CONCATENATE  sy-datum+6(2) '.'
                   sy-datum+4(2) '.'
                   sy-datum(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    * Total No. of Records Selected
      describe table it_ekko lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
    *            i_logo             = 'Z_LOGO'.
    endform.
    *       FORM USER_COMMAND                                          *
    *       --> R_UCOMM                                                *
    *       --> RS_SELFIELD                                            *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    * Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
    *   Check field clicked on within ALVgrid report
        IF rs_selfield-fieldname = 'EBELN'.
    *     Read data table, using index of row user clicked on
          READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
    *     Set parameter ID for transaction screen field
          SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
    *     Sxecute transaction ME23N, and skip initial data entry screen
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  BUILD_EVENTS
    *       Build events table
    form build_events.
      data: ls_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gt_events[].
      read table gt_events with key name =  slis_ev_end_of_page
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_PAGE' to ls_event-form.
        append ls_event to gt_events.
      endif.
        read table gt_events with key name =  slis_ev_end_of_list
                               into ls_event.
      if sy-subrc = 0.
        move 'END_OF_LIST' to ls_event-form.
        append ls_event to gt_events.
      endif.
    endform.                    " BUILD_EVENTS
    *&      Form  BUILD_PRINT_PARAMS
    *       Setup print parameters
    form build_print_params.
      gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer
      gd_prntparams-no_coverpage = 'X'.
    endform.                    " BUILD_PRINT_PARAMS
    *&      Form  END_OF_PAGE
    form END_OF_PAGE.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      write: sy-uline(50).
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    *&      Form  END_OF_LIST
    form END_OF_LIST.
      data: listwidth type i,
            ld_pagepos(10) type c,
            ld_page(10)    type c.
      skip.
      write:/40 'Page:', sy-pagno .
    endform.
    Thanks,
    Sriram Ponna.

  • How to trigger top-of-page in ALV Grid

    How to trigger Top-Of-Page in ALV Grid...
    can any one plese send the sample code...
    thanks.

    here is sample code. try this. u need to build an internal table and then call function commentary write and pass that internal table.
    *&      Form  TOP_OF_PAGE
          Top_of_page
    FORM top-of-page.                                           "#EC CALLED
    *ALV Header declarations
      DATA: lit_header TYPE slis_t_listheader,
            lwa_header TYPE slis_listheader.
    Title
      lwa_header-typ  = 'H'.
      lwa_header-info = text-013.
      APPEND lwa_header TO lit_header.
      CLEAR lwa_header.
    BOM Number
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          input  = p_matnr
        IMPORTING
          output = gv_matnr.
    Pass BOM number
      lwa_header-typ  = 'S'.
      lwa_header-key = text-014.
      lwa_header-info = gv_matnr .
      APPEND lwa_header TO lit_header.
      CLEAR: lwa_header ,
             gv_matnr .
    BOM description
      lwa_header-typ  = 'S'.
      lwa_header-key = text-015 .
      lwa_header-info = gv_maktx .
      APPEND lwa_header TO lit_header.
      CLEAR: lwa_header.
    start/end date format MM/DD/YY
      lwa_header-typ  = 'S'.
      lwa_header-key = text-016 .
      CONCATENATE s_erdat-low+4(2) '/'
                  s_erdat-low+6(2) '/'
                  s_erdat-low(4) ' - '
                  s_erdat-high+4(2) '/'
                  s_erdat-high+6(2) '/'
                  s_erdat-high(4)
                  INTO lwa_header-info.
      APPEND lwa_header TO lit_header.
      CLEAR: lwa_header.
    Run Date of Report format MM/DD/YY
      lwa_header-typ  = 'S'.
      lwa_header-key = text-017 .
      CONCATENATE  sy-datum+4(2) '/'
                   sy-datum+6(2) '/'
                   sy-datum(4) INTO lwa_header-info .
      APPEND lwa_header TO lit_header.
      CLEAR: lwa_header.
    call function REUSE_ALV_COMMENTARY_WRITE to use TOP_OF_PAGE event.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = lit_header.
    ENDFORM .                              " FORM top-of-page.

Maybe you are looking for

  • ITunes won't work, please help

    Hello Apple Discussions. I've been having trouble with my iTunes account. Every time I try to open the program it tells me that an error has occurred and has to close. I've been reading through what other people have tried to get around this problem,

  • Using Automator to create a "video server"

    I'm looking to turn an Xserve into a video server for a digital signage situation. I know I can use Automator to open a video file in Quicktime and automatically play it full screen, however, is it possible to do the following with automator (or in s

  • How can i include a file in my JSP

    hello i have one jst who need to use an instance of a class called Part I need to include that file in my JSP but How do i do that How do i import my Part.java class in my JSP ???

  • Help regarding table names

    kindly help me out with table names used in payroll and also related to processing class and cumulation class

  • Copying a shape to an Exact size in PSE

    I'm trying to place photos within a film strip and make each one an exact size to fit. I was told to select the first photo, then hit inverse and select the second photo and hit delete. Instead of it making it the exact size it removes the photo ( se