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

Similar Messages

  • 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.

  • 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

  • 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

  • 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.

  • 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

  • Needed select all button in alv report

    Dear Experts,
                    In alv report i want first field as button selectall then remaining fields must be displayed
    this is my code,,
    DEFINE m_fieldcat.
      is_fieldcat-fieldname = &1.
      is_fieldcat-hotspot   = &2.
      is_fieldcat-seltext_m = &3.
      is_fieldcat-col_pos   = &4.
      is_fieldcat-outputlen = &5.
      is_fieldcat-emphasize = &6.
      is_fieldcat-Checkbox  = &7.
      append is_fieldcat to it_fcat.
      clear is_fieldcat.
    END-OF-DEFINITION.
    m_fieldcat 'SLNO'     ''        text-112   '1'   '5'   'C310' ''.
    m_fieldcat 'KPI'      ''        text-110   '2'   '30'  'C310' ''.
    m_fieldcat 'PWEEK'    'X'       text-109   '3'   '16'  'C310' ''.
    m_fieldcat 'CWEEK'    'X'       text-111   '4'   '16'  'C310' ''.
    m_fieldcat 'MONTH'    'X'       text-122   '5'   '16'  'C310' ''.
    m_fieldcat 'PMONTH'   'X'       text-132   '6'   '16'  'C310' ''.
    m_fieldcat 'UOM '      ''       text-138   '7'   '10'  'C310' ''.
    Thanks,
    Thiru. R

    Hi,
    You can keep first field as checkbox. 'Select All' button is present in ALV whnever you use 'REUSE_ALV_GRID' F.M.
    You can click on select all button that appears in ALV grid toolbar and all your checkboxes that appears in first field will get selected. Similar to 'Select All' there is 'Deselct All' button also in ALV grid.
    Regards,
    Saba

  • Tree OOPS ALV - Need to display header & items of the sales order in oops

    HI,
        I need to display some of the header fields of the sales order & items in the oops alv, could you please let me know how to achieve this. I know FM - 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' but how to achieve this through oops alv.
    Thanks

    it is not possible with that function in OO .
    you can try with class cl_salv_hierseq_table
    Just check this Rich's article
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b0f03986-046c-2910-a5aa-e5364e96ea2c
    if you don't want that then you may have to use ALV tree.

  • Spool not getting generated in OO ALV report

    Hi,
    I developed a report in which we are giving output in same selection screen through OO ALV.
    But,when we are scheduling that report in background,spool is not getting generated.
    Waiting for your reply.
    BR,
    Praveen

    Hi Aparna,
    I tried NEW-PAGE PRINT ON.
    I am pasting source code extract below:
       IMPORT DATA = ME->IT_FINAL2 FROM MEMORY ID SY-CPROG.
        FREE MEMORY ID SY-CPROG.
        CHECK ME->IT_FINAL2 IS NOT INITIAL.
        CHECK LO_DOCK IS INITIAL.
        CREATE OBJECT LO_DOCK
          EXPORTING
            REPID = SY-REPID
            DYNNR = SY-DYNNR
            RATIO = 70
            SIDE  = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_BOTTOM
            NAME  = 'DOCK_CONT'.
        IF SY-SUBRC NE 0.
          MESSAGE 'Error in Docking Control' TYPE 'S'.
        ENDIF.
        IF LO_ALV IS INITIAL.
          TRY.
              LO_CONT ?= LO_DOCK.
              CALL METHOD CL_SALV_TABLE=>FACTORY
                EXPORTING
                  LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=>FALSE
                  R_CONTAINER    = LO_CONT
                  CONTAINER_NAME = 'DOCK_CONT'
                IMPORTING
                  R_SALV_TABLE   = LO_ALV
                CHANGING
                  T_TABLE        = ME->IT_FINAL2.
            CATCH CX_SALV_MSG.
          ENDTRY.
      CLEAR LR_COLUMN.
          TRY.
              LR_COLUMNS = LO_ALV->GET_COLUMNS( ).
              LR_COLUMN = LR_COLUMNS->GET_COLUMN( 'KSCHL' ).
              LR_COLUMN->SET_LONG_TEXT( 'Cond.Type' ).
    CATCH CX_SALV_NOT_FOUND.
          ENDTRY.
    NEW-PAGE PRINT ON.
            LO_ALV->DISPLAY( ).
            NEW-PAGE PRINT OFF.
    I am not getting spool list while executing it in background.
    BR,
    Praveen

  • FBL5N customer line item ALV report -- define exit points

    Customer wants to modifications on FBL5N std sap report. Here's what I think are the options:
    1. Modify SAP program (which I dont prefer at all to do)
    2. Copy SAP Program into Y/Z program
    3. User-exits or BAdIs.
    I am in process of doing step 2.
    I tried to find any user-exits for the requirement but there seems no user-exit. There is no std BAdI delivered for the same purpose either.
    Hence, I was wondering if I can create BAdI so as to define the exit points where I need. Can you suggest on howt to go about this procedure?

    If you copy and change the program, you have to be aware that in some of the includes, it checks the program name and calling transaction and behaves differently if it's not the normal program name or transaction. If SAP makes significant changes to the program during an upgrade, your changed program won't have these SAP changes. I don't know of any BADIs or user exits for report programs.
    Some people wiil disagree with me on this, but I really don't have a problem with making mods to the original SAP code, particulary if you can isolate them in another include and keep changes to the SAP code to a minimum. With version management and SPAU at upgrade and support pack time, you can keep track of your changes and re-apply them if needed.
    But it's easy for me to say because I've been doing this for quite a while. If you really don't want to make the changes, then you're probably better off copying and changing a Z program.
    Rob

  • Need help in Hyperlink to ALV report

    Hello Experts,
    I want to give hyperlink to Sales Order Number.
    I have one report. I am supposed to give hyperlink to Salesorder # so that when user clicks on it,
    it should display VA03 transaction.
    Can you please guide me how to do this?
    Best Regards,
    Harish

    Hi,
    In fieldcatalog make your VBELN column make attribute HOTSPOT = 'X'  and then handle this event in USER COMMAND as
    FORM user_command USING r_ucomm LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
        IF rs_selfield-fieldname = 'VBELN'.
          READ TABLE it_output INTO wa_output INDEX rs_selfield-tabindex.
          SET PARAMETER ID ''AUN' FIELD wa_output-vbeln.
          CALL TRANSACTION 'VA03' and skip first screen.
        ENDIF.
    ENDFORM.

