Regarding header alv

Hi all,
Below i m giving my ALV program actually my requirement is i have to get "program name","date" ,"time" , and "pageno".
in the header of the report.
so i tried but i m not getting can anyonehelp me or change my code as per my requirement.
<code>
*ztest_alv_raj.
*& Report  ZSAMPLEALV3                                                 *
REPORT  ZSAMPLEALV3
        MESSAGE-ID Z00.
TABLE DECLARATIONS
TABLES : EKKO.        "Purchasing Document Header
CONSTANTS DECLARATIONS
CONSTANTS : C_EBELN(5) VALUE 'EBELN'.
DATA DECLARATIONS
DATA : V_FLAG,        "For Select Status
       V_DATA(50).    "To Store Data
TYPE DECLARATIONS FOR ALV                                            *
TYPE-POOLS : SLIS.
*Type Declarations for Field Catalog for Basic List
DATA : I_FLDCAT_HEAD  TYPE SLIS_T_FIELDCAT_ALV,
       WA_FLDCAT_HEAD TYPE SLIS_FIELDCAT_ALV.
*Type Declarations for Field Catalog for Secondary List
DATA : I_FLDCAT_ITEM  TYPE SLIS_T_FIELDCAT_ALV,
       WA_FLDCAT_ITEM TYPE SLIS_FIELDCAT_ALV.
*Type Declarations for Displaying Images on Basic Grid
DATA : I_COMMENT  TYPE SLIS_T_LISTHEADER,
       WA_COMMENT TYPE SLIS_LISTHEADER.
*Type Declarations for Displaying Images on Secondary Grid
DATA : I_COMMENT_SEC  TYPE SLIS_T_LISTHEADER,
       WA_COMMENT_SEC TYPE SLIS_LISTHEADER.
*Type Declarations for ALV Events for Basic Grid
DATA : I_EVENTS TYPE SLIS_T_EVENT,
       WA_EVENT LIKE LINE OF I_EVENTS.
*Type Declarations for ALV Events for Secondary Grid
DATA : I_EVENTS_SEC TYPE SLIS_T_EVENT,
       WA_EVENT_SEC LIKE LINE OF I_EVENTS.
*Type Declarations for Layout Design
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
*Type Declarations for Linking the fields
DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
Type declarations for coloring field
DATA : wa_color type LVC_S_SCOL.
DATA: IT_COLOR TYPE TABLE OF LVC_S_SCOL.
INTERNAL TABLE DECLARATIONS
*--Internal Table for Basic List
DATA : BEGIN OF IT_FINAL_BAS OCCURS 0,
         EBELN LIKE EKKO-EBELN,        "Purchasing Document Number
         BUKRS LIKE EKKO-BUKRS,        "Company Code
         AEDAT LIKE EKKO-AEDAT,        "Date on which the record was created
         EKORG LIKE EKKO-EKORG,        "Purchasing Organization
         EKGRP LIKE EKKO-EKGRP,        "Purchasing group
         COLOR(3) ,                     "For applying color
       END OF IT_FINAL_BAS.
*--Internal Table for Secondary List
DATA : BEGIN OF IT_FINAL_SEC OCCURS 0,
         EBELN LIKE EKPO-EBELN,        "Purchasing Document Number
         MATNR LIKE EKPO-MATNR,        "Material Number
         TXZ01 LIKE EKPO-TXZ01,        "Material Desc
         WERKS LIKE EKPO-WERKS,        "Plant
         LGORT LIKE EKPO-LGORT,        "Location
         MATKL LIKE EKPO-MATKL,        "Material Group
         MENGE LIKE EKPO-MENGE,        "Purchase order quantity
         MEINS LIKE EKPO-MEINS,        "Order unit
         NETPR LIKE EKPO-NETPR,        "Net price in purchasing document (in document currency)
         NETWR LIKE EKPO-NETWR,        "Net order value in PO currency
         DUMMY LIKE ICON-ID,           "For placing Icon
         COLOR(3) ,                     "For applying color
       END OF IT_FINAL_SEC.
*--Internal Table for Secondary List with selected records
DATA : BEGIN OF I_ITEM_DISPLAY OCCURS 0,
         EBELN LIKE EKPO-EBELN,        "Purchasing Document Number
         MATNR LIKE EKPO-MATNR,        "Material Number
         TXZ01 LIKE EKPO-TXZ01,        "Material Desc
         WERKS LIKE EKPO-WERKS,        "Plant
         LGORT LIKE EKPO-LGORT,        "Location
         MATKL LIKE EKPO-MATKL,        "Material Group
         MENGE LIKE EKPO-MENGE,        "Purchase order quantity
         MEINS LIKE EKPO-MEINS,        "Order unit
         NETPR LIKE EKPO-NETPR,        "Net price in purchasing document (in document currency)
         NETWR LIKE EKPO-NETWR,        "Net order value in PO currency
         DUMMY LIKE ICON-ID,           "For placing Icon
         COLOR(3) ,                     "For applying color
       END OF I_ITEM_DISPLAY.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN.
SELECTION-SCREEN END OF BLOCK B1.
Event : INITIALIZATION
INITIALIZATION.
  MOVE 'Developed by'(001) TO V_DATA.
Event : AT SELECTION SCREEN
AT SELECTION-SCREEN.
  PERFORM VALIDATE_EBELN.
Event : START-OF-SELECTION
START-OF-SELECTION.
*--Getting the Data
  PERFORM GET_DATA.
*--Generating the Field catalog for basic and secondary grid
  PERFORM GET_FLDCAT.
*--Generating the Layout for basic and secondary grid
  PERFORM GET_LAYOUT.
*--Generating the key infor to link Basic grid to Secondary grid
  PERFORM GET_KEYINFO.
*--Generating the Events for Basic and Secondary Grid
  PERFORM GET_EVENTS.
Event : END-OF-SELECTION
END-OF-SELECTION.
  IF V_FLAG EQ 'X'.
*--Generating Basic List
    PERFORM DISP_BASIC_LIST.
  ELSE.
    MESSAGE I010 WITH 'No Data Found To Display'(002).
  ENDIF.
     SUB-ROUTINES
*&      Form  VALIDATE_EBELN
      Validating the PO No
FORM VALIDATE_EBELN .
  SELECT EBELN
  UP TO 1 ROWS
  INTO (EKKO-EBELN)
  FROM EKKO
  WHERE EBELN IN S_EBELN.
  ENDSELECT.
  IF SY-SUBRC NE 0.
    MESSAGE I010 WITH 'Invalid PO No'(003) S_EBELN-LOW 'To'(004) S_EBELN-HIGH.
  ENDIF.
ENDFORM.                    " VALIDATE_EBELN
*&      Form  GET_DATA
      Getting Basic List and Secondary List Data
FORM GET_DATA .
*--Getting Basic List Data
  SELECT EBELN                  "PO No
         BUKRS                  "Company Code
         AEDAT                  "Creation Date
         EKORG                  "Purch Org
         EKGRP                  "Purch Group
   INTO TABLE IT_FINAL_BAS
   FROM EKKO
   WHERE EBELN IN S_EBELN.
*--Getting Secondary List Data
  IF SY-SUBRC EQ 0.
    SELECT EBELN                "PO No
           MATNR                "Material No
           TXZ01                "Material Desc
           WERKS                "Plant
           LGORT                "Location
           MATKL                "Material Group
           MENGE                "PO Qty
           MEINS                "Unit
           NETPR                "Net Price
           NETWR                "Net Value
      INTO TABLE IT_FINAL_SEC
      FROM EKPO
      WHERE EBELN IN S_EBELN.
  ENDIF.
  IF SY-SUBRC EQ 0.
    V_FLAG = 'X'.
  ELSE.
    V_FLAG = SPACE.
  ENDIF.
ENDFORM.                    " GET_DATA
*&      Form  GET_FLDCAT
      Generating the Field Catalog
