Header in ALV Report

Hi All,
I want to print a report in the following manner:
DATE:
CLASS GROUP :
MATNR   CLASS     ADSIZE
123          c             col1
124          c            col2
156          c             col2
DATE:
CLASS GROUP :
MATNR   CLASS     ADSIZE
125         a            col3
128         a            col4
150          a             col5
How do i do it...I am planning to do it with REUSE_ALV_LIST _DISPLAY...but i dont know how to print the header..plz help

<b>Note : In the below   i am passing  my purchase  order Ebeln  with internal table to the Form header so that all purchase  order are passed to Header  by this way you can also pass it  .</b>
<b>Add Title(heading) to ALV Grid</b>
In order to insert a report heading in to the ALV grid you need to perform the following steps:
1. Update 'REUSE_ALV_GRID_DISPLAY' FM call to include 'top-of-page' FORM
2. Create 'top-of-page' FORM
call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            i_callback_program      = gd_repid
            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
            is_layout               = gd_layout
            it_fieldcat             = fieldcatalog[]
            i_save                  = 'X'
       tables
            t_outtab                = it_ekko
       exceptions
            program_error           = 1
            others                  = 2.
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-ebeln.
  append wa_header to t_header.
  clear wa_header.
endform.
reward points if it is usefull .....
Girish