Maybe you are looking for

  • Creation of sales order in background

    Hi , Can I create a Sales order in background? What are the different ways to do it?? Thanks, Shivaa.........

  • Dead Line Monetering in Purchase Order Release Workflow

    Hi Experts,                  I have  activated Standard Purchase Order Release workflow and it works fine now i have a requirement of Dead Line monetering for 2 days. In Standard Release Activity TS20000166 if i give 2 days in Latest End. Will it wor

  • How to set password in the form, request is coming from SPML with no pwd

    Hi , Im using SPML request to create and modify users? I have 2 problems 1) Does anyone know, how to customize the form to call 2 different workflow depending on the request meaning, if SPML request is ADD, then it should call Create User workflow, a

  • Org.apache.xerces.parsers.SAXParser class, where do I find it?

    I don´t know if this is the right place to ask, but maybe someone will know: I need the class org.apache.xerces.parsers.SAXParser that should be included in the Apache Xerces project. Here is the API: [http://xerces.apache.org/xerces2-j/javadocs/xerc

  • Removal of DRM from Purchased Movies from iTunes

    I am trying to find a solution to store an iTunes Movie I purchased from the iStore on my ReadyNAS DUO and play the file on my PS3, even though the PS/3 is DLNA compliant it won't play the file, I suspect this is due to the DRM copy protection on the