FORM GET_FLDCAT .
*--Generating the Field Catalog for Basic List
  WA_FLDCAT_HEAD-FIELDNAME = 'EBELN'(005).
  WA_FLDCAT_HEAD-COL_POS = '1'.
  WA_FLDCAT_HEAD-JUST = 'C'.
  WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
  WA_FLDCAT_HEAD-SELTEXT_M  = 'PO Number'(006).
  WA_FLDCAT_HEAD-DDICTXT = 'M'.
  WA_FLDCAT_HEAD-REF_TABNAME = ' '.
  WA_FLDCAT_HEAD-HOTSPOT = 'X'.
  APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
  CLEAR WA_FLDCAT_HEAD .
  WA_FLDCAT_HEAD-FIELDNAME = 'BUKRS'(007).
  WA_FLDCAT_HEAD-COL_POS = '2'.
  WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
  WA_FLDCAT_HEAD-SELTEXT_M = 'Company Code'(008).
  WA_FLDCAT_HEAD-DDICTXT = 'M'.
  APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
  WA_FLDCAT_HEAD-FIELDNAME = 'AEDAT'(009).
  WA_FLDCAT_HEAD-COL_POS = '3'.
  WA_FLDCAT_HEAD-OUTPUTLEN = '10'.
  WA_FLDCAT_HEAD-SELTEXT_M = 'PO Date'(010).
  WA_FLDCAT_HEAD-DDICTXT = 'M'.
  APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
  WA_FLDCAT_HEAD-FIELDNAME = 'EKORG'(011).
  WA_FLDCAT_HEAD-COL_POS = '4'.
  WA_FLDCAT_HEAD-OUTPUTLEN = '6'.
  WA_FLDCAT_HEAD-SELTEXT_M = 'PO Org'(012).
  WA_FLDCAT_HEAD-DDICTXT = 'M'.
  APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
  WA_FLDCAT_HEAD-FIELDNAME = 'EKGRP'(013).
  WA_FLDCAT_HEAD-COL_POS = '5'.
  WA_FLDCAT_HEAD-OUTPUTLEN = '8'.
  WA_FLDCAT_HEAD-SELTEXT_M = 'PO Group'(014).
  WA_FLDCAT_HEAD-DDICTXT = 'M'.
  WA_FLDCAT_HEAD-DO_SUM = 'X'.
  APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
*--Generating the Field Catalog for secondary List
  WA_FLDCAT_ITEM-FIELDNAME = 'EBELN'(005).
  WA_FLDCAT_ITEM-COL_POS = '1'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '12'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'PO Number'(006).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
WA_FLDCAT_ITEM-REF_TABNAME = ' '.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'MATNR'(015).
  WA_FLDCAT_ITEM-COL_POS = '2'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '18'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Item Number'(016).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
WA_FLDCAT_ITEM-REF_TABNAME = ' '.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'TXZ01'(017).
  WA_FLDCAT_ITEM-COL_POS = '3'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '40'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Item Desc'(018).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'WERKS'(019).
  WA_FLDCAT_ITEM-COL_POS = '4'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '6'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Plant'(020).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'LGORT'(021).
  WA_FLDCAT_ITEM-COL_POS = '5'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '9'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Location'(022).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'MATKL'(023).
  WA_FLDCAT_ITEM-COL_POS = '6'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '10'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Mat Group'(024).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'MENGE'(025).
  WA_FLDCAT_ITEM-COL_POS = '7'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '17'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'PO Qty'(026).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'MEINS'(027).
  WA_FLDCAT_ITEM-COL_POS = '8'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Unit'(028).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'NETPR'(029).
  WA_FLDCAT_ITEM-COL_POS = '9'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '14'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Net Price'(037).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'NETWR'(030).
  WA_FLDCAT_ITEM-COL_POS = '10'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '16'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Net Value'(031).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
  WA_FLDCAT_ITEM-FIELDNAME = 'DUMMY'(038).
  WA_FLDCAT_ITEM-COL_POS = '11'.
  WA_FLDCAT_ITEM-JUST = 'C'.
  WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
  WA_FLDCAT_ITEM-SELTEXT_M  = 'Status'(039).
  WA_FLDCAT_ITEM-DDICTXT = 'M'.
  WA_FLDCAT_ITEM-ICON = 'X'.
  APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
ENDFORM.                    " GET_FLDCAT
*&      Form  DISP_BASIC_LIST
      Generating the Basic List
FORM DISP_BASIC_LIST .
**--Applying the color to record in Basic List
    SORT IT_FINAL_BAS BY BUKRS.
     LOOP AT IT_FINAL_BAS.
        IF IT_FINAL_BAS-BUKRS LE '1000'.
          IT_FINAL_BAS-COLOR = 'C21'.
        ELSEIF IT_FINAL_BAS-BUKRS GT '1000' AND IT_FINAL_BAS-BUKRS LE '2000'.
          IT_FINAL_BAS-COLOR = 'C41'.
        ELSEIF IT_FINAL_BAS-BUKRS GT '2000' AND IT_FINAL_BAS-BUKRS LE '3000'.
          IT_FINAL_BAS-COLOR = 'C71'.
        ELSEIF IT_FINAL_BAS-BUKRS GT '3000'.
          IT_FINAL_BAS-COLOR = 'C51'.
        ELSE.
          IT_FINAL_BAS-COLOR = 'C61'.
        ENDIF.
          MODIFY IT_FINAL_BAS INDEX SY-TABIX.
       ENDLOOP.
*--Generating the Grid output
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK                 = ' '
    I_BYPASSING_BUFFER                = ' '
    I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = 'ZTEST_ALV_RAJ'
    I_CALLBACK_PF_STATUS_SET          = ' '
    I_CALLBACK_USER_COMMAND           = ' '
    I_CALLBACK_TOP_OF_PAGE            = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
    I_CALLBACK_HTML_END_OF_LIST       = ' '
    I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = 'PLAIN_BACKGROUND'
    I_GRID_TITLE                      =
    I_GRID_SETTINGS                   =
      IS_LAYOUT                         = WA_LAYOUT
      IT_FIELDCAT                       = I_FLDCAT_HEAD
    IT_EXCLUDING                      =
    IT_SPECIAL_GROUPS                 =
    IT_SORT                           =
    IT_FILTER                         =
    IS_SEL_HIDE                       =
    I_DEFAULT                         = 'X'
    I_SAVE                            = ' '
    IS_VARIANT                        =
      IT_EVENTS                         = I_EVENTS
    IT_EVENT_EXIT                     =
    IS_PRINT                          =
    IS_REPREP_ID                      =
    I_SCREEN_START_COLUMN             = 0
    I_SCREEN_START_LINE               = 0
    I_SCREEN_END_COLUMN               = 0
    I_SCREEN_END_LINE                 = 0
    IT_ALV_GRAPHICS                   =
    IT_HYPERLINK                      =
    IT_ADD_FIELDCAT                   =
    IT_EXCEPT_QINFO                   =
    I_HTML_HEIGHT_TOP                 =
    I_HTML_HEIGHT_END                 =
  IMPORTING
    E_EXIT_CAUSED_BY_CALLER           =
    ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = IT_FINAL_BAS
   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.                    " DISP_BASIC_LIST
*&      Form  GET_EVENTS
      Getting the ALV Events
FORM GET_EVENTS .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     I_LIST_TYPE           = 0
   IMPORTING
     ET_EVENTS             = I_EVENTS
   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.
*--Calling the User Defined sub-routines for ALV Events
  IF NOT I_EVENTS[] IS INITIAL.
    READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    WA_EVENT-FORM = 'GENERATE_USERCOMMAND_HEADER'.
    MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
    READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
    WA_EVENT-FORM = 'FRM_TOP_OF_PAGE'.
    MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
    READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
    WA_EVENT-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
    MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
    READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
    WA_EVENT-FORM = 'GENERATE_USERCOMMAND3'.
    MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
  ENDIF.
ENDFORM.                    " GET_EVENTS
*&      Form  GENERATE_USERCOMMAND_HEADER
      Displaying Header-Text and Logo on Grid
FORM GENERATE_USERCOMMAND_HEADER.
  CLEAR I_COMMENT[].
  WA_COMMENT-TYP = 'H'.
  WA_COMMENT-INFO = 'General Purchase Order Info'(032).
  APPEND WA_COMMENT TO I_COMMENT.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = I_COMMENT
      I_LOGO             = 'ENJOYSAP_LOGO'.
    I_END_OF_LIST_GRID       = 'X'.
ENDFORM.                    " GENERATE_USERCOMMAND
FORM FRM_TOP_OF_PAGE.
  write :/ text-005 intensified on.
  write :/ text-006 , sy-sysid,14 sy-mandt.
  write :/ text-007 , sy-uname.
  write :/ text-008 , sy-datum.
  write :/ text-009 , sy-uzeit.
  skip.
ENDFORM.
*&      Form  GENERATE_USERCOMMAND_FOOTER
      Displaying Footer-Text
FORM GENERATE_USERCOMMAND_FOOTER .
  CLEAR I_COMMENT[].
  WA_COMMENT-TYP = 'S'.
  WA_COMMENT-KEY = V_DATA.
  WA_COMMENT-INFO = 'Rajesh'(033).
  APPEND WA_COMMENT TO I_COMMENT.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = I_COMMENT
     I_LOGO                   = ''
      I_END_OF_LIST_GRID       = 'X'.
ENDFORM.                    " GENERATE_USERCOMMAND_FOOTER
*&      Form  GENERATE_USERCOMMAND3
      Getting the F-Code and Calling Secondary List
-->  P_UCOMM        LIKE SY-UCOMM
-->  P_SELFIELD     TYPE SLIS_SELFIELD
FORM GENERATE_USERCOMMAND3 USING P_UCOMM LIKE SY-UCOMM
                                 P_SELFIELD TYPE SLIS_SELFIELD.
   CASE P_UCOMM.
    WHEN '&IC1'.   "DOUBLE CLICK Func-Code
      READ TABLE IT_FINAL_BAS INDEX P_SELFIELD-TABINDEX.
      REFRESH I_ITEM_DISPLAY.