Similar Messages

  • Change Column Heading in ALV Report

    Hi,
    I have developed a ALV Report, showing correct output.
    Problem is that Column Heading is not showing correct...means it is showing as per field name. But We want to change as per our understand. i.e. One column heading is like Unrestricted Stock but we want Unrestricted Stock...(BILF is an indicator)..
    We have write in the code..
    FORM build_fieldcat10.
      CLEAR fieldcat_ln.
      ADD 1 TO col_pos.
      fieldcat_ln-ref_tabname = 'MARD'.
      fieldcat_ln-fieldname   = 'LABST'.
      fieldcat_ln-seltext_m   = 'BILF Unrest.Stock'.
      fieldcat_ln-key         = space.
      fieldcat_ln-do_sum      = space.
      fieldcat_ln-col_pos     = col_pos.
      fieldcat_ln-no_out      = space.
      fieldcat_ln-qfieldname  = space.
      fieldcat_ln-hotspot     = space.
      APPEND fieldcat_ln TO fieldcat.
    ENDFORM.                    " BUILD_FIELDCAT1
    But after change the selection text...not showing correct text..How can i change Column heading???
    Please help me..

    Thanks a lot dear..
    My problem resolved by using SCRTEXT_L.

  • Sub Header In ALV Report

    Hi Experts,
    I want to dispaly a P/L acount in ALV report format as given below , the items will diplay should be in Excel format as:
    1.Current Month  and YTD should be under in current Year Column  it  and again in next column  Current
    month and YTD should be under Last Year Column.
                            Current Year                               Last Year
    ITEM          No     Current Month     YTD     Current Month     YTD
    Please reply me ASAP.
    Thanks

    example:
    REPORT  ZHIERSEQ_ALV.
    TYPE-POOLS: slis.                    " ALV Global types
    CONSTANTS :
      c_x VALUE 'X',
      c_gt_vbap TYPE slis_tabname VALUE 'GT_VBAP',
      c_gt_vbak TYPE slis_tabname VALUE 'GT_VBAK'.
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
    PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN :
      SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
    PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
    SELECTION-SCREEN END OF LINE.
    TYPES :
    1st Table
      BEGIN OF ty_vbak,
        vbeln TYPE vbak-vbeln,             " Sales document
        kunnr TYPE vbak-kunnr,             " Sold-to party
        netwr TYPE vbak-netwr,             " Net Value of the Sales Order
        erdat TYPE vbak-erdat,             " Creation date
        waerk TYPE vbak-waerk,             " SD document currency
        expand TYPE xfeld,
      END OF ty_vbak,
    2nd Table
      BEGIN OF ty_vbap,
        vbeln TYPE vbap-vbeln,             " Sales document
        posnr TYPE vbap-posnr,             " Sales document
        matnr TYPE vbap-matnr,             " Material number
        arktx TYPE vbap-arktx,             " Material description
        netwr TYPE vbap-netwr,             " Net Value of the Sales Order
        waerk TYPE vbap-waerk,             " SD document currency
      END OF ty_vbap.
    DATA :
    1st Table
      gt_vbak TYPE TABLE OF ty_vbak,
    2nd Table
      gt_vbap TYPE TABLE OF ty_vbap.
    INITIALIZATION.
      v_1 = 'Maximum of records to read'.
      v_2 = 'With ''EXPAND'' field'.
    START-OF-SELECTION.
    Read Sales Document: Header Data
      SELECT vbeln kunnr netwr waerk erdat
        FROM vbak
          UP TO p_max ROWS
        INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
      IF gt_vbak[] IS NOT INITIAL.
      Read Sales Document: Item Data
        SELECT vbeln posnr matnr arktx netwr waerk
          FROM vbap
          INTO CORRESPONDING FIELDS OF TABLE gt_vbap
           FOR ALL ENTRIES IN gt_vbak
         WHERE vbeln = gt_vbak-vbeln.
      ENDIF.
    END-OF-SELECTION.
      PERFORM f_display.
          Form  F_DISPLAY
    FORM f_display.
    Macro definition
      DEFINE m_fieldcat.
        ls_fieldcat-tabname = &1.
        ls_fieldcat-fieldname = &2.
        ls_fieldcat-ref_tabname = &3.
        ls_fieldcat-cfieldname = &4.       " Field with currency unit
        append ls_fieldcat to lt_fieldcat.
      END-OF-DEFINITION.
      DEFINE m_sort.
        ls_sort-tabname = &1.
        ls_sort-fieldname = &2.
        ls_sort-up        = c_x.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DATA:
        ls_layout   TYPE slis_layout_alv,
        ls_keyinfo  TYPE slis_keyinfo_alv,
        ls_sort     TYPE slis_sortinfo_alv,
        lt_sort     TYPE slis_t_sortinfo_alv," Sort table
        ls_fieldcat TYPE slis_fieldcat_alv,
        lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog
      ls_layout-group_change_edit = c_x.
      ls_layout-colwidth_optimize = c_x.
      ls_layout-zebra             = c_x.
      ls_layout-detail_popup      = c_x.
      ls_layout-get_selinfos      = c_x.
      IF p_expand = c_x.
        ls_layout-expand_fieldname  = 'EXPAND'.
      ENDIF.
    Build field catalog and sort table
      m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
      m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
      m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.
      m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'ARKTX' 'VBAP' ''.
      m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
      m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.
      m_sort c_gt_vbak 'KUNNR'.
      m_sort c_gt_vbap 'NETWR'.
      ls_keyinfo-header01 = 'VBELN'.
      ls_keyinfo-item01 = 'VBELN'.
      ls_keyinfo-item02 = 'POSNR'.
    Dipslay Hierarchical list
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND'
          is_layout               = ls_layout
          it_fieldcat             = lt_fieldcat
          it_sort                 = lt_sort
          i_tabname_header        = c_gt_vbak
          i_tabname_item          = c_gt_vbap
          is_keyinfo              = ls_keyinfo
          i_save                  = 'A'
        TABLES
          t_outtab_header         = gt_vbak
          t_outtab_item           = gt_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.                               " F_LIST_DISPLAY
          Form USER_COMMAND                                             *
    FORM user_command USING i_ucomm     TYPE sy-ucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED
      DATA ls_vbak TYPE ty_vbak.
      CASE i_ucomm.
        WHEN '&IC1'.                       " Pick
          CASE is_selfield-tabname.
            WHEN c_gt_vbap.
            WHEN c_gt_vbak.
              READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
              IF sy-subrc EQ 0.
              Sales order number
                SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
              Display Sales Order
                CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
              ENDIF.
          ENDCASE.
      ENDCASE.
    ENDFORM.                               " USER_COMMAND

  • Heading in ALV report is showing up blank

    Hello Friends
    First of all thanks to you all for giving so much of help. I appreciate it.
    I would appreciate if some could please let me know, why my code is not printing the header in my ALV report. It shows up as blank. I have written the Form 'TOP-OF-PAGE'.
    Thanks a lot in advance
    Ram

    This coding will give u the solution ....
    this is an interactive ALV ...
    *& Report  ZMR001_MATERIAL_STOCK_VALUE
    REPORT  zmr001_material_stock_value.
          MODULE MMxxxxxxxx.                                              *
          Objective :..........................................         *
          Program   : Updates Tables (   )    Downloads data (  )       *
                      Outputs List   (   )                              *
          Technical Spec No ...............                             *
          Date Created       07/12/2006                                 *
          Author             Jayakumar.T....                            *
          Location           April Business / Banglore                  *
          LDB                .....                                      *
          External Dependencies                                         *
    Amendment History                                                  *
    Who        Change ID    Reason                                      *
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯                                     *
    XXXXXXXXX  AADDMMYYYY Where XXXX = Developers Name................. *
               AA- Developers Initial ................................  *
          Includes                                                      *
    *INCLUDE   :                                                           *
          Tables                                                        *
    *TABLES   :                                                            *
    TABLES : mchb , mara  , mbew , tvkos , t001w.
          Types                    Begin with TY_                       *
    *TYPES   :                                                             *
    TYPES : BEGIN OF ty_mchb,
            matnr LIKE mchb-matnr,
            charg LIKE mchb-charg,
            clabs LIKE mchb-clabs,
            werks LIKE mchb-werks,
            spart LIKE mara-spart,
            maktx LIKE makt-maktx,
            value LIKE mchb-clabs,
            total LIKE mchb-clabs,
            END OF ty_mchb.
    TYPE-POOLS: slis.
    CONSTANTS:
    c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA  gt_list_top_of_page TYPE slis_t_listheader.
          Constants                Begin with C_                        *
    *CONSTANTS:                                                            *
          Data                     Begin with W_                        *
    *DATA     :                                                            *
          Infotypes                   ( HR Module Specific)             *
    *INFOTYPES :                                                           *
          Internal tables          Begin with IT_                       *
    *DATA    :                                                             *
    DATA : it_mchb TYPE TABLE OF ty_mchb,
            wa_mchb TYPE ty_mchb ,
            it_final TYPE TABLE OF ty_mchb,
            wa_final TYPE ty_mchb,
            it_temp TYPE TABLE OF ty_mchb,
            wa_temp TYPE ty_mchb,
            it_temp1 TYPE TABLE OF ty_mchb,
            wa_temp1 TYPE ty_mchb
    DATA: it_listheader TYPE slis_t_listheader.
          Field Symbols            Begin with FS_                       *
    *FIELD-SYMBOLS:                                                        *
          Insert                                                        *
    *INSERT   :                                                            *
          Select Options          Begin with SO_                        *
    *SELECT-OPTIONS :                                                      *
          Parameters              Begin with PR_                        *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .
    PARAMETERS     : pr_vkorg LIKE tvko-vkorg OBLIGATORY .
    SELECT-OPTIONS : so_werks FOR mchb-werks.
    SELECT-OPTIONS : so_spart FOR mara-spart.
    SELECTION-SCREEN END OF BLOCK b1.
          Initialisation                                                *
    *INITIALISATION   :
    DATA:   wa_variant LIKE disvariant                ,   "Variant
            wa_fieldcat TYPE slis_fieldcat_alv        ,
            it_fieldcat TYPE slis_t_fieldcat_alv      ,
            it_fieldcat1 TYPE slis_t_fieldcat_alv      ,
            wa_layout   TYPE slis_layout_alv          ,
            wa_print    TYPE slis_print_alv           ,
            it_sort     TYPE slis_t_sortinfo_alv      ,
            it_sp_group TYPE slis_t_sp_group_alv      ,
            it_events   TYPE slis_t_event             ,
            it_list_top_of_page TYPE slis_t_listheader,
            w_title1    TYPE lvc_title,
            w_datum LIKE sy-datum.
    DATA slis_ev_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    DATA w_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE'.   " for top of page
    DATA it_event  TYPE slis_t_event.
    INITIALIZATION.
      PERFORM eventtab_build USING it_event[].
    *set pf-status '002'.
          At selection-screen                                           *
    AT SELECTION-SCREEN.
      SELECT SINGLE * FROM tvkos WHERE vkorg = pr_vkorg AND spart IN so_spart.
      IF sy-subrc NE 0 .
        MESSAGE text-008 TYPE 'E'.
      ENDIF.
      SELECT SINGLE * FROM t001w WHERE vkorg = pr_vkorg AND werks IN so_werks.
      IF sy-subrc NE 0 .
        MESSAGE text-009 TYPE 'E'.
      ENDIF.
          S T A R T   O F   S E L E C T I O N                           *
    START-OF-SELECTION.
      SELECT mc~matnr charg clabs werks spart maktx
      INTO CORRESPONDING
      FIELDS OF TABLE it_mchb FROM mchb AS mc
      INNER JOIN mara AS ma
      ON mamatnr = mcmatnr
      INNER JOIN makt AS mt
      ON mamatnr = mtmatnr
      WHERE werks IN so_werks AND
      spart IN so_spart
      AND spras = 'EN'
    it_temp[] =  it_mchb[].
    SORT it_temp BY matnr.
    DELETE ADJACENT DUPLICATES FROM it_temp COMPARING matnr.
    LOOP AT it_temp INTO wa_temp.
       it_temp1[] = it_mchb[].
       DELETE it_temp1 WHERE matnr NE wa_temp-matnr.
       LOOP AT it_temp1 INTO wa_temp1.
         SUM.
         EXIT.
       ENDLOOP.
       wa_final-matnr = wa_temp1-matnr.
       wa_final-charg = wa_temp1-charg.
       wa_final-maktx = wa_temp1-maktx.
       wa_final-clabs = wa_temp1-clabs.
       wa_final-werks = wa_temp1-werks.
       wa_final-spart = wa_temp1-spart.
       APPEND wa_final TO it_final.
    ENDLOOP.
      SORT it_mchb BY matnr.
      LOOP AT it_mchb INTO wa_mchb.
        ON CHANGE OF wa_mchb-matnr.
          IF wa_final-matnr IS NOT INITIAL.
            SELECT SINGLE * FROM mbew WHERE matnr = wa_final-matnr
            AND bwkey = wa_final-werks.
            IF mbew-vprsv =  'V'.
              wa_final-value = mbew-verpr.
            ELSEIF mbew-vprsv =  'S'.
              wa_final-value = mbew-stprs.
            ENDIF.
            wa_final-total = wa_final-value * wa_final-clabs.
            APPEND wa_final TO it_final.
            CLEAR wa_final.
          ENDIF.
        ENDON.
        wa_final-clabs = wa_mchb-clabs + wa_final-clabs .
        wa_final-matnr = wa_mchb-matnr.
        wa_final-werks = wa_mchb-werks.
        wa_final-charg = wa_mchb-charg.
        wa_final-maktx = wa_mchb-maktx.
      ENDLOOP.
      IF it_final IS INITIAL.
        MESSAGE text-010 TYPE 'I'.
      ELSE.
        PERFORM fieldcat.
        PERFORM display_data.
      ENDIF.
    LOOP AT it_mchb INTO  wa_mchb.
       WRITE : / , wa_mchb-matnr  , wa_mchb-charg , wa_mchb-maktx , wa_mchb-clabs , wa_mchb-werks , wa_mchb-spart .
    ENDLOOP.
    WRITE : / , 'Jaya'.
    LOOP AT it_final INTO  wa_final.
       WRITE : / , wa_final-matnr  , wa_final-charg , wa_final-maktx , wa_final-clabs , wa_final-werks , wa_final-spart .
    ENDLOOP.
    *GET XX.
    *END-OF-SELECTION.
          E N D       O F   S E L E C T I O N                           *
          At line selection                                             *
    *AT LINE-SELECTION.
          User Command Processing                                       *
    *AT USER-COMMAND.
          Top Of Page                                                   *
    *TOP-OF-PAGE.
          End Of Page                                                   *
    *END-OF-PAGE.
    FORM eventtab_build USING rt_events TYPE slis_t_event.
    *"Registration of events to happen during list display
      DATA: ls_event TYPE slis_alv_event.
    to get the events
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = rt_events.
      READ TABLE rt_events INTO ls_event WITH KEY name = slis_ev_top_of_page
      IF sy-subrc = 0.
        ls_event-form = slis_ev_top_of_page.
        MODIFY  rt_events FROM  ls_event TRANSPORTING form WHERE
        name = ls_event-form.
      ENDIF.
      READ TABLE rt_events INTO ls_event WITH KEY name = 'USER_COMMAND'.
      IF sy-subrc EQ 0.
        ls_event-form = 'USER_COMMAND'.
        MODIFY rt_events FROM ls_event TRANSPORTING form WHERE name = ls_event-name.
      ENDIF.
    ENDFORM.                    "eventtab_build
    *&      Form  fieldcat
    FORM fieldcat .
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'MATNR'.
      wa_fieldcat-seltext_m   = text-002 .
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'MAKTX'.
      wa_fieldcat-seltext_m   = text-003 .
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'CLABS'.
      wa_fieldcat-seltext_m   = text-004 .
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'VALUE'.
      wa_fieldcat-seltext_m   = text-006 .
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'TOTAL'.
      wa_fieldcat-seltext_m   = text-007 .
      APPEND wa_fieldcat TO it_fieldcat.
    ENDFORM.                    "fieldcat
    *&      Form  display_data
    FORM display_data .
      PERFORM comment_build USING gt_list_top_of_page[].
      wa_layout-info_fieldname = 'LINE_COLOR'. " Line Color
      wa_print-no_coverpage = 'X'.
      wa_print-no_print_listinfos = 'X'.  " Remove the default first page.
    to get thr grid display
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-repid
         i_background_id         = 'ALV_BACKGROUND'
         i_callback_top_of_page  = 'TOP_OF_PAGE'
          i_callback_user_command = 'USER_COMMAND'
         is_layout               = wa_layout
          it_fieldcat             = it_fieldcat
         i_default               = 'X'
          i_save                  = 'A'
          it_events               = it_event[]
         is_print                = wa_print
        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.                    " eventtab_build
    *&      Form  comment_build
    FORM comment_build USING lt_top_of_page TYPE  slis_t_listheader.
      DATA: ls_line TYPE slis_listheader.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
    to get the company text
      DATA w_name(50) TYPE c.
      ls_line-info = text-005 .
      APPEND ls_line TO lt_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-info = ''.
      APPEND ls_line TO lt_top_of_page.
    ENDFORM.                    "comment_build
    *&      Form  top_of_page
         to print at top of page
    FORM top_of_page.
    to pass the comment bulid for the top of page into the alv
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_list_top_of_page.
    ENDFORM.                    "top_of_page
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM user_command USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
         MESSAGE 'jj' TYPE 'I'.
          READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
          PERFORM build_fieldcatlog.
          PERFORM event_call USING it_event[].
         PERFORM POPULATE_EVENT_EKPO.
          PERFORM data_retrieval.
          PERFORM build_listheader USING it_listheader.
          PERFORM DISPLAY_ALV.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  BUILD_FIELDCATLOG
          text
    FORM build_fieldcatlog.
    clear it_fieldcat1[].
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'MATNR'.
      wa_fieldcat-seltext_m   = text-002 .
      APPEND wa_fieldcat TO it_fieldcat1.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'MAKTX'.
      wa_fieldcat-seltext_m   = text-003 .
      APPEND wa_fieldcat TO it_fieldcat1.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'CHARG'.
      wa_fieldcat-seltext_m   = text-003 .
      APPEND wa_fieldcat TO it_fieldcat1.
      CLEAR  wa_fieldcat.
      wa_fieldcat-fieldname = 'CLABS'.
      wa_fieldcat-seltext_m   = text-004 .
      APPEND wa_fieldcat TO it_fieldcat1.
    ENDFORM.                    "BUILD_FIELDCATLOG
    *&      Form  EVENT_CALL
          text
         -->RT_EVENTS  text
    FORM event_call USING rt_events TYPE slis_t_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = rt_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.
    ENDFORM.                    "event_call
    *&      Form  DATA_RETRIEVAL
          text
    FORM data_retrieval.
      it_temp[] = it_mchb[].
      DELETE it_temp WHERE matnr NE wa_final-matnr.
    ENDFORM.                    "DATA_RETRIEVAL
    *&      Form  BUILD_LISTHEADER
          text
         -->I_LISTHEADEtext
    FORM build_listheader USING i_listheader TYPE slis_t_listheader.
      DATA: hline1 TYPE slis_listheader.
      hline1-typ = 'H'.
      hline1-info = 'CHECKING PGM'.
    ENDFORM.                    "BUILD_LISTHEADER
    FORM DISPLAY_ALV.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = sy-REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      = TITLE_EKPO
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = It_FIELDCAT1[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         =
      I_SAVE                            = 'A'
      IS_VARIANT                        =
       IT_EVENTS                         = it_EVENTS[]
      TABLES
        T_OUTTAB                          = IT_temp[]
    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.

  • Two line column heading in ALV Report

    Hi Experts,
    My requirement is that I have to create an ALV report with columns having two lines of headings. Like a main heading called Consultants under which 5 to 10 columns of departments(Dept Num, Num of Ppl , Manager etc. ) and then Contractors(Name, Address Etc ) underwhich there would be 5 to 10 departments. Right now my report has the depts of...     
    How can i do that . If u would suggest by CL_SALV_TABLE then it would be great.
    Thanks a lot !
    Sau

    i don't think you can do it using cl_gui_alv_grid or cl_salv_table.

  • Two column header in ALV Report

    Hi Experts,
    Can I have 2 headers in ALV report kind of one header and one sub header below that.
    like i have to display a report having the same information for 3 systems so in header I can have the system name and below that
    usual headers.
    Thanks
    Yogesh Gupta

    it is is not possible using the ALV GRID function, ALV OO.
    it is possible with ALV List function. you might loose some functionalities layout etc.
    check this sample..
    cehck this image..
    http://img100.imageshack.us/img100/3846/output6ef.th.gif
    REPORT ZTEST_ALV message-id zz .
    TYPE-POOLS: SLIS.
    DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
    IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
    L_LAYOUT type slis_layout_alv,
    x_events type slis_alv_event,
    it_events type SLIS_T_EVENT.
    DATA: BEGIN OF ITAB OCCURS 0,
    VBELN LIKE VBAK-VBELN,
    POSNR LIKE VBAP-POSNR,
    MALE type i,
    female type i,
    END OF ITAB.
    SELECT VBELN
    POSNR
    FROM VBAP
    UP TO 20 ROWS
    INTO TABLE ITAB.
    X_FIELDCAT-FIELDNAME = 'VBELN'.
    X_FIELDCAT-SELTEXT_L = 'VBELN'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 1.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'POSNR'.
    X_FIELDCAT-SELTEXT_L = 'POSNR'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 2.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'MALE'.
    X_FIELDCAT-SELTEXT_L = 'MALE'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 3.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'FEMALE'.
    X_FIELDCAT-SELTEXT_L = 'FEMALE'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS = 3.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    x_events-NAME = SLIS_EV_TOP_OF_PAGE.
    x_events-FORM = 'TOP_OF_PAGE'.
    APPEND x_events TO iT_EVENTS.
    CLEAR x_events .
    L_LAYOUT-NO_COLHEAD = 'X'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = L_LAYOUT
    IT_FIELDCAT = IT_FIELDCAT
    it_events = it_events
    TABLES
    T_OUTTAB = ITAB
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    IF SY-SUBRC ne  0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    FORM TOP_OF_PAGE.
    *-To display the headers for main list
    FORMAT COLOR COL_HEADING.
    WRITE: / SY-ULINE(103).
    WRITE: / SY-VLINE,
    (8) ' ' ,
    SY-VLINE,
    (8) ' ' ,
    SY-VLINE,
    (19) '***'(015) centered,
    sy-vline.
    WRITE: / SY-VLINE,
    (8) 'VBELN'(013) ,
    SY-VLINE,
    (8) 'POSNR'(014) ,
    SY-VLINE,
    (8) 'MALE'(016) ,
    sy-vline,
    (8) 'FMALE'(017) ,
    sy-vline.
    FORMAT COLOR OFF.
    ENDFORM.

  • Double Header in ALV Report

    Hi,
    Is there any way of putting double headers to an ALV report?.
    Example:
              JANUARY
    WEEK1     WEEK2     WEEK3     WEEK4
    Rgds,
    Jose

    Hi Jose,
    ALV Header
    http://abap4.tripod.com/download/alvstub.txt
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_endlist.htm
    If using OOPs approach Refer Sample code:
    data: o_html             TYPE REF TO cl_dd_document.
    CLASS lcl_event_receiver IMPLEMENTATION.
    *-- Top of Page
      METHOD handle_print_top_of_page.
      ENDMETHOD.                    "handle_print_top_of_page
      METHOD handle_top_of_page.
      ENDMETHOD.                    "handle_top_of_page
    ENDCLASS.               "lcl_event_receiver IMPLEMENTATION
    DATA: lws_text  TYPE sdydo_text_element.
      IF cl_gui_alv_grid=>offline( ) IS INITIAL.
    *-- Object for HTML top container
        CREATE OBJECT o_html
            EXPORTING style            = 'ALV_GRID'
                      background_color = 35.
    *-- Top of Page
        CALL METHOD o_alvgrid->list_processing_events
          EXPORTING
            i_event_name = 'TOP_OF_PAGE'
            i_dyndoc_id  = o_html.
    *-- Total Record Text
        CALL METHOD o_html->add_text
          EXPORTING
            text         = text-012
            sap_emphasis = text-015.
        CALL METHOD o_html->add_gap
          EXPORTING
            width = 8.
    **-- Total record Value
        lws_text = cnt_total.
        CALL METHOD o_html->add_text
          EXPORTING
            text         = lws_text
            sap_emphasis = text-015.
        CLEAR  lws_text.
        CALL METHOD o_html->new_line
          EXPORTING
            repeat = 1.
    Reward Points if this Helps.
    Manish

  • Sub heading in ALV report

    Hi All,
                 is there any way for subheading in ALV report.
          For Example:                           staff                               worker
                                             L1 L2 R1 R2 R3 R4         w1 w2 w3 w4  w5 w6
    thks
    shailesh

    hi,
    try this REUSE_ALV_HIERSEQ_LIST_DISPLAY
    hope this will help u...
    Regards
    Shishir Deshmukh

  • How To Add Two Heading in ALV Report

    Hello Guys,
    Currently I am Working on a report Contain 45 Column. Each 45 Column have there own heading like Days Target,Days Achieve..like this.
    Our Requirement is That
    1.Upper side of the First 10 Column one more heading required like Production  Details .
    2. From 11 to 20 One More Heading Called Furnace Oil. like that only.
    I ask users That is not possible in ALV but they are adhere to that requirement.
    Can it's is possible in ALV Grid To have a two Heading Column.
    Thanks in Advance.
    Regards
    Swati Namdev

    Hi swati,
    Normally the specified requirment is not possible with the ALV...
    But you can try with the tricky way... where you need to use the Hierarchical ALV.
    Here you need to specify the two fields in the header table for the specified headings, and you need to declare these two fields in the item table also.
    But in this case you will have one blank line on the report output(for the header data).
    Regards,
    Satya.

  • Need to generate Header, item ALV report

    Hi All,
    I need to create an ALV something with like the following format as given bewlo:
    Comapny Code - <Description>     Date From: __/__/__  To __/__/__
    Contract    Sold-to         Ship-to        
    Kindly Help.
    -Ramesh K S Chakradhar

    Ramesh,
    FORM fill_list_header is for header in below code.
    REPORT zvendor_detail LINE-SIZE 255 LINE-COUNT 65.
    ** Vendor payment details
    ** Amit Gujargoud - 2008/07/16
    ** modification history
    ** by   date      description
    TABLES: bsik, bsak, bsis, bsas, bseg, ekpo, lfa1.
    TYPE-POOLS : slis.                              "TYPE POOL SLIS
    SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-010,
                      SKIP.
    SELECT-OPTIONS: s_lifnr FOR bsik-lifnr,
                    s_bukrs FOR bsik-bukrs,
                    s_budat FOR bsik-budat.
    PARAMETERS:     p_grdat LIKE bsik-augdt.
    SELECTION-SCREEN: SKIP,
                      END OF BLOCK blk1.
    DATA: BEGIN OF i_docs OCCURS 0,
            lifnr LIKE bseg-lifnr,
            hkont LIKE bseg-hkont,
            dmbtr LIKE bsis-dmbtr,
            kostl LIKE bseg-kostl,
            sgtxt LIKE bseg-sgtxt,
            bukrs LIKE bseg-bukrs,
            belnr LIKE bseg-belnr,
            buzei LIKE bseg-buzei,
            blart LIKE bkpf-blart,
            shkzg LIKE bseg-shkzg,
            budat LIKE bkpf-budat,
            augbl LIKE bseg-augbl,
            gjahr LIKE bseg-gjahr,
            name1 LIKE lfa1-name1,
            flag TYPE c,
            docsum TYPE p DECIMALS 0,
          END OF i_docs.
    DATA: i_revs LIKE i_docs OCCURS 100 WITH HEADER LINE,
          lifnr LIKE i_docs-lifnr,
            bukrs LIKE i_docs-bukrs,
            belnr LIKE i_docs-belnr,
            blart LIKE i_docs-blart,
            hkont LIKE i_docs-hkont,
            dmbtr LIKE i_docs-dmbtr,
            kostl LIKE i_docs-kostl,
            sgtxt LIKE i_docs-sgtxt,
            budat LIKE i_docs-budat,
            total LIKE i_docs-dmbtr,
            gjahr LIKE i_docs-gjahr,
            w_ebeln LIKE ekpo-ebeln,
            w_ebelp LIKE ekpo-ebelp,
            w_zuonr LIKE bseg-zuonr,
            toggle TYPE i VALUE 1.
    DATA: v_grir_acct LIKE bsis-hkont,
          v_coa LIKE t001-ktopl.
    *--------------------------ALV Declearation-----------------------------
    DATA: it_fieldcat     TYPE    slis_t_fieldcat_alv,
          wa_fieldcat     LIKE    LINE OF it_fieldcat,
          it_top_of_page  TYPE    slis_t_listheader,
          ls_layout       TYPE    slis_layout_alv,
          gt_events       TYPE    slis_t_event.
    START-OF-SELECTION.
      CASE sy-mandt.
        WHEN '500'.
          v_coa = 'MACK'.
        WHEN '600'.
          v_coa = 'COA1'.
      ENDCASE.
      PERFORM data_selection."amit
      PERFORM calculation.
      "PERFORM interactive.
    *********************************GET ALV  DATA
      PERFORM alv_get_data.
    *********************************ALV GRID DATA
      PERFORM alv_grid.
      PERFORM top_of_page.
    *&      Form  data_selection
    *       text
    FORM data_selection.
      SELECT konts FROM t030 INTO v_grir_acct
             WHERE ktopl = v_coa
               AND ktosl = 'WRX'.
      ENDSELECT.
      SELECT hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
              FROM bsis
              INTO CORRESPONDING FIELDS OF TABLE i_docs
    *                     WHERE hkont = '211200' "goods received w/o invoice
                          WHERE hkont = v_grir_acct
                          AND   bukrs IN s_bukrs
                          AND   budat IN s_budat.
    *                      AND   blart = 'WE'.
      SELECT hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
              FROM bsas
              APPENDING CORRESPONDING FIELDS OF TABLE i_docs
    *                     WHERE hkont = '211200' "goods received w/o invoice
                          WHERE hkont = v_grir_acct
                          AND   bukrs IN s_bukrs
                          AND   budat IN s_budat
    *                      AND   blart = 'WE'
                          AND   augdt GE p_grdat.
      LOOP AT i_docs.
        SELECT SINGLE lifnr ebeln ebelp FROM bseg
               INTO (i_docs-lifnr, w_ebeln, w_ebelp)
                                  WHERE bukrs = i_docs-bukrs
                                  AND   belnr = i_docs-belnr
                                  AND   lifnr NE ''.
        " AND   buzei = i_docs-buzei."commented by amit
        IF i_docs-lifnr IN s_lifnr.
          IF NOT w_ebeln IS INITIAL AND i_docs-sgtxt IS INITIAL.
            SELECT SINGLE txz01 FROM ekpo INTO i_docs-sgtxt
                                    WHERE ebeln = w_ebeln
                                    AND   ebelp = w_ebelp.
          ENDIF.
          MODIFY i_docs.
        ELSE.
          DELETE i_docs.
        ENDIF.
      ENDLOOP.
      SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
             FROM bsik
             APPENDING TABLE i_docs
                         WHERE lifnr IN s_lifnr
                         AND   bukrs IN s_bukrs
                         AND   budat IN s_budat
    *                     AND   blart IN ('KR', 'RE').
                         AND   blart IN ('KR', 'RE', 'KN', 'RN').
    *see if there are reversal documents
      SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
             FROM bsik
             APPENDING TABLE i_revs
                         WHERE lifnr IN s_lifnr
                         AND   bukrs IN s_bukrs
                         AND   blart IN ('KA').
      SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
             FROM bsak
             APPENDING TABLE i_docs
                         WHERE lifnr IN s_lifnr
                         AND   bukrs IN s_bukrs
                         AND   budat IN s_budat
    *                     AND   blart IN ('KR', 'RE').
                         AND   blart IN ('KR', 'RE', 'KN', 'RN').
    * check for reversal
      SELECT lifnr hkont dmbtr kostl sgtxt bukrs belnr
             buzei blart shkzg budat augbl gjahr
             FROM bsak
             APPENDING TABLE i_revs
                         WHERE lifnr IN s_lifnr
                         AND   bukrs IN s_bukrs
                         AND   blart IN ('KA').
      SORT: i_docs BY lifnr bukrs budat hkont,
            i_revs BY lifnr bukrs augbl.
    ENDFORM.                    "data_selection
    *&      Form  calculation
    *       text
    FORM calculation.
      LOOP AT i_docs.
        i_docs-docsum = 1.
        MODIFY i_docs TRANSPORTING docsum.
        toggle = toggle * -1.
    *    on CHANGE OF i_docs-lifnr.
        SELECT SINGLE name1 FROM lfa1 INTO i_docs-name1
                            WHERE lifnr = i_docs-lifnr.
        CLEAR total.
        MODIFY i_docs TRANSPORTING name1.
    *    ENDon.
        IF i_docs-blart = 'KR' OR i_docs-blart EQ 'KN'.
          SELECT SINGLE hkont kostl gjahr FROM bseg
               INTO (i_docs-hkont, i_docs-kostl, i_docs-gjahr)
                                  WHERE bukrs = i_docs-bukrs
                                  AND   belnr = i_docs-belnr
                                  AND   kostl <> ' '.
          MODIFY i_docs TRANSPORTING hkont kostl gjahr.
        ELSEIF i_docs-blart = 'RE' OR i_docs-blart = 'RN'.
          SELECT SINGLE hkont kostl gjahr ebeln ebelp FROM bseg
               INTO (i_docs-hkont, i_docs-kostl, i_docs-gjahr,
                     w_ebeln, w_ebelp)
                                  WHERE bukrs = i_docs-bukrs
                                  AND   belnr = i_docs-belnr
                                  AND   ebeln <> ' '.
          MODIFY i_docs TRANSPORTING hkont kostl gjahr.
          IF NOT w_ebeln IS INITIAL
           AND i_docs-sgtxt IS INITIAL.
            SELECT SINGLE txz01 FROM ekpo INTO i_docs-sgtxt
                                    WHERE ebeln = w_ebeln
                                    AND   ebelp = w_ebelp.
            MODIFY i_docs TRANSPORTING sgtxt.
          ENDIF.
        ENDIF.
        CASE i_docs-shkzg.
          WHEN 'S'.
            i_docs-dmbtr = i_docs-dmbtr * -1.
    *        CONDENSE i_docs-dmbtr.
            MODIFY i_docs TRANSPORTING dmbtr.
        ENDCASE.
        lifnr = i_docs-lifnr.
        bukrs = i_docs-bukrs.
        belnr = i_docs-belnr.
        blart = i_docs-blart.
        hkont = i_docs-hkont.
        dmbtr = i_docs-dmbtr.
        kostl = i_docs-kostl.
        sgtxt = i_docs-sgtxt.
        budat = i_docs-budat.
        gjahr = i_docs-gjahr.
    *    PERFORM print_document USING lifnr lfa1-name1 bukrs belnr blart
    *                                 hkont dmbtr kostl sgtxt budat gjahr.
        total = total + dmbtr.
        IF i_docs-blart = 'KR' OR i_docs-blart EQ 'KN'.
          READ TABLE i_revs WITH KEY lifnr = i_docs-lifnr
                                     bukrs = i_docs-bukrs
                                     belnr = i_docs-augbl
                                     blart = 'KA'.
          IF sy-subrc EQ 0.
            dmbtr = i_revs-dmbtr * -1.
            lifnr = i_revs-lifnr.
            bukrs = i_revs-bukrs.
            belnr = i_revs-belnr.
            blart = i_revs-blart.
            hkont = i_revs-hkont.
            kostl = i_revs-kostl.
            sgtxt = space.
            budat = i_revs-budat.
            gjahr = i_revs-gjahr.
    *        PERFORM print_document USING lifnr lfa1-name1 bukrs belnr blart
    *                                    hkont dmbtr kostl sgtxt budat gjahr.
            total = total + dmbtr.
          ENDIF.
        ENDIF.
    *    ON CHANGE OF i_docs-lifnr.
    *      i_docs-flag = 'X'.
    *      SUM.
    **      i_docs-docsum = i_docs-docsum.
    *      i_docs-dmbtr = i_docs-dmbtr.
    *      MODIFY i_docs TRANSPORTING dmbtr flag.
    *    ENDON.
        AT END OF lifnr.
          i_docs-flag = 'X'.
          SUM.
    *      i_docs-docsum = i_docs-docsum.
          i_docs-dmbtr = i_docs-dmbtr.
          MODIFY i_docs TRANSPORTING dmbtr flag.
        ENDAT.
      ENDLOOP.
    *  SORT i_docs STABLE by lifnr  belnr dmbtr  DESCENDING.
      DELETE ADJACENT DUPLICATES FROM i_docs COMPARING belnr.
      "  SORT i_docs  by lifnr dmbtr ASCENDING.
      LOOP AT i_docs.
        AT END OF lifnr.
          SUM.
          i_docs-docsum = i_docs-docsum.
          MODIFY i_docs TRANSPORTING docsum.
        ENDAT.
    * i_docs-docsum = 1.
      ENDLOOP.
      LOOP AT i_docs WHERE flag NE 'X'.
        DELETE i_docs INDEX sy-tabix.
      ENDLOOP.
    ENDFORM."amit
    *FORM interactive.
    *AT LINE-SELECTION.
    *  CHECK belnr NE space.
    *  SET PARAMETER ID: 'BLN' FIELD i_docs-belnr,
    *                    'BUK' FIELD i_docs-bukrs,
    *                    'GJR' FIELD i_docs-gjahr.
    *  CALL TRANSACTION 'FB03'.
    *endform.
    *       FORM print_document                                           *
    *FORM print_document    USING lifnr name1 bukrs belnr blart hkont dmbtr
    *                       kostl sgtxt budat gjahr.
    **  IF toggle GT 0.
    **    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    **  ELSE.
    **    FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    **  ENDIF.
    **  WRITE:/ lifnr,
    **          name1,
    **          bukrs,
    **          belnr COLOR COL_KEY HOTSPOT,
    **          blart,
    **      (6) hkont,
    **     (14) dmbtr,
    **      (7) kostl,
    **          sgtxt,
    **          budat.
    *  HIDE: i_docs-belnr, i_docs-lifnr, i_docs-bukrs, i_docs-gjahr.
    *ENDFORM.
    FORM alv_get_data.
      CLEAR it_fieldcat.
    ***************** Vendor Number
      wa_fieldcat-fieldname  = 'LIFNR'.
      wa_fieldcat-seltext_m  = 'Vendor Number'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 15.
      wa_fieldcat-tabname    = 'I_DOCS'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ***************** Vendor Name
    *  wa_fieldcat-col_pos    = '2'.                    " ALV O/P COL-1
      wa_fieldcat-fieldname  = 'NAME1'.
      wa_fieldcat-seltext_m  = 'Vendor Name'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 20.
      wa_fieldcat-tabname    = 'I_DOCS'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *****************Comapany Code
    *  wa_fieldcat-col_pos    = '2'.                    " ALV O/P COL-1
      wa_fieldcat-fieldname  = 'BUKRS'.
      wa_fieldcat-seltext_m  = 'Comapany Code'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 20.
      wa_fieldcat-tabname    = 'I_DOCS'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *********************Doc. Number
    *  wa_fieldcat-fieldname  = 'BELNR'.
    *  wa_fieldcat-seltext_m  = 'Doc. Number'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-tabname    = 'I_DOCS'.
    *  wa_fieldcat-outputlen  = 15.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    ********************* Doc. type
    *  wa_fieldcat-fieldname  = 'BLART'.
    *  wa_fieldcat-seltext_l  = 'Doc. type'.
    **  wa_fieldcat-seltext_l  = 'Total number of days'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-tabname    = 'I_DOCS'.
    *  wa_fieldcat-outputlen  = 20.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    ********************** GL Code
    *  wa_fieldcat-fieldname  = 'HKONT'.
    *  wa_fieldcat-seltext_l  = 'GL Code'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-tabname    = 'I_DOCS'.
    *  wa_fieldcat-outputlen  = 20.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    *********************Amount
      wa_fieldcat-fieldname  = 'DMBTR'.
      wa_fieldcat-seltext_l  = 'Amount'.
      wa_fieldcat-just       = 'R'.
      wa_fieldcat-tabname    = 'I_DOCS'.
      wa_fieldcat-outputlen  = 15.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ******************* Cost Center
    *  wa_fieldcat-fieldname  = 'KOSTL'.
    *  wa_fieldcat-seltext_m  = 'Cost Center'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-no_zero(1) = 'X'.
    *  wa_fieldcat-outputlen  = 15.
    *  wa_fieldcat-tabname    = 'I_DOCS'.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    ****************** Text
    **  wa_fieldcat-col_pos    = '2'.                    " ALV O/P COL-1
    *  wa_fieldcat-fieldname  = 'SGTXT'.
    *  wa_fieldcat-seltext_m  = 'Text'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-no_zero(1) = 'X'.
    *  wa_fieldcat-outputlen  = 20.
    *  wa_fieldcat-tabname    = 'I_DOCS'.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    *****************Posting Date
    *  wa_fieldcat-col_pos    = '2'.                    " ALV O/P COL-1
      wa_fieldcat-fieldname  = 'BUDAT'.
      wa_fieldcat-seltext_m  = 'Posting Date'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 20.
      wa_fieldcat-tabname    = 'I_DOCS'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ******************** document sum
      wa_fieldcat-fieldname  = 'DOCSUM'.
      wa_fieldcat-seltext_l  = 'Total number of documents'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-tabname    = 'I_DOCS'.
      wa_fieldcat-outputlen  = 20.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ********************* Average Days
    *    wa_fieldcat-fieldname  = 'DAYBET'.
    **  wa_fieldcat-seltext_l  = 'Days between PR creation to PO'.
    *    wa_fieldcat-seltext_l  = 'Total number of days'.
    *    wa_fieldcat-just       = 'L'.
    *    wa_fieldcat-tabname    = 'IT_FINAL'.
    *    wa_fieldcat-outputlen  = 20.
    *    APPEND wa_fieldcat TO it_fieldcat.
    *    CLEAR wa_fieldcat.
    ********************* Average Days
    *    wa_fieldcat-fieldname  = 'AVERAGE'.
    *    wa_fieldcat-seltext_l  = 'Average days per PO'.
    *    wa_fieldcat-just       = 'L'.
    *    wa_fieldcat-tabname    = 'IT_FINAL'.
    *    wa_fieldcat-outputlen  = 20.
    *    APPEND wa_fieldcat TO it_fieldcat.
    *    CLEAR wa_fieldcat.
    ENDFORM.                    "alv_get_data
    *&      Form  alv_grid
    *       text
    FORM alv_grid .
      PERFORM fill_list_header USING it_top_of_page[].
      PERFORM event-build USING gt_events[].
      PERFORM fill_layout USING ls_layout.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program     = sy-repid
    *      i_callback_top_of_page = 'TOP-OF-PAGE'
          is_layout              = ls_layout
          it_fieldcat            = it_fieldcat
          it_events              = gt_events[]
          i_save                 = 'A'
        TABLES
          t_outtab               = i_docs
        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.                    " alv_grid
    *&      Form  fill_layout
    *       text
    *      -->P_LS_LAYOUT  text
    FORM fill_layout  USING    p_ls_layout TYPE slis_layout_alv.
      p_ls_layout-zebra       = 'X'.
      p_ls_layout-cell_merge  = 'X'.
    ENDFORM.                    " fill_layout
    *&      Form  fill_list_header
    *       text
    *      -->P_IT_TOP_OF_PAGE[]  text
    FORM fill_list_header  USING p_slis_t_listheader TYPE slis_t_listheader.
      DATA: ls_line   TYPE slis_listheader,
              ls_line_1 TYPE slis_listheader.
      DATA : w_date   TYPE sy-datum,
             w_str    TYPE string,
             str      TYPE string,
             str1      TYPE string,
             str_low1  TYPE string,
             str_high1 TYPE string,
             str_low  TYPE string,
             str_high TYPE string.
      w_str =  'Vendor detail Report '.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = w_str.
      APPEND ls_line TO it_top_of_page.
      CLEAR ls_line.
      IF NOT s_lifnr[] IS INITIAL.
        LOOP AT s_bukrs.
          ls_line-typ  = 'S'.
          ls_line-key = 'Vendor Number'.                        "'text-100.
          str_low = s_lifnr-low.
          str_high = s_lifnr-high.
          IF str_high = ' ' .
            MOVE str_low TO str.
          ELSE.
            CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
          ENDIF.
        ENDLOOP.
        ls_line-typ  = 'S'.
        ls_line-key  = 'Vendor Number'.
        ls_line-info = str.
        APPEND ls_line TO it_top_of_page.
        CLEAR ls_line.
      ENDIF.
      IF NOT s_bukrs[] IS INITIAL.
        LOOP AT s_bukrs.
          ls_line-typ  = 'S'.
          ls_line-key = 'Company Code'.                         "'text-100.
          str_low = s_bukrs-low.
          str_high = s_bukrs-high.
    *       move s_budat-low to str_low.
    *       move s_budat-high to str_high.
          IF str_high = ' ' .
            MOVE str_low TO str.
          ELSE.
            CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
          ENDIF.
        ENDLOOP.
      ENDIF.
      ls_line-typ  = 'S'.
      ls_line-key  = 'Company Code'.
      ls_line-info = str.
      APPEND ls_line TO it_top_of_page.
      CLEAR ls_line.
      IF NOT s_budat[] IS INITIAL.
        LOOP AT s_budat.
          ls_line-typ  = 'S'.
          ls_line-key = 'Posting DATE'.                         "'text-100.
    ***********date calculation
          CONCATENATE s_budat-low+6(2)  '.' s_budat-low+4(2)  '.' s_budat-low+0(4)  INTO str_low.
          CONCATENATE s_budat-high+6(2) '.' s_budat-high+4(2) '.' s_budat-high+0(4) INTO str_high.
          IF str_high = '' OR str_high = '00.00.0000'.
            MOVE str_low TO str.
          ELSE.
            CONCATENATE str_low str_high INTO str SEPARATED BY ' To '.
          ENDIF.
        ENDLOOP.
        ls_line-typ  = 'S'.
        ls_line-key  = 'Posting DATE'.
        ls_line-info = str.
        APPEND ls_line TO it_top_of_page.
        CLEAR ls_line.
      ENDIF.
    ENDFORM.                    " fill_list_header
    *&      Form  event-build
    *       text
    *      -->P_GT_EVENTS[]  text
    FORM event-build  USING    lt_events TYPE slis_t_event.
      DATA: ls_event     TYPE slis_alv_event.
      MOVE 'TOP_OF_PAGE' TO ls_event-name.
      MOVE 'TOP_OF_PAGE' TO ls_event-form.
      APPEND ls_event    TO lt_events.
      CLEAR ls_event.
    ENDFORM.                    " event-build
    *&      Form  top_of_page
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM top_of_page .
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_top_of_page.
    ENDFORM.                    " top_of_page

  • Header prob. in ALV report

    Hi All,
    Hope you all are doing fine!!!
    In the below program am trying to print the top-of-page/header in alv report,,but am unable to do it..
    Am working on 4.6c version,,,,,its working fine in ECC 6.0 but i really dont understand why its not working in 4.6c...AM JUST PASTING THE ALV PART...!!!
    Pls. do the needful
    REPORT yjack  LINE-SIZE 132
                    LINE-COUNT 65
                    NO STANDARD PAGE HEADING.
    DATA: /sie/swe_ag0_rdo TYPE /sie/swe_ag0_rdo,
          wa_tvko TYPE tvko,
          /sie/swe_ag0_raa TYPE /sie/swe_ag0_raa,
          wa_kna1 TYPE kna1,
          wa_t001 TYPE t001,
          wa_tvkot TYPE tvkot,
          /sie/swe_ag0_con TYPE /sie/swe_ag0_con,
          /sie/swe_ag0_r02 TYPE /sie/swe_ag0_r02.
    TYPES: BEGIN OF ty_itab,
             bukrs TYPE /sie/swe_ag0_rdo-bukrs,
             vkorg TYPE /sie/swe_ag0_rdo-vkorg,
             zclpr TYPE /sie/swe_ag0_rdo-zclpr,
             zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
             vbeln TYPE /sie/swe_ag0_rdo-vbeln,
             posnr TYPE /sie/swe_ag0_rdo-posnr,
             vbtyp TYPE /sie/swe_ag0_rdo-vbtyp,
             zidag TYPE /sie/swe_ag0_rdo-zidag,
             zimpp TYPE /sie/swe_ag0_rdo-zimpp,
             zimco TYPE /sie/swe_ag0_rdo-zimco,
             zimmg TYPE /sie/swe_ag0_rdo-zimmg,
             fkdat TYPE /sie/swe_ag0_rdo-fkdat,
             zstre TYPE /sie/swe_ag0_rdo-zstre,
             vtweg TYPE /sie/swe_ag0_rdo-vtweg,
             kunrg TYPE /sie/swe_ag0_rdo-kunrg,
          END OF ty_itab.
    TYPES: BEGIN OF ty_itab2,
             bukrs TYPE /sie/swe_ag0_rdo-bukrs,
             vkorg TYPE /sie/swe_ag0_rdo-vkorg,
             zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
             fkdat TYPE /sie/swe_ag0_rdo-fkdat,
             vbeln TYPE /sie/swe_ag0_rdo-vbeln,
             zimpp TYPE /sie/swe_ag0_rdo-zimpp,
             zimco(5) TYPE p DECIMALS 2,
             zimmg(5) TYPE p DECIMALS 2,
             resid(6) TYPE p DECIMALS 2,
             kunrg TYPE /sie/swe_ag0_rdo-kunrg,
             name1 TYPE kna1-name1,
          END OF ty_itab2.
    type-pools: slis.
    types: begin of ty_final,
           bukrs type char29,
           vkorg type char24,
           mese  type char17,
           gjahr type gjahr,
           agent type char45,
           vbeln type vbeln,
           fkdat type fkdat,
           zimpp type /SIE/SWE_AG0_ZIMPP,
           zimco type /SIE/SWE_AG0_ZIMCO,
           zimmg type /SIE/SWE_AG0_ZIMMG,
           resid(5) TYPE p DECIMALS 2,
           kunrg type kunrg,
           name1 type NAME1_GP,
           end of ty_final.
    data: it_final type table of ty_final,
          wa_final type ty_final,
          g_bukrs(29) type c,
          g_vkorg(24) type c.
    data: it_fieldcat type slis_t_fieldcat_alv,
          it_layout type slis_layout_alv,
          it_list_top_of_page type slis_t_listheader,
          it_events type slis_t_event,
          wa_events type slis_alv_event,
          it_headings type slis_t_listheader,
          wa_headings type slis_listheader.
    constants: c_h type c value 'H',
               c_s type c value 'S'.
    field-symbols: <fs_final> type ty_final.
    DATA: it_itab TYPE TABLE OF ty_itab,
          it_itab2 TYPE TABLE OF ty_itab2,
          wa_itab TYPE ty_itab,
          wa_itab2 TYPE ty_itab2.
    DATA: wa_app TYPE ty_itab.
    DATA: w_var TYPE c VALUE '1',
          w_com_mese(9) TYPE c,
          w_flag_st TYPE c.
    $$ Selection-screen
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK parametri WITH FRAME TITLE text-001.
    BEG MOD ESX00596 IMS:100276414 TR:SWIK9A04W7 11.04.2007
    *PARAMETERS: p_bukrs LIKE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
    *PARAMETERS: p_vkorg LIKE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
    PARAMETERS: p_bukrs TYPE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
    PARAMETERS: p_vkorg TYPE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
    SELECT-OPTIONS: s_zcdaz FOR /sie/swe_ag0_rdo-zcdaz OBLIGATORY
                            MATCHCODE OBJECT /sie/swe_ag0_zaa.
    PARAMETERS: mese(2) TYPE n OBLIGATORY,
                anno TYPE /sie/swe_ag0_rdo-gjahr OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK parametri.
    SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: c1 AS CHECKBOX.
    SELECTION-SCREEN COMMENT 8(31) text-006 FOR FIELD c1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN: END OF BLOCK b1.
    DATA: w_cd_a   TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_gen TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_di  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_re  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_te  TYPE /sie/swe_ag0_rdo-vtweg,
          w_cd_ca  TYPE /sie/swe_ag0_rdo-vtweg.
    INITIALIZATION.
      PERFORM selezione_hard_coding.
    $$ At selection-screen
    AT SELECTION-SCREEN.
      PERFORM controlli.
    $$ Top-of-page
    TOP-OF-PAGE.
      PERFORM top_of_page.
    $$ Start-of-selection
    START-OF-SELECTION.
      perform build_events.
      PERFORM carica_itab.
      PERFORM carica_itab2.
      PERFORM stampa.
    END-OF-SELECTION.
    IF C1 EQ 'X'.
    perform fill-fieldcatalog.
    perform display_alv.
    ENDIF.
    *&      Form  fill-fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form fill-fieldcatalog.
    data: l_fieldcat TYPE slis_fieldcat_alv.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'BUKRS'.
          l_fieldcat-col_pos       = 1.
          l_fieldcat-seltext_l     = 'Company'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'VKORG'.
          l_fieldcat-col_pos       = 2.
          l_fieldcat-seltext_l     = 'Comm. Organization'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'MESE'.
          l_fieldcat-col_pos       = 3.
          l_fieldcat-seltext_l     = 'Month'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'GJAHR'.
          l_fieldcat-col_pos       = 4.
          l_fieldcat-seltext_l     = 'Year'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'AGENT'.
          l_fieldcat-col_pos       = 5.
          l_fieldcat-seltext_l     = 'AGENT'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'VBELN'.
          l_fieldcat-col_pos       = 6.
          l_fieldcat-seltext_l     = 'Invoice'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'FKDAT'.
          l_fieldcat-col_pos       = 7.
          l_fieldcat-seltext_l     = 'Date'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMPP'.
          l_fieldcat-col_pos       = 8.
          l_fieldcat-seltext_l     = 'Taxable'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMCO'.
          l_fieldcat-col_pos       = 9.
          l_fieldcat-seltext_l     = 'Tot.Comm.'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'ZIMMG'.
          l_fieldcat-col_pos       = 10.
          l_fieldcat-seltext_l     = 'Settle'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'RESID'.
          l_fieldcat-col_pos       = 11.
          l_fieldcat-seltext_l     = 'Accruing'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'KUNRG'.
          l_fieldcat-col_pos       = 12.
          l_fieldcat-seltext_l     = 'Cust.Code'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
          l_fieldcat-tabname       = 'IT_FINAL'.
          l_fieldcat-fieldname     = 'NAME1'.
          l_fieldcat-col_pos       = 13.
          l_fieldcat-seltext_l     = 'Company Name'.
          APPEND l_fieldcat TO it_fieldcat.
          clear l_fieldcat.
    endform.                    " fill-fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    form display_alv.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = sy-repid
       I_CALLBACK_TOP_OF_PAGE            = 'PRINT_HEADING'
       IS_LAYOUT                         = it_layout
       IT_FIELDCAT                       = it_fieldcat
       IT_EVENTS                         = it_events
      TABLES
        t_outtab                          = it_final
    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
    *&      Form  build_events
          text
         -->P_IT_EVENTS[]  text
    form build_events.
    clear wa_events.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
       I_LIST_TYPE           = 0
    IMPORTING
       ET_EVENTS             = it_events.
    read table it_events into wa_events with key name = 'TOP_OF_PAGE'.
    if sy-subrc eq 0.
    wa_events-form = 'PRINT_HEADING'.
    modify it_events from wa_events transporting form
        where name = 'TOP_OF_PAGE'.
    endif.
    endform.                    " build_events
    form PRINT_HEADING.
    clear wa_headings.
    wa_headings-typ = 'H'.
    wa_headings-info = 'DEMO FOR ALV!!!'.
    append wa_headings to it_headings.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        it_list_commentary       = it_headings.
    endform.
    Thanks n Regards
    Jack

    Hi friend,
    I think u have to remove below lines in your program because FM 'REUSE_ALV_GRID_DISPLAY' will call directly Form 'PRINT_HEADING'   for TOP-OF-PAGE event through table 'it_events' :
    Remove lines:
        TOP-OF-PAGE.
        PERFORM top_of_page.
    Also remove the parameter
    I_CALLBACK_TOP_OF_PAGE = 'PRINT_HEADING' in  FM 'REUSE_ALV_GRID_DISPLAY'
    Also put a breakpoint in your program in the line,
    START-OF-SELECTION.
    perform build_events.
    See whether 'form' 'name' gets populated in table 'it_events'  or not.
    See sample report and compare.
    REPORT zawi_assign3 NO STANDARD PAGE HEADING.
    TYPE-POOLS: slis.
    DATA: BEGIN OF gt_outtab OCCURS 0.
            INCLUDE STRUCTURE ekpo.
    DATA: END OF gt_outtab,
          gs_layout TYPE slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user TYPE slis_exit_by_user,
          g_repid LIKE sy-repid.
    DATA:
        gt_events      TYPE slis_t_event,
        gt_list_top_of_page TYPE slis_t_listheader,
        g_status_set   TYPE slis_formname VALUE 'PF_STATUS_SET',
        g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
        g_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',
        g_top_of_list  TYPE slis_formname VALUE 'TOP_OF_LIST',
        g_end_of_list  TYPE slis_formname VALUE 'END_OF_LIST'.
    DATA: gs_variant LIKE disvariant,
          g_save.
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM layout_init USING gs_layout.
      PERFORM eventtab_build USING gt_events[].
      gs_variant-report = g_repid.
      g_save           = 'X'.
    START-OF-SELECTION.
      PERFORM select_data TABLES gt_outtab.
    END-OF-SELECTION.
      PERFORM comment_build USING gt_list_top_of_page[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
             i_background_id    = 'ALV_BACKGROUND'
             i_buffer_active    = 'X'
             i_callback_program = g_repid
             i_structure_name   = 'ekpo'
             is_layout          = gs_layout
             i_save             = g_save
             is_variant         = gs_variant
             it_events          = gt_events[]
        IMPORTING
             e_exit_caused_by_caller = g_exit_caused_by_caller
             es_exit_caused_by_user  = gs_exit_caused_by_user
        TABLES
             t_outtab = gt_outtab
        EXCEPTIONS
             program_error = 1
             OTHERS        = 2.
      IF sy-subrc = 0.
        IF g_exit_caused_by_caller = 'X'.
        ELSE.
          IF gs_exit_caused_by_user-back = 'X'.
          ELSE.
            IF gs_exit_caused_by_user-exit = 'X'.
            ELSE.
              IF gs_exit_caused_by_user-cancel = 'X'.
              ELSE.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ELSE.
      ENDIF.
    FORM select_data TABLES rt_outtab LIKE gt_outtab[].
      SELECT * FROM ekpo INTO CORRESPONDING FIELDS
                       OF TABLE rt_outtab
                       UP TO 00030 ROWS.
    ENDFORM.                    "SELECT_DATA
    FORM layout_init USING rs_layout TYPE slis_layout_alv.
      rs_layout-detail_popup      = 'X'.
      rs_layout-edit = 'X'.
    ENDFORM.                    "LAYOUT_INIT
    FORM eventtab_build USING rt_events TYPE slis_t_event.
    *"Registration of events to happen during list display
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = rt_events.
      READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE g_top_of_page TO ls_event-form.
        APPEND ls_event TO rt_events.
      ENDIF.
    ENDFORM.                    "EVENTTAB_BUILD
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          i_logo             = 'ENJOYSAP_LOGO'
          it_list_commentary = gt_list_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE
    FORM comment_build USING lt_top_of_page TYPE
                                            slis_t_listheader.
      DATA: ls_line TYPE slis_listheader.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = text-100.
      APPEND ls_line TO lt_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'Program'.
      ls_line-info = sy-repid.
      APPEND ls_line TO lt_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'User'.
      ls_line-info = sy-uname.
      APPEND ls_line TO lt_top_of_page.
    ENDFORM.                    "COMMENT_BUILD
    Might solve your problem.
    Thanks.
    Edited by: Sap Fan on Feb 20, 2009 9:50 AM
    Edited by: Sap Fan on Feb 20, 2009 9:52 AM
    Edited by: Sap Fan on Feb 20, 2009 9:54 AM

  • No column heading in second page in alv report when save in excel file

    Hi Expert,
    How can i remove the column header from Alv report when program execute in background and save in excel file right now
    its comming column header in each page. Client dont want header column in excel from second page. is this possible?
    with regards
    chandan_viji

    Hi Ravi,
    thanks for reply i have solved this problm throug line count and NEW-PAGE LINE COUNT 10000 bcoz client want output in excel file only one page header.
    with regards
    chandan_viji

  • How to get list header in ECC6.0 of ALV reports ?

    Hello i want to display header in ALV reports this the code what i am using..
    *ALV TOP-OF-PAGE DECLATRACTION
    DATA : W_LISTHEADER TYPE SLIS_LISTHEADER,
           T_LISTHEADER TYPE SLIS_T_LISTHEADER.
    **PUPULATING TOP-OF-PAGE.
      w_LISTHEADER-TYP = 'H'.
      W_LISTHEADER-INFO = 'Report for Sales'.
      APPEND W_LISTHEADER TO T_LISTHEADER.
      CLEAR W_LISTHEADER.
    It is working fine in SAP4.7 version but in ECC6.0 it is not working where i have to do changes..
    Thks

    Hi,
    Try the top-of-page by using events, like
    Data Declaration
    TYPE-POOLS: slis.
    TABLES: mara.
    TYPES: BEGIN OF i_mara,
           matnr LIKE mara-matnr,
           mtart LIKE mara-mtart,
           meins LIKE mara-meins,
           groes LIKE mara-groes,
           volum LIKE mara-volum,
           END OF i_mara.
    DATA: it_mara TYPE STANDARD TABLE OF i_mara INITIAL SIZE 0.
    ALV Data Declaration
    DATA: fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          i_events TYPE slis_t_event,
          w_events LIKE LINE OF i_events,
          i_repid TYPE sy-repid.
    DATA: i_comment TYPE slis_t_listheader,
          wa_comment TYPE slis_listheader.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM bld_fldcat.
      PERFORM call_events.
      PERFORM display_alv_report.
    *&      Form  CALL_EVENTS
          text
    FORM call_events.
    W_events-name = slis_ev_top_of_page.
    W_events-form = 'TOP-OF-PAGE'.
    append W_events  to i_events.
    clear W_events .
    ENDFORM.                    "CALL_EVENTS
    Build field catalog for ALV
    FORM bld_fldcat.
      fldcat-fieldname = 'MATNR'.
      fldcat-seltext_m = 'MATERIAL NUMBER'.
      fldcat-col_pos = 0.
      APPEND fldcat TO fldcat.
      CLEAR fldcat.
      fldcat-fieldname = 'MTART'.
      fldcat-seltext_m = 'MATERIAL TYPE'.
      fldcat-emphasize = 'C111'.
      APPEND fldcat TO fldcat.
      CLEAR fldcat.
      fldcat-fieldname = 'MEINS'.
      fldcat-seltext_m = 'UNIT OF MEASURE'.
      APPEND fldcat TO fldcat.
      CLEAR fldcat.
      fldcat-fieldname = 'GROES'.
      fldcat-seltext_m = 'SIZE'.
      APPEND fldcat TO fldcat.
      CLEAR fldcat.
      fldcat-fieldname = 'VOLUM'.
      fldcat-seltext_m = 'VOLUME'.
      APPEND fldcat TO fldcat.
      CLEAR fldcat.
    ENDFORM.                    "BLD_FLDCAT
    Display report using ALV List
    FORM display_alv_report.
      i_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
         i_callback_program             = I_REPID
         it_fieldcat                    = fldcat[]
         i_save                         = 'A'
         it_events                      = i_events
        TABLES
          t_outtab                       = it_mara
    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
    Retrieve data from MARA table and populate itab IT_MARA
    FORM data_retrieval.
      SELECT matnr mtart meins groes volum
      INTO TABLE it_mara FROM mara UP TO 50 ROWS.
    ENDFORM.                    "DATA_RETRIEVAL
    *&      Form  TOP_OF_PAGE
          text
    FORM TOP-OF-PAGE.
      CLEAR i_comment[].
      wa_comment-typ = 'H'.
      wa_comment-info = 'TOP OF PAGE' .    "SY-PAGNO.
      APPEND wa_comment TO i_comment.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = i_comment.
    ENDFORM.                    "GENERATE_USERCOMMAND_FOOTER
    Regards,
    Chandu

  • In ALV Report output heading is printing twice.

    Hi Experts,
    Im working on ALV Reports.
    Im printing header text by using listheader and commentary write function module.
    the problem is when i sort any column in ALV ouput the heading is printing twice.
    Again if i sort the column the heading is printed is 4 times.
    so if anybody knows the solution how we can avoid repetition of heading ,
    Please reply me as soon as possible.
    regards
    Imrangs.

    Hi Noorie,
    Thanks a lot.
    Your answer is perfect.
    Bye.
    Regards,
    Imran

  • Column Heading are not displayed in ALV Report using CL_SALV_DISPLAY?

    Hi,
       I am using CL_SALV_DISPLAY class to display data. I Created an Internal Table Dynamically based fieldcatalog which was prepared based data at run time. When i displayed data using CL_SALC_DISPALY data is display in output but column headings are not displayed.
    can anyone suggest me how to display heading in ALV using CL_SALV_DISPLAY class, My code is
          CLASS lcl_report DEFINITION
    CLASS lcl_report DEFINITION.
      PUBLIC SECTION.
        METHODS:
          display  IMPORTING l_table  TYPE string
                             l_fcat   TYPE string.
    ENDCLASS.                    "lcl_report DEFINITION
          CLASS lcl_report IMPLEMENTATION
    CLASS lcl_report IMPLEMENTATION.
      METHOD display.
        DATA: gr_table   TYPE REF TO cl_salv_table.
        DATA: gr_columns TYPE REF TO cl_salv_columns_table,
              gr_column  TYPE REF TO cl_salv_column_table,
              ls_fcat    TYPE slis_fieldcat_alv.
        DATA: gr_display TYPE REF TO cl_salv_display_settings.
        DATA: l_o_functions TYPE REF TO cl_salv_functions_list,
              l_field    TYPE string.
        FIELD-SYMBOLS : <fs_table>    TYPE STANDARD TABLE,
                        <ft_fcat>     TYPE STANDARD TABLE.
    Get the ALV object refering to the output table
        ASSIGN (l_table) TO <fs_table>.
        ASSIGN (l_fcat)  TO <ft_fcat>.
        TRY.
            cl_salv_table=>factory(
              IMPORTING
                r_salv_table = gr_table
              CHANGING
                t_table      = <fs_table> ).
          CATCH cx_salv_msg.                                "#EC NO_HANDLER
        ENDTRY.
    Add basic default functionality in the ALV report
    Functions
        l_o_functions = gr_table->get_functions( ).
        l_o_functions->set_all( abap_true ).
        gr_columns = gr_table->get_columns( ).
        gr_columns->set_headers_visible( abap_true ).
    Display the list
        gr_table->display( ).
      ENDMETHOD.                    "extract
    ENDCLASS.                    "lcl_report IMPLEMENTATION
    *& start-of-selection declaration
    START-OF-SELECTION.
      PERFORM :
      get store codes
        get_storecodes    USING      p_stfile
                          CHANGING   it_t001w,
      fetching mard data
        read_mard_data,
      preparing fieldcatalog for Final Data
        create_filedcat   USING      it_t001w
                                     it_site
                          CHANGING   it_fieldcat,
      preparing structure & internal table for Final Data
        create_final_table_structure  USING  it_fieldcat,
      prepare output data
        prepare_final_data.
    *& end-of-selection declaration
    END-OF-SELECTION.
      PERFORM :
      display data
        display_data    USING l_table
                              l_fcat.
    *&      Form  get_storecodes
    FORM get_storecodes  USING    p_p_stfile
                         CHANGING p_it_t001w  LIKE it_t001w[].
      DATA  :
    internal table for RAW
      lt_raw    TYPE truxs_t_text_data,
      rs_site   LIKE LINE OF rt_site,
      l_index   LIKE sy-tabix.
      FIELD-SYMBOLS :
    field symbol for it_t001w
      <fs_t001w>   LIKE LINE OF p_it_t001w.
    calling function module to get Stores Data from File
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
          i_line_header        = 'X'
          i_tab_raw_data       = lt_raw
          i_filename           = p_p_stfile
        TABLES
          i_tab_converted_data = p_it_t001w[]
        EXCEPTIONS
          conversion_failed    = 1
          OTHERS               = 2.
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
      SORT p_it_t001w BY werks.
      CLEAR rs_site.
      rs_site-sign   = 'I'.
      rs_site-option = 'EQ'.
      rs_site-low    = p_dccode.
      APPEND rs_site TO rt_site.
      IF it_t001w[] IS NOT INITIAL.
        LOOP AT p_it_t001w ASSIGNING <fs_t001w>.
          l_index   = sy-tabix.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = <fs_t001w>-werks
            IMPORTING
              output = <fs_t001w>-werks.
          MODIFY p_it_t001w FROM <fs_t001w> INDEX l_index.
          IF <fs_t001w>-werks GE s_site-low AND <fs_t001w>-werks LE s_site-high.
          append site to ranges
            CLEAR rs_site.
            rs_site-sign   = 'I'.
            rs_site-option = 'EQ'.
            rs_site-low    = <fs_t001w>-werks.
            APPEND rs_site TO rt_site.
            CONTINUE.
          ENDIF.
        ENDLOOP.
        SORT p_it_t001w BY werks.
        SORT rt_site.
      ENDIF.
    ENDFORM.                    " get_storecodes
    *&      Form  create_final_table_structure
    FORM create_filedcat   USING    p_it_t001w      LIKE it_t001w[]
                                    p_it_site       LIKE it_site[]
                           CHANGING p_it_fieldcat   LIKE it_fieldcat[].
      FIELD-SYMBOLS :
    field symbol for p_it_t001w
      <fs_t001w>     LIKE LINE OF p_it_t001w,
    field symbol for p_it_site
      <fs_site>      LIKE LINE OF p_it_site.
      DATA :
    fieldname
      l_fieldname    TYPE slis_fieldname,
    workarea for site ranges
      rs_site        LIKE LINE OF rt_site.
      CLEAR : l_fieldname, rs_site.
      l_fieldname    = p_dccode.
      PERFORM
    prepare fieldcatalog
      build_fieldcatalog USING :   'MTART'      'CHAR'        '5'  ,
                                   'MTBEZ'      'CHAR'        '25' ,
                                   'MATKL'      'CHAR'        '6'  ,
                                   'WGBEZ'      'CHAR'        '20' ,
                                   'MATNR'      'CHAR'        '18' ,
                                   'MAKTX'      'CHAR'        '30' ,
                                    l_fieldname 'CHAR'        '17' .
    create header for excel
      PERFORM create_excel_header USING  : 'Division',
                                           'Divsion Description',
                                           'MC Code',
                                           'MC Description',
                                           'Article',
                                           'Article Description',
                                            l_fieldname.
    loop for creating fieldcatalog
      LOOP AT it_site ASSIGNING <fs_site>.
        READ TABLE it_t001w ASSIGNING <fs_t001w> WITH KEY werks = <fs_site>-werks
                                                                  BINARY SEARCH.
        IF sy-subrc = 0           AND <fs_t001w> IS ASSIGNED AND
           <fs_site> IS ASSIGNED  AND <fs_site>-stock GT 0.
          CLEAR : l_fieldname, rs_site.
          l_fieldname    = <fs_site>-werks.
        prepare fieldcatalog
          PERFORM build_fieldcatalog USING : l_fieldname    'CHAR'   '17'.
        create header for excel
          PERFORM create_excel_header USING  l_fieldname  .
          CONTINUE.
        ENDIF.
      ENDLOOP.
      l_fcat  = 'it_fieldcat[]'.
    ENDFORM.                    " create_final_table_structure
    *&      Form  build_fieldcatalog
    FORM build_fieldcatalog  USING    p_fieldname      TYPE slis_fieldname
                                      p_datatype       TYPE datatype_d
                                      p_length         TYPE intlen.
      DATA : ls_fieldcat    LIKE LINE OF it_fieldcat.
      CLEAR  : ls_fieldcat.
      ls_fieldcat-fieldname   = p_fieldname.
      ls_fieldcat-datatype    = p_datatype.
      ls_fieldcat-intlen      = p_length.
      APPEND ls_fieldcat TO it_fieldcat.
    ENDFORM.                    " build_fieldcatalog
    *&      Form  create_final_table_structure
    FORM create_final_table_structure  USING    p_it_fieldcat.
    Create dynamic internal table and assign to FS
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fieldcat
        IMPORTING
          ep_table        = t_table.
      ASSIGN t_table->*  TO <ft_final>.
    ENDFORM.                    " create_final_table_structure
    *&      Form  create_excel_header
    FORM create_excel_header  USING    p_p_fieldname.
      DATA : ls_header  LIKE LINE OF it_header.
      CLEAR ls_header.
      ls_header-col_name  = p_p_fieldname.
      APPEND ls_header TO it_header.
    ENDFORM.                    " create_excel_header
    *&      Form  prepare_final_data
    FORM prepare_final_data .
      DATA          : l_matnr       LIKE g_matnr,
                      l_werks       LIKE g_werks,
                      l_index       LIKE sy-tabix.
      FIELD-SYMBOLS : <fs_mard>     LIKE LINE OF it_mard.
    Getting No. of Lines in IT_MARD internal table
      DESCRIBE TABLE it_mard LINES g_lines.
      LOOP AT it_mard ASSIGNING <fs_mard>.
        l_index    = sy-tabix.
        IF l_matnr IS INITIAL.
          l_matnr  = <fs_mard>-matnr.
          CLEAR : l_werks.
          l_werks    = <fs_mard>-werks.
          UNASSIGN : <fs_value>, <fs_final>.
        Create dynamic work area and assign to FS
          CREATE DATA t_line LIKE LINE OF <ft_final>.
          ASSIGN t_line->*   TO <fs_final>.
          ASSIGN COMPONENT 'MATNR'  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_mard>-matnr.
          ASSIGN COMPONENT l_werks  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_value> + <fs_mard>-labst.
        getting Article Type,MC & its Descriptions
          PERFORM get_other_data    USING     l_matnr
                                              l_werks.
        ELSEIF l_matnr <> <fs_mard>-matnr.
          APPEND <fs_final> TO <ft_final>.
          CLEAR l_matnr.
          l_matnr  = <fs_mard>-matnr.
          CLEAR : l_werks.
          l_werks    = <fs_mard>-werks.
          UNASSIGN : <fs_value>, <fs_final>.
        Create dynamic work area and assign to FS
          CREATE DATA t_line LIKE LINE OF <ft_final>.
          ASSIGN t_line->*   TO <fs_final>.
          ASSIGN COMPONENT 'MATNR'  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_mard>-matnr.
          ASSIGN COMPONENT l_werks  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_value> + <fs_mard>-labst.
        getting Article Type,MC & its Descriptions
          PERFORM get_other_data    USING     l_matnr
                                             l_werks.
        ELSE.
          CLEAR : l_werks.
          l_werks    = <fs_mard>-werks.
          ASSIGN COMPONENT l_werks  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_value> + <fs_mard>-labst.
        ENDIF.
        IF l_index = g_lines.
          APPEND <fs_final> TO <ft_final>.
        ENDIF.
      ENDLOOP.
      l_table  = '<ft_final>[]'.
    ENDFORM.                    " prepare_final_data
    *&      Form  get_other_data
    FORM get_other_data  USING    p_l_matnr
                                  p_l_werks.
      FIELD-SYMBOLS : <fs_mara>     LIKE LINE OF it_mara,
                      <fs_t023t>    LIKE LINE OF it_t023t,
                      <fs_t134t>    LIKE LINE OF it_t134t,
                      <fs_makt>     LIKE LINE OF it_makt.
      READ TABLE it_mara ASSIGNING <fs_mara> WITH KEY matnr = p_l_matnr.   " BINARY SEARCH.
      IF sy-subrc = 0 AND <fs_mara> IS ASSIGNED.
        ASSIGN COMPONENT 'MTART'  OF STRUCTURE <fs_final> TO <fs_value>.
        <fs_value>        = <fs_mara>-mtart.
        ASSIGN COMPONENT 'MATKL'  OF STRUCTURE <fs_final> TO <fs_value>.
        <fs_value>        = <fs_mara>-matkl.
        READ TABLE it_makt  ASSIGNING <fs_makt>  WITH KEY matnr =  <fs_mara>-matnr   BINARY SEARCH.
        IF sy-subrc = 0 AND <fs_makt> IS ASSIGNED.
          ASSIGN COMPONENT 'MAKTX'  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>        = <fs_makt>-maktx.
        ENDIF.
        READ TABLE it_t023t ASSIGNING <fs_t023t> WITH KEY matkl = <fs_mara>-matkl  BINARY SEARCH.
        IF sy-subrc = 0 AND <fs_t023t> IS ASSIGNED.
          ASSIGN COMPONENT 'WGBEZ'  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>      = <fs_t023t>-wgbez.
        ENDIF.
        READ TABLE it_t134t ASSIGNING <fs_t134t> WITH KEY mtart = <fs_mara>-mtart  BINARY SEARCH.
        IF sy-subrc = 0 AND <fs_t134t> IS ASSIGNED.
          ASSIGN COMPONENT 'MTBEZ'  OF STRUCTURE <fs_final> TO <fs_value>.
          <fs_value>      = <fs_t134t>-mtbez.
        ENDIF.
      ENDIF.
    ENDFORM.                    " get_other_data
    *&      Form  display_data
          text
    FORM display_data  USING    p_l_table
                                p_l_fcat.
      DATA:
    Variable for Object Creation
      o_report TYPE REF TO lcl_report.
      CREATE OBJECT o_report.
      o_report->display( EXPORTING l_table = p_l_table
                                   l_fcat  = p_l_fcat ).
    ENDFORM.                    " display_data

    I don't know how to read the code you pasted or I would have checked this myself.
    Do your fields in the internal table reference dictionary objects or elementary types? If not using dictionary types, the column names will be blank by default. If you can't change your fields to be dictionary types, you can try this to change the column names:
    I made a method inside my local class to add the names:
            call method set_colname
              EXPORTING iv_tab = alv_tab
                        iv_colid = 'xxxx'  "fieldname from the table
                        iv_stxt = text-t54
                        iv_mtxt = text-t55
                        iv_ltxt = text-t55.
    METHOD set_colname .
      data:
              alv_cols type REF TO cl_salv_columns_table,
              alv_col type REF TO cl_salv_column.
      TRY .
    *... Change fieldnames
            call METHOD iv_tab->get_columns RECEIVING value = alv_cols.
            call method alv_cols->get_column EXPORTING columnname = iv_colid RECEIVING value = alv_col.
            IF iv_stxt <> ''.
              CALL METHOD alv_col->set_short_text EXPORTING value = iv_stxt.
            ENDIF.
            IF iv_mtxt <> ''.
              CALL METHOD alv_col->set_medium_text EXPORTING value = iv_mtxt.
            ENDIF.
            IF iv_ltxt <> ''.
              CALL METHOD alv_col->set_long_text EXPORTING value = iv_ltxt.
            ENDIF.
       CATCH cx_salv_not_found.
      ENDTRY.
    ENDMETHOD. "set_colname

Maybe you are looking for

  • Workbook error in GUI 7.20

    Hi, We have just upgraded to SAP GUI 7.20 and have office 2007 with windows 7 on our computers. Now, when we are changing old workbooks (developed in GUI 7.10) with standard BEx buttons, we are getting an error: error in loading dll when executing th

  • Mac OS X 10.9.3 does not detect the presence of Canon MX395 printer. Help?

    Hi, My printer/scanner was working fine before I upgraded to Mac OS X Mavericks. I now run OS X 10.9.3, the printer is Canon MX395. Basically mr problem is that the printer is simply not detected. I turn it on and plug in the USB cable but nothing ha

  • Microsoft Word 2008 and Snow Leopard

    I updated word to 12.2.3? whatever the latest version is. Word cannot open some docx files I created in Word (windows version 2007). Is opens alot of other documents ok, but randomly some files it just locks up and freezes. I have to "ignore or repor

  • Problem in passing parameters in command line in desktop

    Hi, I am trying to generate reports from command line (Oracle Discoverer 4i Version 4.1.42.04.00) but I am facing problems when I try to pass date or numeric parameters. It seems to work with strings The following command is successful when i pass st

  • Text as Emails

    Hello! When I send a text message I always thought it was coming from my phone. Many of my friends have been telling me that when a text message comes in on their phone that it is from my e-mail NOT my cell number. Does anyone know how I can make all