*--Applying the color to record in Secondary List
      LOOP AT IT_FINAL_SEC WHERE EBELN = IT_FINAL_BAS-EBELN.
        IF IT_FINAL_SEC-NETPR EQ 0.
          IT_FINAL_SEC-DUMMY = '@0A@'.
          IT_FINAL_SEC-COLOR = 'C61'.
        ELSEIF IT_FINAL_SEC-NETPR GT 0 AND IT_FINAL_SEC-NETPR LE 200.
          IT_FINAL_SEC-DUMMY = '@09@'.
          IT_FINAL_SEC-COLOR = 'C41'.
        ELSEIF IT_FINAL_SEC-NETPR GT 200 AND IT_FINAL_SEC-NETPR LE 1000.
          IT_FINAL_SEC-DUMMY = '@08@'.
          IT_FINAL_SEC-COLOR = 'C71'.
        ELSEIF IT_FINAL_SEC-NETPR GT 1000.
          IT_FINAL_SEC-DUMMY = '@6P@'.
          IT_FINAL_SEC-COLOR = 'C51'.
        ENDIF.
          MODIFY IT_FINAL_SEC INDEX SY-TABIX.
        MOVE-CORRESPONDING IT_FINAL_SEC TO I_ITEM_DISPLAY.
        APPEND I_ITEM_DISPLAY.
        CLEAR I_ITEM_DISPLAY.
      ENDLOOP.
*--Getting the ALV Events of Secondary List
      PERFORM GET_EVENTS_SEC.
*--Generating the ALV Secondary Grid output
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
        I_INTERFACE_CHECK              = ' '
        I_BYPASSING_BUFFER             =
        I_BUFFER_ACTIVE                = ' '
          I_CALLBACK_PROGRAM             = 'ZTEST_ALV_RAJ'
        I_CALLBACK_PF_STATUS_SET       = ' '
        I_CALLBACK_USER_COMMAND        = ' '
        I_STRUCTURE_NAME               =
          I_BACKGROUND_ID                = 'PLAIN_BACKGROUND'
          IS_LAYOUT                      = WA_LAYOUT
          IT_FIELDCAT                    = I_FLDCAT_ITEM
        IT_EXCLUDING                   =
        IT_SPECIAL_GROUPS              =
        IT_SORT                        =
        IT_FILTER                      =
        IS_SEL_HIDE                    =
        I_DEFAULT                      = 'X'
        I_SAVE                         = ' '
        IS_VARIANT                     =
          IT_EVENTS                      = I_EVENTS_SEC
        IT_EVENT_EXIT                  =
        IS_PRINT                       =
        IS_REPREP_ID                   =
        I_SCREEN_START_COLUMN          = 0
        I_SCREEN_START_LINE            = 0
        I_SCREEN_END_COLUMN            = 0
        I_SCREEN_END_LINE              = 0
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER        =
        ES_EXIT_CAUSED_BY_USER         =
        TABLES
          T_OUTTAB                       = I_ITEM_DISPLAY
        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.
  ENDCASE.
ENDFORM.                    " GENERATE_USERCOMMAND3
*&      Form  GET_LAYOUT
      Generating the Layout
FORM GET_LAYOUT .
  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.           "OPTIMIZING FIELD WIDTH
  WA_LAYOUT-ZEBRA = 'X'.                       "PUTTING ZEBRA COLORS
  WA_LAYOUT-INFO_FIELDNAME = 'COLOR'(034).     "APPLYING COLORS TO ROWS
ENDFORM.                    " GET_LAYOUT
*&      Form  GET_KEYINFO
      Getting Key info
FORM GET_KEYINFO .
*--Linking the Basic List to Secondary List
  WA_KEYINFO-HEADER01 = C_EBELN.
  WA_KEYINFO-ITEM01 = C_EBELN.
ENDFORM.                    " GET_KEYINFO
*&      Form  GET_EVENTS_SEC
      Getting Secondary List Events
FORM GET_EVENTS_SEC .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
  EXPORTING
    I_LIST_TYPE           = 0
   IMPORTING
     ET_EVENTS             = I_EVENTS_SEC
   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.
*--Calling user-defined sub-routines for Secondary List
  IF NOT I_EVENTS_SEC[] IS INITIAL.
    READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'TOP_OF_PAGE'.
    WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_H_SEC'.
    MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
    READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'END_OF_LIST'.
    WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_F_SEC'.
    MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
  ENDIF.
ENDFORM.                    " GET_EVENTS_SEC
*&      Form  GENERATE_USERCOMMAND_H_SEC
   Displaying Header-Text and Logo on Grid For Secondary List
FORM GENERATE_USERCOMMAND_H_SEC.
  CLEAR I_COMMENT_SEC[].
  WA_COMMENT_SEC-TYP = 'H'.
  WA_COMMENT_SEC-INFO = 'Purchase Order Info'(035).
  APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = I_COMMENT_SEC
      I_LOGO             = 'ENJOYSAP_LOGO'.
    I_END_OF_LIST_GRID       = 'X'.
ENDFORM.                    " GENERATE_USERCOMMAND_H_SEC
*&      Form  GENERATE_USERCOMMAND_F_SEC
      Displaying Footer-Text for Secondary List
FORM GENERATE_USERCOMMAND_F_SEC.
  CLEAR I_COMMENT_SEC[].
  WA_COMMENT_SEC-TYP = 'S'.
  WA_COMMENT_SEC-KEY = V_DATA.
  WA_COMMENT_SEC-INFO = 'rajesh'(036).
  APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = I_COMMENT_SEC
     I_LOGO                   = ''
      I_END_OF_LIST_GRID       = 'X'.
ENDFORM.                    " GENERATE_USERCOMMAND_F_SEC
</code>
frnds the bolded code i need to get in the header. hlp me how to do that.
Thanks,
satish

Hi,
Please find below code..
*Global Constants
CONSTANTS:c_top_of_page(15) TYPE c VALUE 'SUB_TOP_OF_PAGE', "#EC NOTEXT
          c_chk(1)          TYPE c VALUE 'X',         "check
          c_save(1)         TYPE c VALUE 'A',         "save
          c_final(15)       TYPE c VALUE 't_sd_pa_dtl',
          c_header          TYPE char1  VALUE 'H',    "Header in ALV
          c_item            TYPE char1  VALUE 'S'.    "Item in ALV
*&  Internal tables Declaration
DATA:
    For ALV events
      t_events TYPE slis_t_event,
    For ALV top of page
      t_alv_top_of_page TYPE slis_t_listheader,
    For Field catalog
      t_catlog TYPE slis_t_fieldcat_alv.
*&      Form  sub_create_events
      For defining ALV Events
FORM sub_create_events .
Local variable for event
  DATA: w_event TYPE slis_alv_event. "Events
Events for the ALV
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type = 1   "2
    IMPORTING
      et_events   = t_events.
Sort by Name
  SORT t_events BY name.
  CLEAR w_event.
  READ TABLE t_events INTO w_event WITH KEY name = slis_ev_top_of_page
                                                   BINARY SEARCH.
  IF sy-subrc = 0.
    MOVE c_top_of_page TO w_event-form.
    MODIFY t_events FROM w_event TRANSPORTING form WHERE
     name = slis_ev_top_of_page.
  ENDIF.
  CLEAR : w_event.
ENDFORM.                    " sub_create_events
*&      Form  SUB_CREATE_COMMENTRY_WRITE
      text
FORM sub_bulid_header .
  DATA: l_system TYPE char10 .          " System id
  DATA: l_r_line TYPE slis_listheader,  " Hold list header
        l_date TYPE char10,             " Date
        l_time TYPE char10,             " Time
        l_title(120) TYPE c.            " Title
Title  Display
  l_r_line-typ = c_header.               " header
  l_title = sy-title.
  l_r_line-info = l_title.
  APPEND l_r_line TO t_alv_top_of_page.
  CLEAR l_r_line.
Run date Display
  l_r_line-typ  = c_item.                " Item
  WRITE: sy-datum  TO l_date MM/DD/YYYY.
  l_r_line-key = 'Run Date :'(021).
  l_r_line-info = l_date.
  APPEND l_r_line TO t_alv_top_of_page.
  CLEAR: l_r_line,
         l_date.
Run time Display
  l_r_line-typ  = c_item.                " Item
  WRITE: sy-uzeit  TO l_time USING EDIT MASK '__:__:__'.
  l_r_line-key  = 'Run Time :'(022).
  l_r_line-info =  l_time.
  APPEND l_r_line TO t_alv_top_of_page.
  CLEAR: l_r_line,
         l_time.
User Display
  l_r_line-typ  = c_item.                " Item
  l_r_line-key = 'User :'(023).
  l_r_line-info = sy-uname.
  APPEND l_r_line TO t_alv_top_of_page.
  CLEAR: l_r_line,
         l_date.
  CONCATENATE  sy-sysid '-' sy-mandt INTO l_system .
System ID Display
  l_r_line-typ  = c_item.                " Item
  l_r_line-key = 'System :'(024) .
  l_r_line-info = l_system.
  APPEND l_r_line TO t_alv_top_of_page.
  CLEAR: l_r_line.
ENDFORM.                    " sub_bulid_header
      FORM sub_top_of_page
      For defining Top Of Page
FORM sub_top_of_page.                                       "#EC CALLED
This funcation module will diplay the top of the page
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_alv_top_of_page.
  REFRESH:t_alv_top_of_page.
ENDFORM.                    "sub_a_top_of_page
Please Reward if my answer is helpful
Thanks,
Murali

Similar Messages

  • Regarding Header(top-of-page) in ALV Report

    Dear All,
    I am displaying name and address of company on the top of alv report and after that alv grid is displaying.
    e.g.
    'XYZ' LTD.
    ADDRESS1,PINCODE1.
    ACCOUNTING DOC.NO. DOC TYPE G/L ACCT. AMOUNT
    123456 DD 6353 444400
    123457 DD 6334 455500
    Issue : Header is coming on all the pages I want it to come only on first page.
    I am using REUSE_ALV_COMMENTARY_WRITE function for top of page.
    Pls , suggest any suitable suggestion.
    Thanks & regards,
    Sandip Sonar

    Hi,
    check the below code
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      i_callback_program = i_repid
      it_fieldcat = header
      is_layout = gt_layout
      i_callback_top_of_page = 'TOP-OF-PAGE1'
      i_grid_title = xyz
      it_sort = gt_sort[]
      i_default = 'X'
      i_save = 'U'
      is_variant = gt_variant
      it_events = gt_events
    tables
      t_outtab = t_output.
    form top-of-page1.
    data: header type slis_t_listheader,
          wa     type slis_listheader,
         flag(1).
    if flag is initial.
    TITLE AREA
    wa-typ = 'S'.
    wa-info = text-h04.
    append wa to header.
    wa-typ = 'S'.
    write sy-datum to wa-info mm/dd/yyyy.
    concatenate text-h03 wa-info into wa-info separated by space.
    append wa to header.
    wa-typ = 'S'.
    concatenate text-h02 sy-uname into wa-info separated by space.
    append wa to header.
    wa-typ = 'S'.
    concatenate text-h01 sy-repid into wa-info separated by space.
    append wa to header.
    ********" LOGO
    call function 'REUSE_ALV_COMMENTARY_WRITE'
    exporting
    it_list_commentary = header
    i_logo = 'ENJOYSAP_LOGO'.
    *********" LOGO
    flag = 'x'.
    endif.
    endform.
    Edited by: sateesh kumar on Nov 30, 2009 10:47 AM

  • Regarding editable alv

    Hi all,
              Frnds i am working in editable alv using function modules not object oriented abap.
    i m trying to edit a Field(MATNR ) in my output list and finally update it with changed values in the DB table.
    But i m getting syntax error like
    "the work area i_final is not alligned properly
    below i m providing my code.
    <code>
    *& Report  ZEDITABLE_ALV1
    REPORT  ZEDITABLE_ALV1.
    TABLES: vbak,vbap.
    TYPE-POOLS: slis. "ALV Declarations
    data: BEGIN OF i_final occurs 0,
          vbeln like vbap-vbeln,
          posnr like vbap-posnr,
          matnr like vbap-matnr,
          erdat like vbap-erdat,
    END OF i_final.
    DATA : C_X(1) TYPE C VALUE 'X',
           C_FC_MODIFY(6) TYPE C VALUE 'MODIFY'.
    *DATA: i_final TYPE STANDARD TABLE OF T_FINAL with header line.
         i_temp type standard table of T_FINAL with header line.
    *wa_final like line of i_final.
    *DATA:i_final LIKE vbap OCCURS 0.
    *DATA:wa_final LIKE vbap.
    *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.
    *Start-of-selection.
    START-OF-SELECTION.
    PERFORM data_retrieval.
    PERFORM build_fieldcatalog.
    PERFORM build_layout.
    PERFORM display_alv_report.
    *& Form BUILD_FIELDCATALOG
    *•     Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    fieldcatalog-fieldname = 'VBELN'.
    fieldcatalog-seltext_m = 'sales order'.
    fieldcatalog-col_pos = 0.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'ERDAT'.
    fieldcatalog-seltext_m = 'date'.
    fieldcatalog-col_pos = 1.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'material no.'.
    fieldcatalog-col_pos = 2.
    fieldcatalog-edit = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'POSNR'.
    fieldcatalog-seltext_m = 'line item no.'.
    fieldcatalog-col_pos = 3.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-FIELDNAME = 'REC_SEL'.
    fieldcatalog-NO_OUT = C_X.
    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_user_command = 'USER_COMMAND'
    i_callback_pf_status_set = 'GUI_STAT'
    *i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    *it_special_groups = gd_tabgroup
    *it_events = it_events
    i_save = 'X'
    *is_variant = z_template
    TABLES
    t_outtab = i_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. " DISPLAY_ALV_REPORT
    **& Form DATA_RETRIEVAL
    *•     Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
    *SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a
    *INNER JOIN vbap AS b ON avbeln = bvbeln
    *INTO TABLE i_final WHERE a~vbeln = b~vbeln.
    select VBELN ERDAT MATNR POSNR up to 10 rows from vbap into corresponding fields of  table i_final.
    ENDFORM. " DATA_RETRIEVAL
    *•     FORM GUI_STAT *
    *•     --> RT_EXTAB *
    FORM gui_stat USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'MODIFY' EXCLUDING rt_extab.
    ENDFORM.
    *•     FORM USER_COMMAND *
    *•     --> U_COMM *
    *•     --> RS_SELFIELD *
    FORM user_command USING u_comm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    DATA:selfield TYPE slis_selfield.
    *RS_SELFIELD-REFRESH = C_X.
    CASE u_comm.
    *IF U_COMM = C_FC_MODIFY.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    *READ TABLE I_TEMP WITH KEY VBELN = I_FINAL-VBELN.
    *IF SY-SUBRC = 0.
    i_final-matnr = vbap-matnr.
    *MODIFY I_final INDEX SY-TABIX.
    *ENDIF.
    ENDLOOP.
    *ENDIF.
    MODIFY VBAP FROM TABLE i_final.
    IF SY-SUBRC = 0.
    COMMIT WORK AND WAIT.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    ENDIF.
    *append i_final.
    *it_temp = i_final.
    *append it_temp.
    **UPDATE sflight FROM TABLE sflight_tab.
    *ENDLOOP.
    *update vbap from table i_final.
    *IF sy-subrc = 0.
    *MESSAGE s000(0) WITH 'records updated successfully'.
    *ENDIF.
    ENDCASE.
    ENDFORM.
    </code>
    Frnds plz help me in this regard.
    Thanks,
    satya

    Try something like this...ur code was not clear..i have done something u can understand.
    First check that u r not trying to update the primary key field.
    first before updating.
    Before updating select the record u r going to update from the main table.
    select single * from VBAP where <pass the key values>.
    if sy-subrc = 0.
    move the rest of the values to the table header except the key values.
    vbap-<field1> = value1.
    vbap-<field2> = value2.
    after moving the values.
    update <table>.
    if sy-subrc = 0.
    commit work.
    endif.
    data:st_vbap type vbap.
    WHEN 'UPDATE'.
    LOOP AT i_final. " into wa_final."into wa_final.
    select single * from vbap where vbeln = I_FINAL-VBELN.
    move-corresponding i_final to vbap.
    update vbap.
    if sy-subrc = 0.
    commit work.
    wk_cnt = wk_cnt + 1.
    endif.
    at last.
    *MESSAGE I000 WITH SY-DBCNT
    *' Record(s) has been Updated'(020).
    endat.
    endloop

  • Regarding Hierarchial ALV Display

    Can any one please tell me the 'keyinfo' parameter in the ALV function REUSE_ALV_HIERSEQ_LIST_DISPLAY.
    I want all the details regarding the parameter keyinfo.
    Thanks in advance.

    this is used to specify that according to which field u want hierarchy....
    means i want that according to material number i want hierarchical display than i have to pass matnr in this
    and
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    In this we passing field name of header table and item table....
    Now see this example..
    In this i want hierarchy depend on Material and palnt both..
    so my code will be
    TYPE-POOLS : slis.
    TABLES : mseg.
    DATA : BEGIN OF itab_head OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    END OF itab_head.
    DATA : BEGIN OF itab_item OCCURS 0,
    mat LIKE mseg-matnr,
    matnr LIKE mseg-matnr,
    werks LIKE mseg-werks,
    mblnr LIKE mseg-mblnr,
    menge LIKE mseg-menge,
    END OF itab_item.
    DATA : t_fcat TYPE slis_t_fieldcat_alv,
    key_info TYPE slis_keyinfo_alv,
    t_eve TYPE slis_t_event,
    gt_subtot TYPE slis_t_sortinfo_alv,
    subtot LIKE LINE OF gt_subtot,
    t_listhead TYPE slis_t_listheader,
    st_line TYPE slis_listheader.
    DATA : t_mtdoc LIKE mseg-mblnr.
    SELECT-OPTIONS : mat FOR mseg-matnr.
    INITIALIZATION.
    PERFORM build_cat USING t_fcat.
    PERFORM build_eve.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM dis_data.
    *& Form build_cat
    text
    -->TEMP_FCAT text
    FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
    DATA : wa_fcat TYPE slis_fieldcat_alv.
    wa_fcat-tabname = 'ITAB_HEAD'.
    wa_fcat-fieldname = 'MAT'.
    wa_fcat-seltext_m = 'Material'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_HEAD'.
    wa_fcat-fieldname = 'WERKS'.
    wa_fcat-seltext_m = 'Plant'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MBLNR'.
    wa_fcat-seltext_m = 'Material Doc.'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    wa_fcat-tabname = 'ITAB_ITEM'.
    wa_fcat-fieldname = 'MENGE'.
    wa_fcat-seltext_m = 'Quantity'.
    wa_fcat-do_sum = 'Y'.
    APPEND wa_fcat TO temp_fcat.
    CLEAR wa_fcat.
    subtot-spos = 1.
    subtot-fieldname = 'MAT'.
    subtot-tabname = 'ITAB_HEAD'.
    subtot-up = 'X'.
    subtot-group = 'X'.
    subtot-subtot = 'X'.
    subtot-expa = 'X'.
    APPEND subtot TO gt_subtot.
    ENDFORM. "build_cat
    *& Form build_eve
    text
    FORM build_eve.
    DATA : wa_eve TYPE slis_alv_event.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    i_list_type = 0
    IMPORTING
    et_events = t_eve
    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.
    ENDFORM. "build_eve
    *& Form get_data
    text
    FORM get_data.
    SELECT matnr AS mat werks mblnr menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab_item
    WHERE matnr IN mat.
    ENDFORM. "get_data
    *& Form dis_data
    text
    FORM dis_data.
    key_info-header01 = 'MAT'.
    key_info-item01 = 'MAT'.
    key_info-header02 = 'WERKS'.
    key_info-item02 = 'WERKS'.
    REFRESH itab_head.
    LOOP AT itab_item.
    ON CHANGE OF itab_item-mat OR itab_item-werks.
    MOVE-CORRESPONDING itab_item TO itab_head.
    APPEND itab_head.
    ENDON.
    ENDLOOP.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
    i_callback_program = 'ZALV_PRDS'
    it_fieldcat = t_fcat
    it_sort = gt_subtot
    it_events = t_eve[]
    i_tabname_header = 'ITAB_HEAD'
    i_tabname_item = 'ITAB_ITEM'
    is_keyinfo = key_info
    TABLES
    t_outtab_header = itab_head
    t_outtab_item = itab_item
    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. "dis_data
    reward if usefull.....

  • Need information regarding Hierarchical ALV display

    How to total sub items in an Heirarchical ALV List display?

    Hi,
    I have one Hierarchical alv example .. please see it. Also check B*ALV in se38.
    *& Report  ZLAXMI_ALVEXER4                                             *
    REPORT  ZLAXMI_ALVEXER4    MESSAGE-ID ZZ        .
    *& TABLES DECLARATION                                                  *
    TABLES: VBAK, VBAP.
    *& TYPE POOLS DECLARATION                                              *
    TYPE-POOLS: SLIS.
                          DATA DECLARATIONS                             *
    DATA: V_FLAG TYPE C.                        "Flag to display the header
    DATA: V_REPID TYPE SY-REPID.
    *& INTERNAL TABLE DECLARATION                                          *
    DATA: BEGIN OF IT_VBAK OCCURS 0,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           AUART LIKE VBAK-AUART,
           NETWR LIKE VBAK-NETWR,
           EXPAND(1),
          END OF IT_VBAK.
    DATA: BEGIN OF IT_VBAP OCCURS 0,
           VBELN LIKE VBAP-VBELN,
           POSNR LIKE VBAP-POSNR,
           MATNR LIKE VBAP-MATNR,
           PSTYV LIKE VBAP-PSTYV,
           CHARG LIKE VBAP-CHARG,
         END OF IT_VBAP.
    DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    *events
          IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,
          V_CALL TYPE C,
          X_USER TYPE  SLIS_EXIT_BY_USER,
          IT_VARIANT LIKE  DISVARIANT OCCURS 0 WITH HEADER LINE,
          X_KEYINFO TYPE SLIS_KEYINFO_ALV,
    *layout
          X_LAYOUT TYPE SLIS_LAYOUT_ALV,
    *sort
          IT_SORT TYPE SLIS_T_SORTINFO_ALV,
          WA_SORT LIKE LINE OF IT_SORT,
          X_CAT TYPE SLIS_FIELDCAT_ALV,
          V_TABIX LIKE SY-TABIX.
          Selection screen Declaration
    *--BLOCK1
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
                    S_AUART FOR VBAK-AUART.
    SELECTION-SCREEN END OF BLOCK B1.
    AT SELECTION-SCREEN                                                 *
    *- Validations
    AT SELECTION-SCREEN.
      PERFORM VALIDATE_SCREEN.
                  START OF SELECTION                                    *
    START-OF-SELECTION.
    *- To get data from VBAK
      PERFORM GET_DATA.
    *to get data from VBAP
      PERFORM GET_DATA_VBAP.
      PERFORM PREPARE_ALV.
                  END OF SELECTION                                    *
    END-OF-SELECTION.
      PERFORM DISPLAY_REPORT.
    *&      Form  VALIDATE_SCREEN
          text
    -->  p1        text
    <--  p2        text
    FORM VALIDATE_SCREEN .
      DATA: LV_VBELN LIKE VBAK-VBELN,
            LV_AUART LIKE VBAK-AUART.
      IF NOT S_VBELN[] IS INITIAL.
        SELECT VBELN
               INTO LV_VBELN
               FROM VBAK
               WHERE VBELN IN S_VBELN.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC'(002).
        ENDIF.
      ENDIF.
      IF NOT S_AUART[] IS INITIAL.
        SELECT AUART
               INTO LV_AUART
               FROM VBAK
               WHERE AUART IN S_AUART.
        ENDSELECT.
        IF SY-SUBRC <> 0.
          MESSAGE E000 WITH 'INVALID SALES DOC TYPE'(003).
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_SCREEN
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA .
      SELECT VBELN
             AUDAT
             AUART
             NETWR
             FROM VBAK
             INTO TABLE IT_VBAK
             WHERE VBELN IN S_VBELN
             AND AUART IN S_AUART.
      IF SY-SUBRC = 0.
        SORT IT_VBAK BY VBELN.
      ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_DATA_VBAP
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA_VBAP .
      SELECT VBELN
             POSNR
             MATNR
             PSTYV
             CHARG
             INTO TABLE IT_VBAP
             FROM VBAP
             FOR ALL ENTRIES IN IT_VBAK
             WHERE VBELN = IT_VBAK-VBELN.
      IF SY-SUBRC = 0.
        SORT IT_VBAP BY VBELN POSNR.
      ENDIF.
    ENDFORM.                    " GET_DATA_VBAP
    *&      Form  prepare_alv
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_ALV .
    Prepare field catalog .
      PERFORM PREPARE_CATALOG.
    Modify catalog
      PERFORM CHANGE_ATTR_OF_CATALOG.
    Modify Layout
      PERFORM MODIFY_LAYOUT.
    Sort Catalog
      PERFORM SORT_CATALOG.
    ENDFORM.                    " prepare_alv
    *&      Form  prepare_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM PREPARE_CATALOG .
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAK'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        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.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
      CLEAR: IT_FLDCAT1[].
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME         = SY-REPID
          I_INTERNAL_TABNAME     = 'IT_VBAP'
          I_INCLNAME             = SY-REPID
        CHANGING
          CT_FIELDCAT            = IT_FLDCAT1[]
        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.
      APPEND LINES OF IT_FLDCAT1 TO IT_FLDCAT.
    ENDFORM.                    " prepare_catalog
    *&      Form  change_attr_of_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM CHANGE_ATTR_OF_CATALOG .
      LOOP AT IT_FLDCAT INTO X_CAT.
        V_TABIX = SY-TABIX.
        CASE X_CAT-FIELDNAME.
          WHEN  'EXPAND'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-NO_OUT = 'X'.
            ENDIF.
         when  'VBELN'.
           if x_cat-tabname = 'IT_VBAK'.
             x_cat-no_out = 'X'.
           endif.
          WHEN  'VBELN'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '1'.
              X_CAT-SELTEXT_M = 'SALES DOC'.
              X_CAT-SELTEXT_L = 'SALES DOC'.
              X_CAT-SELTEXT_S = 'SALES DOC'.
              X_CAT-OUTPUTLEN = '10'.
            ENDIF.
          WHEN  'AUDAT'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '2'.
              X_CAT-SELTEXT_M = 'DOC DATE'.
              X_CAT-SELTEXT_L = 'DOC DATE'.
              X_CAT-SELTEXT_S = 'DOC DATE'.
              X_CAT-OUTPUTLEN = '8'.
            ENDIF.
          WHEN  'AUART'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '3'.
              X_CAT-SELTEXT_M = 'ORDER REASON'.
              X_CAT-SELTEXT_L = 'ORDER REASON'.
              X_CAT-SELTEXT_S = 'ORDER REASON'.
              X_CAT-OUTPUTLEN = '5'.
            ENDIF.
          WHEN  'NETWR'.
            IF X_CAT-TABNAME = 'IT_VBAK'.
              X_CAT-COL_POS   = '4'.
              X_CAT-SELTEXT_M = 'NET PRICE'.
              X_CAT-SELTEXT_L = 'NET PRICE'.
              X_CAT-SELTEXT_S = 'NET PRICE'.
              X_CAT-OUTPUTLEN = '15'.
            ENDIF.
        ENDCASE.
        MODIFY IT_FLDCAT FROM X_CAT.
        CLEAR X_CAT.
      ENDLOOP.
    ENDFORM.                    " change_attr_of_catalog
    *&      Form  modify_layout
          text
    -->  p1        text
    <--  p2        text
    FORM MODIFY_LAYOUT .
      X_LAYOUT-DEFAULT_ITEM = 'X'.
      X_LAYOUT-ZEBRA = 'X'.
      X_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
    ENDFORM.                    " modify_layout
    *&      Form  sort_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM SORT_CATALOG .
      CLEAR WA_SORT.
      WA_SORT-SPOS = '01'.
      WA_SORT-FIELDNAME = 'VBELN' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
      CLEAR  WA_SORT.
      WA_SORT-SPOS = '02'.
      WA_SORT-FIELDNAME = 'POSNR' .
      WA_SORT-TABNAME   = 'IT_VBAP'.
      WA_SORT-UP        = 'X'.
      APPEND WA_SORT TO IT_SORT.
    ENDFORM.                    " sort_catalog
    *&      Form  DISPLAY_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_REPORT .
      IT_VARIANT-REPORT = SY-REPID.
      SORT IT_VBAK BY VBELN.
      SORT IT_VBAP BY VBELN POSNR.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          IS_LAYOUT               = X_LAYOUT
          IT_FIELDCAT             = IT_FLDCAT[]
          IT_SORT                 = IT_SORT
          IS_VARIANT              = IT_VARIANT
          IT_EVENTS               = IT_EVENTS[]
          I_TABNAME_HEADER        = 'IT_VBAK'
          I_TABNAME_ITEM          = 'IT_VBAP'
          IS_KEYINFO              = X_KEYINFO
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER = V_CALL
          ES_EXIT_CAUSED_BY_USER  = X_USER
        TABLES
          T_OUTTAB_HEADER         = IT_VBAK
          T_OUTTAB_ITEM           = IT_VBAP
        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_REPORT
    Regards,
    Laxmi.

  • Heading alv

    Can any one pls tell me that how can i make the heading in a report with time and date to be displayed at the top with heading using alv.

    refer this code....
    use events top of page or top of list whatever u want.....n put required fields....
    REPORT  ZALV1.
    ******************TABLE DECLARATION***********************************
    TABLES : VBAP.                    " tables declaration
    *****************TYPE POOLS*******************************************
    TYPE-POOLS : SLIS.                " slis type pool
    *****************INTERNAL TABLE DECLARATION***************************
    DATA : BEGIN OF IT_VBAP OCCURS 0,
    " internal table for sales document item
          VBELN LIKE VBAP-VBELN,      " sales document
          POSNR LIKE VBAP-POSNR,      " document item
          ERNAM LIKE VBAP-ERNAM,
          " name of the person who created the object
          ERDAT LIKE VBAP-ERDAT,      " date on which the record was created
          MATNR LIKE VBAP-MATNR.      " material number
    DATA : END OF IT_VBAP.
    DATA : BEGIN OF IT_MARA OCCURS 0, " general material data
           MATNR LIKE MARA-MATNR,     " material number
           ERNAM LIKE MARA-ERNAM,
           " name of the person who created the object
           MATKL LIKE MARA-MATKL,     " material group
           MEINS LIKE MARA-MEINS,     " base unit of measure
           PSTAT LIKE MARA-PSTAT.     " maintainence status
    DATA : END OF IT_MARA.
    ******************VARIABLE
    DECLARATION**********************************
    DATA : REPID LIKE SY-REPID.       " program name
    DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for vbap
           WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
    " field catalog table for mara
           WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
    DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA: GT_XEVENTS TYPE SLIS_T_EVENT.
    DATA: GT_YEVENTS TYPE SLIS_T_EVENT.            " events table
    DATA : XS_EVENT  TYPE SLIS_ALV_EVENT.          " events type
    DATA : GT_PRINT TYPE SLIS_PRINT_ALV.           " print table
    *******************MULTIPLE SELECT INPUT
    PARAMETERS**********************
    SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
    " multiple selection for sales document
    ******************INITIALIZATION**************************************
    INITIALIZATION.
      REPID = SY-REPID.
    *******************START OF
    SELECTION************************************
    START-OF-SELECTION.
      PERFORM POP_VBAP.
      " populating the table with document item data
      PERFORM POP_MARA.
      " populating the table with general material data
      PERFORM FIELD_CAT.
      " mapping the fields for the field catalog
      PERFORM EVENTS.                      " using the events
      PERFORM BLOCK_LIST.
      " displaying the data in blocked list
    *&      Form  field_cat
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CAT .
      WA_FIELDCAT-FIELDNAME = 'VBELN'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
      WA_FIELDCAT-COL_POS = 1.
      WA_FIELDCAT-OUTPUTLEN = 10.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'POSNR'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.
      WA_FIELDCAT-COL_POS = 2.
      WA_FIELDCAT-OUTPUTLEN = 6.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ERNAM'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'NAME'.
      WA_FIELDCAT-COL_POS = 3.
      WA_FIELDCAT-OUTPUTLEN = 12.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'ERDAT'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'DATE'.
      WA_FIELDCAT-COL_POS = 4.
      WA_FIELDCAT-OUTPUTLEN = 8.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT-FIELDNAME = 'MATNR'.
      WA_FIELDCAT-TABNAME = 'IT_VBAP'.
      WA_FIELDCAT-SELTEXT_L = 'MAT NO'.
      WA_FIELDCAT-COL_POS = 5.
      WA_FIELDCAT-OUTPUTLEN = 18.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      WA_FIELDCAT1-FIELDNAME = 'MATNR'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.
      WA_FIELDCAT1-COL_POS = 1.
      WA_FIELDCAT1-OUTPUTLEN = 18.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'ERNAM'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'NAME'.
      WA_FIELDCAT1-COL_POS = 2.
      WA_FIELDCAT1-OUTPUTLEN = 12.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'MATKL'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.
      WA_FIELDCAT1-COL_POS = 3.
      WA_FIELDCAT1-OUTPUTLEN = 9.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'MEINS'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'UNITS'.
      WA_FIELDCAT1-COL_POS = 4.
      WA_FIELDCAT1-OUTPUTLEN = 3.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
      WA_FIELDCAT1-FIELDNAME = 'PSTAT'.
      WA_FIELDCAT1-TABNAME = 'IT_MARA'.
      WA_FIELDCAT1-SELTEXT_L = 'STATUS'.
      WA_FIELDCAT1-COL_POS = 5.
      WA_FIELDCAT1-OUTPUTLEN = 15.
      APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
      CLEAR WA_FIELDCAT1.
    ENDFORM.                    " field_cat
    *&      Form  events
          text
    -->  p1        text
    <--  p2        text
    FORM EVENTS .
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
      XS_EVENT-FORM = 'XEND_OF_PAGE'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      XS_EVENT-FORM = 'XTOP_OF_PAGE'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      XS_EVENT-FORM = 'XTOP_OF_LIST'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
      XS_EVENT-FORM = 'XEND_OF_LIST'.
      APPEND XS_EVENT TO GT_XEVENTS.
      CLEAR XS_EVENT.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.
      XS_EVENT-FORM = 'YEND_OF_PAGE'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
      XS_EVENT-FORM = 'YTOP_OF_PAGE'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
      XS_EVENT-FORM = 'YTOP_OF_LIST'.
      APPEND XS_EVENT TO GT_YEVENTS.
      CLEAR XS_EVENT.
      XS_EVENT-NAME = SLIS_EV_END_OF_LIST.
      XS_EVENT-FORM = 'YEND_OF_LIST'.
      APPEND XS_EVENT TO GT_YEVENTS.
    ENDFORM.                    " events
    *&      Form  XTOP_OF_PAGE
          text
    FORM XTOP_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'X_TOP_OF_PAGE'.
    ENDFORM.                    "XTOP_OF_PAGE
          FORM XTOP_OF_LIST                                             *
    FORM XTOP_OF_LIST.
    BREAK-POINT.
      WRITE: / 'X_TOP_OF_LIST'.
    ENDFORM.                    "XTOP_OF_LIST
          FORM XEND_OF_PAGE                                             *
    FORM XEND_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'X_END_OF_PAGE'.
    ENDFORM.                    "XEND_OF_PAGE
          FORM XEND_OF_LIST                                             *
    FORM XEND_OF_LIST.
    BREAK-POINT.
      WRITE: / 'X_END_OF_LIST'.
    ENDFORM.                    "XEND_OF_LIST
    FORM YTOP_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'Y_TOP_OF_PAGE'.
    ENDFORM.                    "YTOP_OF_PAGE
          FORM YTOP_OF_LIST                                             *
    FORM YTOP_OF_LIST.
    BREAK-POINT.
      WRITE: / 'Y_TOP_OF_LIST'.
    ENDFORM.                    "YTOP_OF_LIST
          FORM YEND_OF_PAGE                                             *
    FORM YEND_OF_PAGE.
    BREAK-POINT.
      WRITE: / 'Y_END_OF_PAGE'.
    ENDFORM.                    "YEND_OF_PAGE
          FORM YEND_OF_LIST                                             *
    FORM YEND_OF_LIST.
    BREAK-POINT.
      WRITE: / 'Y_END_OF_LIST'.
    ENDFORM.                    "YEND_OF_LIST
    *&      Form  POP_VBAP
          text
    -->  p1        text
    <--  p2        text
    FORM POP_VBAP .
      SELECT VBELN
               POSNR
               ERNAM
               ERDAT
               MATNR
               FROM VBAP
               INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
               WHERE VBELN IN S_VBELN.
    ENDFORM.                    " POP_VBAP
    *&      Form  POP_MARA
          text
    -->  p1        text
    <--  p2        text
    FORM POP_MARA .
      LOOP AT IT_VBAP.
        SELECT SINGLE MATNR
                      ERNAM
                      MATKL
                      MEINS
                      PSTAT
                      FROM MARA
                      INTO CORRESPONDING FIELDS OF IT_MARA
                      WHERE MATNR = IT_VBAP-MATNR.
        APPEND IT_MARA.
      ENDLOOP.
    ENDFORM.                    " POP_MARA
    *&      Form  BLOCK_LIST
          text
    -->  p1        text
    <--  p2        text
    FORM BLOCK_LIST .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          I_CALLBACK_PROGRAM       = REPID
          I_CALLBACK_PF_STATUS_SET = ' '
          I_CALLBACK_USER_COMMAND  = 'user_command'.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
          EXPORTING
            IS_LAYOUT                        = WA_LAYOUT
            IT_FIELDCAT                      = IT_FIELDCAT
            I_TABNAME                        = 'IT_VBAP'
            IT_EVENTS                        = GT_XEVENTS
      IT_SORT                          =
      I_TEXT                           = ' '
          TABLES
            T_OUTTAB                         = IT_VBAP
    EXCEPTIONS
      PROGRAM_ERROR                    = 1
      MAXIMUM_OF_APPENDS_REACHED       = 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_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT                        = WA_LAYOUT
          IT_FIELDCAT                      = IT_FIELDCAT1
          I_TABNAME                        = 'IT_MARA'
          IT_EVENTS                        = GT_YEVENTS
        IT_SORT                          =
        I_TEXT                           = ' '
        TABLES
          T_OUTTAB                         = IT_MARA
      EXCEPTIONS
        PROGRAM_ERROR                    = 1
        MAXIMUM_OF_APPENDS_REACHED       = 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_BLOCK_LIST_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK             = ' '
         IS_PRINT                      = GT_PRINT
      I_SCREEN_START_COLUMN         = 0
      I_SCREEN_START_LINE           = 0
      I_SCREEN_END_COLUMN           = 0
      I_SCREEN_END_LINE             = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER       =
      ES_EXIT_CAUSED_BY_USER        =
    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.                    " BLOCK_LIST
    Regards
    Vasu

  • Colour for the List heading ALV

    Hi,
    I want to know as to how we can change the colour for the heading when we are using the report display with REUSE_ALV_LIST_DISPLAY.
    The default colour is blue, how to change it to the other colour??
    Thanks,
    Sirisha Matta.

    http://www.sap-img.com/abap/line-color-in-alv-example.htm
    Regards,
    Amit

  • Regarding Header And Footer in Data type Creation

    Hi All,
    Can Any One Please Send me One Screen Shot Developed with Header And Footer in the Data type Creation
    I want to Know How to Create And where to create that in DT Creation
    And Why Do we need Both of these in DT Creation
    Regards
    Vamsi

    Hi,
    Will u Please send One Screen With These Details, So that I Can Uderstand More
    ID : [email protected]
    Please send
    Regards
    Vamsi

  • Regarding header proble in FM GUI_download.

    Hi,
    I want to write header in XL file by using the paramter fieldnames, but the FM is not considering full text what i m giving ,
    please see the below code
    *To download
    DATA : BEGIN OF t_header OCCURS 0,
           name(100) TYPE c,
           END OF t_header.
    DATA : BEGIN OF itab OCCURS 0,
           fld1(100) TYPE c,
           fld2 TYPE char10,
           fld3 TYPE char10,
           END   OF itab.
    DATA: v_pass_path TYPE string.
    itab-fld1 = 'Hi'.
    itab-fld2 = 'hello'.
    itab-fld3 = 'welsuresh'.
    APPEND itab.
    CLEAR itab.
    itab-fld3 = 'welcome'.
    APPEND itab.
    t_header-name = 'Field1 for sure and ucb and acc'.
    APPEND t_header.
    t_header-name = 'Field2'.
    APPEND t_header.
    t_header-name = 'Field3'.
    APPEND t_header.
    v_pass_path = 'P:\Suresh\UCB\Incidents\INC - sanjay - pooja\File from pooja\suresh.xls'.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename                        = v_pass_path
        filetype                        = 'DBF'       " This is important
    *for XL download
       APPEND                          = 'X'
      WRITE_FIELD_SEPARATOR           = 'X'
        header                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
        WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = 'X'
      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                      = ' '
    IMPORTING
      FILELENGTH                      =
      TABLES
        data_tab                        = itab
        fieldnames                      = t_header.
    thanks,
    Suresh

    Hi Suresh,
    Try to replicate through this code,
    TABLES: sflight.
    DATA:
      BEGIN OF t_sflight OCCURS 0,
      carrid TYPE sflight-carrid,
      connid(5) TYPE c,
      fldate TYPE sflight-fldate,
      seatsmax TYPE sflight-seatsmax,
      seatsocc TYPE sflight-seatsocc,
      END OF t_sflight.
    DATA:
      BEGIN OF t_header OCCURS 0,
      header(50) TYPE c,
    END OF t_header.
    PARAMETERS: p_carr TYPE sflight-carrid.
    *DATA: t_sflight TYPE TABLE OF sflight WITH HEADER LINE.
    SELECT carrid connid fldate seatsmax seatsocc
      FROM sflight
    INTO TABLE t_sflight
    WHERE carrid = p_carr.
    t_header-header = 'Carrid'.
    APPEND t_header.
    t_header-header = 'Connid'.
    APPEND t_header.
    t_header-header = 'Fldate'.
    APPEND t_header.
    t_header-header = 'Max'.
    APPEND t_header.
    t_header-header = 'Min'.
    APPEND t_header.
    LOOP AT t_sflight .
      WRITE: / t_sflight-carrid,
      t_sflight-connid,
      t_sflight-fldate,
      t_sflight-seatsmax,
      t_sflight-seatsocc.
    ENDLOOP.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename   = 'C:\My Documents\temp\test.xls'
        filetype   = 'DAT'
      TABLES
        data_tab   = t_sflight
        fieldnames = t_header.
    Regards
    Adil

  • Regarding list alv display

    Hi All,
    I am catching double click event in user command for alv list display,where we get one structure filled on runtime called slis_selfield upon double clicking on alv rows. in this structure i am not getting the field 'sel_tab_field' filled. and i am in need of that field value.
    can you help me out in this regard.
    Thanks in advance.
    Regards
    Ashutosh

    Hi ,
    FORM user_command USING p_ucomm LIKE sy-ucomm
    f_selfield TYPE slis_selfield.
    capture double click event on document number created.
    CASE p_ucomm.
    WHEN '&IC1'.
    IF f_selfield-tabname EQ 'I_DOC_CREATED'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ELSEIF f_selfield-tabname EQ 'I_ELOG'.
    CHECK NOT f_selfield-value IS INITIAL.
    SET PARAMETER ID 'BLN' FIELD f_selfield-value.
    SET PARAMETER ID 'BUK' FIELD so_bukrs-low.
    SET PARAMETER ID 'GJR' FIELD w_gjahr.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDIF.
    ENDCASE.
    I am not getting fieldname field of slis_selfield populated upon double clicking

  • Regarding header line in internal table

    Hi Experts,
    I wrote the following code to test the value of header line.
    TABLES: sflight.
    DATA: itab LIKE STANDARD TABLE OF sflight  WITH HEADER LINE.
    SELECT * FROM sflight  UP TO 10 ROWS.
      APPEND sflight to itab.
    ENDSELECT.
    WRITE:/ itab-carrid, itab-connid, itab-price
    1. o/p i got was the initial default values.
    My question is that->
    will this  display the last record  appended to the itab  or not???
    Could anyone please clear  my doubt ??
    Regards
    Sudhansu

    Hi
    Loop at your itab and inside there write the code
    TABLES: sflight.
    DATA: itab LIKE STANDARD TABLE OF sflight WITH HEADER LINE.
    SELECT * FROM sflight UP TO 10 ROWS.
    APPEND sflight to itab.
    ENDSELECT.
    <b>loop at itab.
    WRITE:/ itab-carrid, itab-connid, itab-price
    endloop.</b>
    regards
    Shiva

  • Regarding header item details on same screen

    Hi All,
    I have 2 internal tables with header and item details and i want to show them on same screen in ALV format.
    I need to show header on first half of screen and when user double click on 1 line, corresponding item details needs to be shown on lower screen part.
    Please help me with code for the requirement.
    Thanks in advance.

    use OO ALV. You will find many concepts by using the search input field + button

  • Regarding interactive Alv

    Hi abapers,
                          i am developing the alv interactive report . such that if any user clicks on particular matnr then it has to go for the MM02 Transaction Accounting tab.
    i should not do BDC. i am using function module called selection_view_find. how to acheive it? i am keep trying but not able to search in sdn . if possible post the sample code without doing bdc.
    my code is
    { IF rs_selfield-fieldname = 'MATNR'.}
    {READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.}
    {SET PARAMETER ID 'MAT' FIELD w_vbap-matnr.}
    { CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.}

    Use a
    IF rs_selfield-fieldname = 'MATNR'.
      READ TABLE t_vbap INTO w_vbap INDEX rs_selfield-tabindex.
      SET PARAMETER ID 'MAT' FIELD w_vbap-matnr. " material number
      SET PARAMETER ID 'WRK' FIELD w_vbap-werks. " Plant
      SET PARAMETER ID 'BWT' FIELD w_vbap-bwtar. " Valuation type
      SET PARAMETER ID 'MXX' FIELD 'B'. " function(s) to call
      CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
    Check table T132(T) for values of MXX parameter, and provide every required parameters.
    Regards,
    Raymond

  • Regarding multiple ALV's in a screen.

    Hi gurus,
                  I have to develop one ALV report having multiple reports in one screen, also if i click any of the row items in one screen, it will move to the second, the approach i am using is using oops-ABAP i m new to this subject, thought there are
    many materials available still i am not able to understand, so can some one please show me a sample code for 2 reports in a screen and explain it?
    Thanks & Regards,
    Swordfish.

    Hi,
    <li>We have one concept in ALV called ALV Blocked report. It means displaying multiple outputs on one screen.
    <li> We use 3 function modules for that.
    REUSE_ALV_BLOCK_LIST_INIT
    REUSE_ALV_BLOCK_LIST_APPEND  
    REUSE_ALV_BLOCK_LIST_DISPLAY
    <li>Try this program.It works fine.
    <pre><font color=blue>REPORT  zvenkat_blocked_alv.
    DATA: i_0000 TYPE STANDARD TABLE OF pa0000,
          i_0001 TYPE STANDARD TABLE OF pa0001,
          i_0002 TYPE STANDARD TABLE OF pa0002,
          i_0008 TYPE STANDARD TABLE OF pa0008.
    ALV Declarations
    TYPE-POOLS:slis.
    TYPES:
       t_fieldcat         TYPE slis_fieldcat_alv,
       t_events           TYPE slis_alv_event,
       t_layout           TYPE slis_layout_alv.
    DATA:
       w_fieldcat1        TYPE t_fieldcat,
       w_fieldcat2        TYPE t_fieldcat,
       w_fieldcat3        TYPE t_fieldcat,
       w_fieldcat4        TYPE t_fieldcat,
       w_events           TYPE t_events,
       w_layout           TYPE t_layout.
    DATA:
       i_fieldcat1         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat2         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat3         TYPE STANDARD TABLE OF t_fieldcat,
       i_fieldcat4         TYPE STANDARD TABLE OF t_fieldcat,
       i_events            TYPE STANDARD TABLE OF t_events.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM display_data.
    FORM get_data.
      SELECT *  FROM pa0000 INTO TABLE i_0000 UP TO 10 ROWS.
      SELECT *  FROM pa0001 INTO TABLE i_0001 UP TO 10 ROWS.
      SELECT *  FROM pa0002 INTO TABLE i_0002 UP TO 10 ROWS.
      SELECT *  FROM pa0008 INTO TABLE i_0008 UP TO 10 ROWS.
    ENDFORM. "get_data
    FORM display_data.
      PERFORM build_fieldcatalog USING 'PA0000' CHANGING i_fieldcat1.
      PERFORM build_fieldcatalog USING 'PA0001' CHANGING i_fieldcat2[].
      PERFORM build_fieldcatalog USING 'PA0002' CHANGING i_fieldcat3[].
      PERFORM build_fieldcatalog USING 'PA0008' CHANGING i_fieldcat4[].
      w_layout-max_linesize = '500'.
      PERFORM display_data_alv.
    ENDFORM. "display_data
    FORM display_data_alv .
      DATA:l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          i_callback_program = l_program.
    PERFORM build_block_list_append TABLES i_0000[] USING w_layout  i_fieldcat1[] 'PA0000' i_events[].
      PERFORM build_block_list_append TABLES i_0001[] USING w_layout i_fieldcat2[] 'PA0001' i_events[].
      PERFORM build_block_list_append TABLES i_0002[] USING w_layout i_fieldcat3[] 'PA0002' i_events[].
      PERFORM build_block_list_append TABLES i_0008[] USING w_layout i_fieldcat4[] 'PA0008' i_events[].
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
      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_data_ALV
    FORM build_block_list_append  TABLES outtab USING  layout fieldcat tabname events .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                        = layout
          it_fieldcat                      = fieldcat
          i_tabname                        = tabname
          it_events                        = events
        TABLES
          t_outtab                         = outtab.
      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.                    " build_block_list_append
    FORM build_fieldcatalog  USING    structure CHANGING i_fieldcat1.
      DATA:l_program TYPE sy-repid.
      l_program = sy-repid.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name   = l_program
          i_structure_name = structure
        CHANGING
          ct_fieldcat      = i_fieldcat1.
      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.                    " build_fieldcatalo</pre></font>
    Thanks
    Venkat.O

  • Regarding editable alv  save button

    Hi Friends,
                      I have an ALV report in which one of the Column is in editable mode.
                       i want to edit that column field with new value and press save .
                       Friends , i want to know what should i write to get things done.
    regards,
    Rajesh

    Hi Friends,
                      I have an ALV report in which one of the Column is in editable mode.
                       i want to edit that column field with new value and press save .
                       Friends , i want to know what should i write to get things done.
    regards,
    Rajesh

Maybe you are looking for

  • Ipod nano is not recognized by itunes.  it is also locked and no password known

    Ipod Nano 4th generation (the slim colored one) - the screen is locked - didn't set a passcode.  Also will not sync with itunes so can't reset that way.  When plugged into computer cycles between being 'connected' to the black Apple screen.  I have W

  • Labeling Variable Number of Plots on a Graph?

    I'm loading up an unknown number of files and graphing them. Since it can get a bit confusing, I'd like to be able to take a portion of the file name and label each plot on my graph. Since there is a variable number of graphs, I can't seem to work ar

  • Document Definition XPATH expressions1, 2, & 3

    I want to put a semi advanced XPATH expression into my document definition. When I receive the EDI for this document, I can get a status code in 2 different segments depending on the type of status it is. I would like to use the following xpath expre

  • IDOC to mutiple systems.

    Hi Paulie, Yes this can be achieved through enhanced receiver determination. If both the conditions that you provide for the mapping of Service node on the target, the message is send to both the systems. But i think you will need enhanced interface

  • Flash Player doesn't work for all accounts

    I am having a problem like others as described in this topic: http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=44&catid=184&threadid =1262196&enterthread=y Namely, Flash Player works fine for my main administrative account, but do