ALV Heading Problem

Hi Friends,
In ALV GRID i need to display the output header like below.
SHIP
SOLD
|----
NUM
NAME
NUM
NAME
It's not dots and pipes. But like the box with above design.
Can any one please give me your valuable inputs regarding this.
I want to use it in ALV GRID . i.e: By using ALV FM or OOPS also.
Thanks
Srinivas.

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

Similar Messages

  • Problems with ALV header

    Hi there,
    i've got a little problem with my ALV header. every time when i run my program and want to go back to the selection screen with the BACK-button i see my header again. so i've got to push the BACK-button again to get to the selection screen.
    here's my alv-code
    FORM TOP_OF_PAGE.
      REFRESH header_itab[].
      CLEAR wa_header.
      wa_header-typ = 'H'.
    *  wa_header-key = 'ausw1'.
      wa_header-info = text-001.
      APPEND wa_header TO header_itab.
      CLEAR wa_header.
      IF radio1 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton1'.
        wa_header-info = text-002.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio2 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton2'.
        wa_header-info = text-003.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio3 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton3'.
        wa_header-info = text-004.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio4 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton4'.
        wa_header-info = text-005.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSE.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton5'.
        wa_header-info = text-006.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ENDIF.
      wa_header-typ = 'S'.
      wa_header-key = 'Benutzer:'.
      wa_header-info = sy-uname.
      APPEND wa_header TO header_itab.
      CLEAR wa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = header_itab.
    ENDFORM.
    *       FORM alv_füllen                                               *
    FORM alv_fuellen .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program     = my_repid
                i_callback_top_of_page = 'TOP_OF_PAGE'
    *            i_grid_title           = my_title
                it_fieldcat            = feldkatalog_itab
                is_layout              = gs_layout
    *            it_events              = event_itab
           TABLES
                t_outtab               = itab
           EXCEPTIONS
                program_error          = 1
                OTHERS                 = 2.
    ENDFORM.
    *       FORM layout_allg_build                                        *
    FORM layout_allg_build.
           gs_layout-zebra  = 'X'.
           gs_layout-colwidth_optimize = 'X'.
    ENDFORM.
    hope someone can help me.
    regards tobias

    hi,
    i tried some of your ideas but none helped my.
    so here's my complete code
    maybe this is helpful.
    *& Report  z_cd_tool_awdimaiob
    REPORT z_cd_tool_awdimaiob.
    * G L O B A L   I N T E R N  A L   T A B L E S
    DATA: BEGIN OF itab OCCURS 100,
          status TYPE dimaiobpar-zstatus,
          rtyp TYPE  dimaiobpar-zrtyp,
          zahlweg TYPE dimaiobpar-ezawe_x,
          a_status TYPE i,
          a_rtyp TYPE i,
          a_partner TYPE i,
          a_vertraege TYPE i,
          END OF itab .
    * G L O B A L   D A T A
    DATA: ok_code LIKE sy-ucomm,
          wa_test_tab LIKE dimaiobpar,
          my_title TYPE lvc_title,
          my_repid LIKE sy-repid.
    TYPE-POOLS: slis.
    DATA:     feldkatalog_itab  TYPE   slis_t_fieldcat_alv,
         wa_feldkatalog    TYPE   slis_fieldcat_alv,
           event_itab        TYPE   slis_t_event,
           header_itab       TYPE   slis_t_listheader,
           gs_layout         TYPE   slis_layout_alv,
           alv_event         TYPE   slis_alv_event,
           wa_header         TYPE   slis_listheader.
    DATA: t_tab LIKE dimaiobpar.
    *selection-screen
    SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test WITH FRAME TITLE text-010.
    SELECT-OPTIONS: partner FOR  t_tab-partner,
                    astatus FOR  t_tab-zstatus.
    SELECTION-SCREEN END OF BLOCK test.
    *Radiobutton
    SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test2 WITH FRAME TITLE text-020.
    PARAMETERS: radio1 RADIOBUTTON GROUP test DEFAULT 'X',
                radio2 RADIOBUTTON GROUP test,
                radio3 RADIOBUTTON GROUP test,
                radio4 RADIOBUTTON GROUP test,
                radio5 RADIOBUTTON GROUP test.
    SELECTION-SCREEN END OF BLOCK test2.
    * S T A R T - O F - S E L E C T I O N.
    START-OF-SELECTION.
    * Select-Abfrage
      PERFORM select_data.
    *END-OF-SELECTION.
    * Feldkatalog fuellen.
      PERFORM feldkatalog_fuellen .
    * Feldkatalog übergeben
      PERFORM alv_feldkatalog.
    * ALV-Event
      perform alv_event.
    * Layout bestimmen.
      PERFORM layout_allg_build.
    * header aufbau
      PERFORM top_of_page.
      SORT itab.
      my_title = 'Auswertung Dimaiobpar'.
      my_repid = sy-repid.
      PERFORM exit_program.
    END-OF-SELECTION.
    * ALV mit daten füllen
      PERFORM alv_fuellen.
    *       FORM alv_event                                                *
    FORM alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = event_itab.
      READ TABLE event_itab
      WITH KEY name = 'TOP_OF_PAGE'
      INTO alv_event.
      IF sy-subrc EQ 0.
        MOVE 'TOP_OF_PAGE' TO alv_event-form.
        APPEND alv_event TO event_itab.
        ENDIF.
    ENDFORM.
    *       FORM alv_feldkatalog                                          *
    FORM alv_feldkatalog.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                i_program_name     = my_repid
                i_internal_tabname = 'ITAB'
                i_inclname         = my_repid
    *            i_bypassing_buffer = 'X'
           CHANGING
                ct_fieldcat        = feldkatalog_itab
           EXCEPTIONS
                program_error      = 1
                OTHERS             = 2.
    ENDFORM.
    *       FORM header                                                   *
    FORM top_of_page.
      CLEAR wa_header.
      wa_header-typ = 'H'.
    *  wa_header-key = 'ausw1'.
      wa_header-info = text-001.
      APPEND wa_header TO header_itab.
      CLEAR wa_header.
      IF radio1 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton1'.
        wa_header-info = text-002.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio2 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton2'.
        wa_header-info = text-003.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio3 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton3'.
        wa_header-info = text-004.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSEIF radio4 = 'X'.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton4'.
        wa_header-info = text-005.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ELSE.
        wa_header-typ = 'S'.
        wa_header-key = 'Radiobutton5'.
        wa_header-info = text-006.
        APPEND wa_header TO header_itab.
        CLEAR wa_header.
      ENDIF.
      wa_header-typ = 'S'.
      wa_header-key = 'Benutzer:'.
      wa_header-info = sy-uname.
      APPEND wa_header TO header_itab.
      CLEAR wa_header.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = header_itab.
      REFRESH header_itab.
    ENDFORM.
    *       FORM alv_füllen                                               *
    FORM alv_fuellen .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program     = my_repid
                i_callback_top_of_page = 'TOP_OF_PAGE'
    *            i_grid_title           = my_title
                it_fieldcat            = feldkatalog_itab[]
                is_layout              = gs_layout
    *            it_events              = event_itab
           TABLES
                t_outtab               = itab
           EXCEPTIONS
                program_error          = 1
                OTHERS                 = 2.
    ENDFORM.
    *       FORM layout_allg_build                                        *
    FORM layout_allg_build.
           gs_layout-zebra  = 'X'.
           gs_layout-colwidth_optimize = 'X'.
    ENDFORM.
    *       FORM feldkatalog_fuellen                                      *
    FORM feldkatalog_fuellen.
    *Feldkatalog erstellen/füllen mit hilfe der if-schleife anhand des
    *gewählten Radiobuttons
    IF radio1 = 'X'.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'STATUS'.
           wa_feldkatalog-seltext_m     = 'Status'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'RTYP'.
           wa_feldkatalog-seltext_m     = 'Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'A_RTYP'.
           wa_feldkatalog-seltext_m     = 'Anzahl Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
    ELSEIF radio2 = 'X'.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'RTYP'.
           wa_feldkatalog-seltext_m     = 'Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'A_STATUS'.
           wa_feldkatalog-seltext_m     = 'Anzahl Status'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
    ELSEIF radio3 = 'X'.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'STATUS'.
           wa_feldkatalog-seltext_m     = 'Status'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'RTYP'.
           wa_feldkatalog-seltext_m     = 'Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'A_VERTRAEGE'.
           wa_feldkatalog-seltext_m     = 'Anzahl Verträge'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
    ELSEIF radio4 = 'X'.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'STATUS'.
           wa_feldkatalog-seltext_m     = 'Status'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'RTYP'.
           wa_feldkatalog-seltext_m     = 'Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'A_PARTNER'.
           wa_feldkatalog-seltext_m     = 'Anzahl GPartner'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
    ELSE.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'STATUS'.
           wa_feldkatalog-seltext_m     = 'Status'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'RTYP'.
           wa_feldkatalog-seltext_m     = 'Rechungstyp'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'ZAHLWEG'.
           wa_feldkatalog-seltext_m     = 'Zahlweg'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
      CLEAR wa_feldkatalog.
           wa_feldkatalog-fieldname     = 'A_PARTNER'.
           wa_feldkatalog-seltext_m     = 'Anzahl GPartner'.
      APPEND wa_feldkatalog TO feldkatalog_itab.
    ENDIF.
    ENDFORM.
    *       FORM select_data                                              *
    FORM select_data.
    *select-abfrage mit hilfe der if-schleife, analog zum Feldkatalog
      IF radio1 = 'X'.
    *   Radiobutton1: Rechungstypen je Satus
        SELECT
           zstatus AS status
           zrtyp AS rtyp
           COUNT( DISTINCT zrtyp ) AS a_rtyp
           INTO CORRESPONDING FIELDS OF itab
           FROM dimaiobpar
           WHERE
           insobject LIKE 'V%' AND
           partner IN partner AND
           zstatus IN astatus
           GROUP BY ZSTATUS zrtyp
           ORDER BY zstatus.
          APPEND itab.
        ENDSELECT.
      ELSEIF radio2 = 'X'.
    * Radiobutton2: Status je Rechungstyp.
        SELECT
               zrtyp AS rtyp
               COUNT( DISTINCT zstatus ) AS a_status
               INTO CORRESPONDING FIELDS OF itab
               FROM dimaiobpar
               WHERE
               insobject LIKE 'V%' AND
               partner IN partner AND
               zstatus IN astatus
               GROUP BY  ZRTYP
               ORDER BY zrtyp.
          APPEND itab.
        ENDSELECT.
      ELSEIF radio3 = 'X'.
    * Radiobutton3: Anzahl Verträge je Status und Rtyp.
        SELECT
             zstatus AS status
             zrtyp AS rtyp
             COUNT( DISTINCT insobject ) AS a_vertraege
             INTO CORRESPONDING FIELDS OF itab
             FROM dimaiobpar
             WHERE
             insobject LIKE 'V%' AND
             partner IN partner AND
             zstatus IN astatus
             GROUP BY ZSTATUS zrtyp
             ORDER BY zstatus.
          APPEND itab.
        ENDSELECT.
      ELSEIF radio4 ='X'.
    *  Radiobutton4: Anzahl GPartner je Status und RTyp.
        SELECT
               zstatus AS status
               zrtyp AS rtyp
               COUNT( DISTINCT partner ) AS a_partner
               INTO CORRESPONDING FIELDS OF itab
               FROM dimaiobpar
               WHERE
               insobject LIKE 'V%' AND
               partner IN partner AND
               zstatus IN astatus
               GROUP BY ZSTATUS zrtyp
               ORDER BY zstatus zrtyp.
          APPEND itab.
        ENDSELECT.
      ELSE.
    * Radiobutton5: Anzahl Kunden nach Zahlweg.
        SELECT
             zstatus AS status
             zrtyp AS rtyp
             ezawe_x AS zahlweg
             COUNT( DISTINCT partner ) AS a_partner
             INTO CORRESPONDING FIELDS OF itab
             FROM dimaiobpar
             WHERE
             insobject LIKE 'V%' AND
             partner IN partner AND
             zstatus IN astatus AND
             ezawe_x IN ('E', 'F', space)
             GROUP BY ZSTATUS zrtyp EZAWE_X
             ORDER BY zstatus zrtyp.
          APPEND itab.
        ENDSELECT.
      ENDIF.
    ENDFORM.
    *       FORM EXIT_PROGRAM                                             *
    FORM exit_program.
    IF sy-ucomm = 'BACK' OR
       sy-ucomm = 'EXIT' OR
       sy-ucomm = 'CANCEL'.
      LEAVE PROGRAM.
      endif.
    ENDFORM.

  • Alv list header problem

    Hai Friends,
    In my ALV List header..i am writing date , time and my program name.
    but all are coming on left side.
    can i get date on left side, program name on centered and time on write side.
    my code is like this.
    FORM list_headers.
          lists-typ = 'H'.
          lists-info = text-010.
          APPEND lists.
          CLEAR lists.
          lists-typ = 'S'.
          lists-key = text-011.
          CONCATENATE sy-datum+6(2) '/'
                      sy-datum+4(2) '/'
                      sy-datum+0(4) INTO lists-info.
          APPEND lists.
          CLEAR lists.
          lists-typ = 'S'.
          lists-key = text-012.
          CONCATENATE sy-uzeit+0(2) ':'
                      sy-uzeit+2(2) ':'
                      sy-uzeit+4(2) INTO lists-info.
          APPEND lists.
          CLEAR lists.
    ENDFORM.

    Hi again,
    1. first of all how are u writing / displaying
       the alv header ?
    2. using documentary write ?
       then also, u can use one variable of
      length 100 and use this concept.
    3. If u are using top_of_page
      event,
      in this event, WE CAN use WRITE.
      (i have used it, and it
      works fantastic)
                  (not in case of alv grid)
    4. My point is, what ever u are using,
       use on variable of length 100.
      WRITE value INTO variable.
      using offset
      and then proceed further.
    regards,
    amit m.

  • Problem with aligning values in ALV header???????

    I am supposed to show  some values in ALV header some thing like this
    PGMID:      xxxxx
    Material:    p_Matnr-low    to   p_Matnr high
    Plant:        p_werks-low    to  p_werks-high
       ALV Reoport
    For this i wrote code something like this.
    Fieldcatalog-status='s'.
    Fieldcatalog-key = 'PGMID:'.
    FieldCatalog-info = 'xxxxxxxx'
    append field catlalog.
    Fieldcatalog-status='s'.
    Fieldcatalog-key = 'Material:'.
    Concatenate p_Matnr-low
                       'to'
                        p_Matnr-high into FieldCatalog-info. 
    append field catlalog.
    etc................
    Now output shown is like this
    PGMID:      xxxxx
    Material:    p_Matnr-low  to p_Matnr high
    Plant:        p_werks-low  to p_werks-high
    I am not able to give a good gap in between the 'to' as shown initially. Any idea on this??
    Rakesh

    Hi,
    Please find attached below code :
      IF NOT so_bukrs-low IS INITIAL AND NOT so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        CONCATENATE so_bukrs-low 'to' so_bukrs-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_bukrs-low IS INITIAL AND so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_bukrs-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Company Code'(015).
        gs_line-info = so_bukrs-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *Fiscal Year
      CLEAR gs_line.
      gs_line-typ = gc_s.
      gs_line-key = 'Year'(014).
      MOVE sp_gjahr TO gs_line-info.
      APPEND gs_line TO lt_top_of_page.
    *Period
      CLEAR gs_line.
      gs_line-typ = gc_s.
      gs_line-key = 'Period'(013).
      MOVE sp_monat TO gs_line-info.
      APPEND gs_line TO lt_top_of_page.
    *Currency Key
      IF NOT so_waers-low IS INITIAL AND NOT so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        CONCATENATE so_waers-low 'to' so_waers-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_waers-low IS INITIAL AND so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_waers-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Currency'(011).
        gs_line-info = so_waers-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *Clearing Doc
      IF NOT so_augbl-low IS INITIAL AND NOT so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        CONCATENATE so_augbl-low 'to' so_augbl-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_augbl-low IS INITIAL AND so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_augbl-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'Clearing Doc'(020).
        gs_line-info = so_augbl-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *User ID
      IF NOT so_usrid-low IS INITIAL AND NOT so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        CONCATENATE so_usrid-low 'to' so_usrid-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_usrid-low IS INITIAL AND so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_usrid-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'User ID'(021).
        gs_line-info = so_usrid-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    *GL Account
      IF NOT so_hkont-low IS INITIAL AND NOT so_hkont-high IS INITIAL.
        SHIFT so_hkont-low LEFT DELETING LEADING '0'.
        SHIFT so_hkont-high LEFT DELETING LEADING '0'.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        CONCATENATE so_hkont-low 'to' so_hkont-high INTO gs_line-info
        SEPARATED BY space.
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_hkont-low IS INITIAL AND so_hkont-high IS INITIAL.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        gs_line-info = 'ALL Values'(012).
        APPEND gs_line TO lt_top_of_page.
      ELSEIF so_hkont-high IS INITIAL.
        SHIFT so_hkont-low LEFT DELETING LEADING '0'.
        CLEAR: gs_line.
        gs_line-typ  = gc_s.
        gs_line-key  = 'GL Account'(004).
        gs_line-info = so_hkont-low.
        APPEND gs_line TO lt_top_of_page.
      ENDIF.
    Thanks,
    Sriram Ponna.

  • ALV Grid Header Problem.

    Hi All,
    I want to display the header of the ALV Grid as:
    Material                          111/11823
    Plant/Usage/Alt               2845/3/5
    Description                      ABI CAB
    Base Qty.                        23.000
    The values are to be taken from variables
    Please suggest how to do this.
    Thanks

    *& Report  ZDEMO_ALVGRID                                               *
    *& Example of a simple ALV Grid Report with grand total                *
    *& The basic requirement for this demo is to display a number of       *
    *& fields from the EKKO table.                                         *
    REPORT  zdemo_alvgrid                 .
    TABLES:     ekko.
    type-pools: slis.                                 "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      statu TYPE ekpo-statu,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
      menge TYPE ekpo-menge,
      meins TYPE ekpo-meins,
      netpr TYPE ekpo-netpr,
      peinh TYPE ekpo-peinh,
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko TYPE t_ekko.
    *ALV data declarations
    data: fieldcatalog type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform display_alv_report.
    perform top-of-page.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'Purchase Order'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'PO Item'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'STATU'.
      fieldcatalog-seltext_m   = 'Status'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'Item change date'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MATNR'.
      fieldcatalog-seltext_m   = 'Material Number'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'PO quantity'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'MEINS'.
      fieldcatalog-seltext_m   = 'Order Unit'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'NETPR'.
      fieldcatalog-seltext_m   = 'Net Price'.
      fieldcatalog-col_pos     = 7.
      fieldcatalog-outputlen   = 15.
      fieldcatalog-do_sum      = 'X'.        "Display column total
      fieldcatalog-datatype     = 'CURR'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PEINH'.
      fieldcatalog-seltext_m   = 'Price Unit'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
          Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
    gd_layout-totals_only        = 'X'.
    gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
                                            "click(press f2)
    gd_layout-zebra             = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text       = 'helllllo'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
               i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_special_groups       = gd_tabgroup
               IT_EVENTS                = GT_XEVENTS
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = it_ekko
           exceptions
                program_error           = 1
                others                  = 2.
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " DISPLAY_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    form data_retrieval.
    select ebeln ebelp statu aedat matnr menge meins netpr peinh
    up to 10 rows
      from ekpo
      into table it_ekko.
    endform.                    " DATA_RETRIEVAL
    Form  TOP-OF-PAGE                                                 *
    ALV Report Header                                                 *
    Form top-of-page.
    *ALV Header declarations
    data: t_header type slis_t_listheader,
          wa_header type slis_listheader,
          t_line like wa_header-info,
          ld_lines type i,
          ld_linesc(10) type c.
    Title
      wa_header-typ  = 'H'.
      wa_header-info = 'EKKO Table Report'.
      append wa_header to t_header.
      clear wa_header.
    Date
      wa_header-typ  = 'S'.
      wa_header-key = 'Date: '.
      CONCATENATE  sy-datum+6(2) '.'
                   sy-datum+4(2) '.'
                   sy-datum(4) INTO wa_header-info.   "todays date
      append wa_header to t_header.
      clear: wa_header.
    Total No. of Records Selected
      describe table it_ekko lines ld_lines.
      ld_linesc = ld_lines.
      concatenate 'Total No. of Records Selected: ' ld_linesc
                        into t_line separated by space.
      wa_header-typ  = 'A'.
      wa_header-info = t_line.
      append wa_header to t_header.
      clear: wa_header, t_line.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = t_header.
               i_logo             = 'ideas'.
    endform.

  • Space in Top of page on alv header

    Hi Experts,
    I do have a query on ALV , Can you please help me in solving my problem.
    Here goes my query...
    I have to develop a ALV where on the top of page i have to display two fields as shown in below which was highlighted in the screen
    http://img410.imageshack.us/my.php?image=op2sn9.jpg
    But i'm getting output as shown below screen
    http://img410.imageshack.us/my.php?image=op1ut4.jpg
    I have tried with space and all other alternatives but i'm unable to get the desired output.
    Can i have any sample code for the same
    Regards
    Nanda

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

  • Alv heading to display in excel

    Hi
    i have a problem ,
    i want 2 take print of body of alv with ALV header.
    while printing , only body is comin for print-out, not a header.
    guide me.
    points vil be rewarded

    write the header under the event top-fo-page and use listheader structure and also use FM ALV_commentary _write
    see following code for example
    http://sapprograms.blogspot.com/2008/04/alv-grid-display-report.html

  • ALV list problem

    Hi all,
    I am facing a strange problem in ALV. i have two internal tables one is for alv header and another is alv line items. i have a proper data in in both internal tables.
    when i pass the data of these two internal tables to the function REUSE_ALV_HIERSEQ_LIST_DISPLAY i found in the output that line items date changes.
    actually date is in format 04112005 but when i see the output its showing like this 05.20.0411 .
    please help me to solve the problem.
    Regards,
    Lisa

    Hii
    use this func module
    <b>CONVERT_DATE_TO_INTERN_FORMAT</b>
    <b>CONVERSION_EXIT_PDATE_INPUT</b>
    Thsi will give the dtae in YYYY.MM.DD format
    check this program for reference
    REPORT  Z_50657_ALV_EX1
            MESSAGE-ID ZZ .
                                Type Pools                               *
    TYPE-POOLS: SLIS.
                                 Tables                                  *
    TABLES: LFA1, "Vendor Master
            LFB1, "Vendor Master (Company Code)
            LFM1. "purchasing organization data
                            Internal Tables                              *
    TABLE TO HOLD DATA FROM VENDOR MASTER
    DATA: BEGIN OF IT_LFA1 OCCURS 0,
            LIFNR LIKE LFA1-LIFNR,  "Account Number of Vendor
            KTOKK LIKE LFA1-KTOKK,  "Vendor account group
            NAME1 LIKE LFA1-NAME1,  "Name
            STRAS LIKE LFA1-STRAS,  "House Number and Street
            ORT01 LIKE LFA1-ORT01,  "City
            REGIO LIKE LFA1-REGIO,  "Region
            PFORT LIKE LFA1-PFORT,  "PO Box City
            PSTLZ LIKE LFA1-PSTLZ,  "Postal Code
            PSTL2 LIKE LFA1-PSTL2,  "P.O. Box
            TELF1 LIKE LFA1-TELF1,  "First telephone number
          END OF IT_LFA1.
    TABLE TO HOLD DATA ABOUT COMPANY
    DATA: BEGIN OF IT_LFB1 OCCURS 0,
            LIFNR LIKE LFB1-LIFNR, "Account Number of Vendor
            BUKRS LIKE LFB1-BUKRS, "COMP CODE
          END OF IT_LFB1.
    TABLE TO HOLD DATA ABOUT PURCHASING ORG
    DATA: BEGIN OF IT_LFM1 OCCURS 0,
            LIFNR LIKE LFM1-LIFNR, "Account Number of Vendor
            EKORG LIKE LFM1-EKORG, "Purchasing Organization
          END OF IT_LFM1.
    TABLE TO HOLD DATA FOR FINAL DISPLAY
    DATA: BEGIN OF IT_FINAL OCCURS 0,
            LIFNR LIKE LFB1-LIFNR,  "Account Number of Vendor
            BUKRS LIKE LFB1-BUKRS,  "COMP CODE
            EKORG LIKE LFM1-EKORG,  "Purchasing Organization
            KTOKK LIKE LFA1-KTOKK,  "Vendor account group
            NAME1 LIKE LFA1-NAME1,  "Name
            STRAS LIKE LFA1-STRAS,  "House Number and Street
            ORT01 LIKE LFA1-ORT01,  "City
            REGIO LIKE LFA1-REGIO,  "Region
            PFORT LIKE LFA1-PFORT,  "PO Box City
            PSTLZ LIKE LFA1-PSTLZ,  "Postal Code
            PSTL2 LIKE LFA1-PSTL2,  "P.O. Box
            TELF1 LIKE LFA1-TELF1,  "First telephone number
          END OF IT_FINAL.
    DATA: V_INDEX TYPE SY-TABIX.
                                Work Areas                               *
    *WORK AREAS DEFINED FOR ALV'S
    DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          L_LAYOUT TYPE SLIS_LAYOUT_ALV.
                          Selection-Screen                               *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_LIFNR FOR LFA1-LIFNR, "ACCOUNT NUMBER
                    S_BUKRS FOR LFB1-BUKRS, "COMPANY CODE
                    S_EKORG FOR LFM1-EKORG, "PURCHASING ORG
                    S_KTOKK FOR LFA1-KTOKK. "ACCOUNT GROUP
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS: LIST RADIOBUTTON GROUP G1, "ALV LIST DISPLAY
                GRID RADIOBUTTON GROUP G1. "ALV GRID DISPLAY
    SELECTION-SCREEN END OF BLOCK B2.
                        At  Selection-Screen                             *
    AT SELECTION-SCREEN.
      PERFORM VALIDATION.
                          Start of Selection                             *
    START-OF-SELECTION.
    *POPULATE DATA INTO ITAB_FINAL USING INNER JOINS OF IT_LFA1 IT_LFB1
    *IT_LFM1
      PERFORM GET_DATA.
    *CHECK FOR RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY ALV GRID/LIST
      PERFORM CHECK_SEL.
    *&      Form  VALIDATION
          text
    FORM VALIDATION.
      IF S_LIFNR IS NOT INITIAL.
        SELECT SINGLE LIFNR FROM LFA1 INTO IT_LFA1 WHERE LIFNR IN S_LIFNR.
        IF SY-SUBRC <> 0.
          MESSAGE I000 WITH 'THIS IS NOT A VALID VENDOR NUMBER'.
          STOP.
        ELSE.
          IF S_BUKRS IS NOT INITIAL.
            SELECT SINGLE BUKRS FROM LFB1 INTO IT_LFB1-BUKRS WHERE BUKRS IN
            S_BUKRS.
            IF SY-SUBRC <> 0.
              MESSAGE I000 WITH 'THIS IS NOT A VALID COMPANY CODE'.
              STOP.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
      CLEAR IT_LFA1.
      CLEAR IT_LFB1.
    ENDFORM.                    "VALIDATION
    *&      Form  GET_DATA
          text
    FORM GET_DATA.
      SELECT LIFNR
             KTOKK
             NAME1
             STRAS
             ORT01
             REGIO
             PFORT
             PSTLZ
             PSTL2
             TELF1
             FROM LFA1
             INTO TABLE IT_LFA1
             WHERE LIFNR IN S_LIFNR AND KTOKK IN S_KTOKK.
      SORT IT_LFA1 BY LIFNR.
      IF NOT IT_LFA1[] IS INITIAL.
        SELECT LIFNR
               BUKRS
               FROM LFB1
               INTO TABLE IT_LFB1
               FOR ALL ENTRIES IN IT_LFA1 WHERE LIFNR = IT_LFA1-LIFNR AND
                                                BUKRS IN S_BUKRS.
        SORT IT_LFB1 BY LIFNR BUKRS.
        SELECT LIFNR
               EKORG
               FROM LFM1
               INTO TABLE IT_LFM1
               FOR ALL ENTRIES IN IT_LFA1 WHERE LIFNR = IT_LFA1-LIFNR.
        SORT IT_LFM1 BY LIFNR.
      ENDIF.
      IT_FINAL[] = IT_LFB1[].
      LOOP AT IT_FINAL.
        V_INDEX = SY-TABIX.
        READ TABLE IT_LFA1 WITH KEY LIFNR = IT_FINAL-LIFNR BINARY SEARCH.
        IF SY-SUBRC = 0.
          MOVE: IT_LFA1-KTOKK TO IT_FINAL-KTOKK,
                IT_LFA1-NAME1 TO IT_FINAL-NAME1,
                IT_LFA1-STRAS TO IT_FINAL-STRAS,
                IT_LFA1-ORT01 TO IT_FINAL-ORT01,
                IT_LFA1-REGIO TO IT_FINAL-REGIO,
                IT_LFA1-PFORT TO IT_FINAL-PFORT,
                IT_LFA1-PSTLZ TO IT_FINAL-PSTLZ,
                IT_LFA1-PSTL2 TO IT_FINAL-PSTL2,
                IT_LFA1-TELF1 TO IT_FINAL-TELF1.
        ENDIF.
        READ TABLE IT_LFM1 WITH KEY LIFNR = IT_FINAL-LIFNR BINARY SEARCH.
        IF SY-SUBRC = 0.
          MOVE IT_LFM1-EKORG TO IT_FINAL-EKORG.
        ENDIF.
        MODIFY IT_FINAL INDEX V_INDEX.
      ENDLOOP.
    LOOP AT IT_LFA1.
       LOOP AT IT_FINAL WHERE LIFNR = IT_LFA1-LIFNR.
         MOVE IT_LFA1-KTOKK TO IT_FINAL-KTOKK.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-NAME1 TO IT_FINAL-NAME1.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-STRAS TO IT_FINAL-STRAS.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-ORT01 TO IT_FINAL-ORT01.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-REGIO TO IT_FINAL-REGIO.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-PFORT TO IT_FINAL-PFORT.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-PSTLZ TO IT_FINAL-PSTLZ.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-PSTL2 TO IT_FINAL-PSTL2.
         MODIFY IT_FINAL INDEX SY-TABIX.
         MOVE IT_LFA1-TELF1 TO IT_FINAL-TELF1.
         MODIFY IT_FINAL INDEX SY-TABIX.
       ENDLOOP.
    ENDLOOP.
    LOOP AT IT_LFM1.
       LOOP AT IT_FINAL WHERE LIFNR = IT_LFM1-LIFNR.
         MOVE IT_LFM1-EKORG TO IT_FINAL-EKORG.
         MODIFY IT_FINAL INDEX SY-TABIX.
       ENDLOOP.
    ENDLOOP.
    SORT IT_FINAL BY LIFNR BUKRS EKORG.
    ENDFORM.                    "GET_DATA
    *&      Form  CHECK_SEL
          text
    FORM CHECK_SEL.
    X_FIELDCAT-FIELDNAME = 'LIFNR'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'VENDOR'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 10.
    X_FIELDCAT-COL_POS    = 1.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'BUKRS'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'COMPANY'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 4.
    X_FIELDCAT-COL_POS    = 2.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'EKORG'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'PURCHASING ORGANISATION'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 4.
    X_FIELDCAT-COL_POS    = 3.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'KTOKK'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'ACCOUNT GROUP'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 4.
    X_FIELDCAT-COL_POS    = 4.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'NAME1'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'VENDOR NAME'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 35.
    X_FIELDCAT-COL_POS    = 5.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'STRAS'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'STREET'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 10.
    X_FIELDCAT-COL_POS    = 6.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'ORT01'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'CITY NAME'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 20.
    X_FIELDCAT-COL_POS    = 7.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    X_FIELDCAT-FIELDNAME = 'REGIO'.
    X_FIELDCAT-TABNAME = 'IT_FINAL'.
    X_FIELDCAT-SELTEXT_L  = 'REGION NAME'.
    X_FIELDCAT-NO_ZERO    = 'X'.
    X_FIELDCAT-OUTPUTLEN  = 2.
    X_FIELDCAT-COL_POS    = 8.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
      IF LIST = 'X'.
        CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
          EXPORTING
            I_PROGRAM_NAME         = SY-REPID
            I_INTERNAL_TABNAME     = 'IT_FINAL'
            I_INCLNAME             = SY-REPID
          CHANGING
            CT_FIELDCAT            = IT_FIELDCAT
          EXCEPTIONS
            INCONSISTENT_INTERFACE = 1
            PROGRAM_ERROR          = 2
            OTHERS                 = 3.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        L_LAYOUT-ZEBRA = 'X'.
        CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = SY-REPID
            IS_LAYOUT          = L_LAYOUT
            IT_FIELDCAT        = IT_FIELDCAT
          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.
      ELSE.
        CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
          EXPORTING
            I_PROGRAM_NAME         = SY-REPID
            I_INTERNAL_TABNAME     = 'IT_FINAL'
            I_INCLNAME             = SY-REPID
          CHANGING
            CT_FIELDCAT            = IT_FIELDCAT
          EXCEPTIONS
            INCONSISTENT_INTERFACE = 1
            PROGRAM_ERROR          = 2
            OTHERS                 = 3.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        L_LAYOUT-ZEBRA = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = SY-REPID
            IS_LAYOUT          = L_LAYOUT
            IT_FIELDCAT        = IT_FIELDCAT
          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.
      ENDIF.
    Regards
    Naresh

  • Regarding ALV Header

    Hi Abapers,
    I am having one Problem regarding ALV Header on the report. Requirement is to get the data it into this order on ALV Header using Simple ABAP.
    Summary
    "Building No       Room No          Comments
    111                   AA                   Over Allocated.
    545                   XX                    Space Free
    787                   YY                   No Space
    I have Tried to enter it into the header table but the data is not coming correctly.
    Problem is It is coming in this way which is wrong..
    Summary
    "Building No  Room No  Comments
    111   AA   Over Allocated.
    545   XX    Space Free
    787   YY   No Space
    Can Any body solve my Problem to get the header information it into the below .
    Summary
    "Building No       Room No          Comments
    111                   AA                   Over Allocated.
    545                   XX                    Space Free
    787                   YY                   No Space

    Hi ,
    I have tried but couldn't succeded. Can you Please provide me the solution.

  • How to keep fields enable for Inout on ALV Header

    Hi,
    I have a requirement where I have Material and plant Number of selection screen.
    I have to display the ALV GRID report keeping Material and Plant in its header details.
    I need to put a "CHG MAT/PLNT" button on the report output screen. When user presses this button Material and Plant fields on ALV header should become enable to Change. User given new selection criteria there itself and presses ENTER, the report output should be refreshed on the basis of given new selection criteria.
    Can anyone please suggest me how to put a BUTTON in ALV display and make these two fields open for INPUT once this button is pressed.
    Please write back to me if you feel any doubt in the requirement.
    Thanks,
    Ashish Agrawal

    Hi Ashish Agrawal  ,
    in Form built layout
    check LAYOUT-GROUP_CHANGE_EDIT = 'X'.
    Hope this sole u r problem.
    <REMOVED BY MODERATOR>
    Thanks and regards ,
    rajeshwar .
    Edited by: Alvaro Tejada Galindo on Apr 23, 2008 5:13 PM

  • ALV Header missing ???

    Dear all,
      I have just copied a SAP standard report. In this report, it uses ALV Grid to display data. In the copied report, I added some fields in the internal table for display and modified the field catalog.
    In order for SAP system to reflect the new changes, I ran report BALVBUFDEL to reset the buffer. After that, I ran the copied report. It ran well but the header of ALV was not shown? What problem? When I checked the SAP standard report, the ALV header was shown well.
    <b>What should I do now? Is it because BALVBUFDEL report reset ALV header as well?</b>
    Thank you in advance.

    Dear all,
    Thank your for your replies. Actually, I solved that problem. It turns out that I did not change the name of report in calling ALV function. When copying the original, I forgot to change the name of the new report.
    Sorry for disturbing all of you. How silly I was.
    By the way, i really appreciate what you guys have done.

  • How to display total in ALV Header

    How to display total in ALV Header?

    Hi Venkey,
    As far as your issue is concerned I would like to quote my perception.
    Create a header internal table with title and number of records.
    At the later part of your program you should have found the total number of records ,now assign it to the header internal table and print it.
    For further clarification you can go check this link:
    http://wiki.sdn.sap.com/wiki/display/ABAP/AddHeadertoALVreport
    Thanks
    P.Srikanth

  • FIELD VALUE IN ALV HEADER

    Hi friends,
    I make one header alv ok I want and take one variable count in my program so I want to display its value in ALV HEADER
    Total Target Qty:
    Total EMP. Efficiency 
    Total Machine Effi. 
    I take may header like this and pass thre text here.ok Now I want to display value of this three.
    Total Trget Qty: 2.23 like that.
    CLEAR st_line.
      st_line-typ = 'S'.
      CONCATENATE 'Total Target Qty: '  count     ' ' INTO st_line-info.
      APPEND st_line TO t_list_top_of_page.
    So I took like this in header count is my variable in which I take value.
    So how can we pass the value in ALV Header please tell me.
    its urgent so.
    Thnaks in Advance.
    Prashant.

    HI DHWANI,
    *& Report  ZPP_RE_EMP_DETAILS
    *& This Report is used to check the Employee Performance And Used Machine Quantity
    *& Rqueirement By Santhosh
    *& Developed By Prashant On Date 01.02.2008
    *&  Created By: Prashant Brahmbhatt
    *&  Creation Date: 20080201
    *&  Module: PP (Production & Plannig)
    *&  Changed By         Changed Date        Reason
    REPORT  zpp_re_emp_details.
    TABLES:zpplan.
    TYPE-POOLS:slis.
    DATA:BEGIN OF itab OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab.
    DATA:BEGIN OF temp OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF temp.
    DATA:BEGIN OF itab_t OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         iserh LIKE zpplan-iserh,
         quaty LIKE zpplan-quaty,
         plan_qty LIKE zpplan-plan_qty,
         act_prod LIKE zpplan-act_prod,
         temp TYPE c,
         tar_qty(10) TYPE c,
         ach_qty(10) TYPE c,
         mch_eff(10) TYPE c,
        a(10) TYPE c,
         END OF itab_t.
    DATA:BEGIN OF itab1 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty TYPE p DECIMALS 2,
         ach_qty TYPE p DECIMALS 2,
         mch_eff TYPE p DECIMALS 2,
         END OF itab1.
    DATA: wa LIKE  itab1.
    DATA:BEGIN OF itab2 OCCURS 0,
         zdate LIKE zpplan-zdate,
         werks LIKE zpplan-werks,
         mname LIKE zpplan-mname,
         shftin LIKE zpplan-shftin,
         act_prod LIKE zpplan-act_prod,
         quaty LIKE zpplan-quaty,
         planned LIKE zpplan-planned,
         iserh LIKE zpplan-iserh,
         temp TYPE c,
         tar_qty(10) TYPE p DECIMALS 2,
         ach_qty(10) TYPE p DECIMALS 2,
         mch_eff(10) TYPE p DECIMALS 2,
         count(10) TYPE c,
         END OF itab2.
    DATA: a(10) TYPE c,
          b(10) TYPE c,
          count(10) TYPE c,
          count1(10) TYPE c.
         c(2) TYPE p DECIMALS 2.
    DATA:t_fcat TYPE slis_t_fieldcat_alv,
         t_events TYPE slis_t_event,
         t_list_top_of_page TYPE slis_t_listheader,
         t_list_end_of_page TYPE slis_t_listheader.
    CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    CONSTANTS:c_formname_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
    DATA: st_line TYPE slis_listheader.
                  SELECTION-SCREEN
    SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    *PARAMETERS:shftin LIKE zpplan-shftin.
    SELECT-OPTIONS:date FOR zpplan-zdate,
                   shftin FOR zpplan-shftin,
                   werks FOR zpplan-werks.
    SELECTION-SCREEN:END OF BLOCK blk1.
                   ALV CALL
    INITIALIZATION.
      PERFORM build_fieldcatalog USING t_fcat .
      PERFORM event_call.
      PERFORM head_built USING t_events.
    START-OF-SELECTION.
      PERFORM data_retrieval.
      PERFORM display_alv.
    *&      Form  build_fieldcatalog
          text
         -->P_T_FCAT  text
    FORM build_fieldcatalog  USING temp_fcat TYPE slis_t_fieldcat_alv.
      DATA:w_fcat TYPE slis_fieldcat_alv.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MNAME'.
      w_fcat-seltext_m = 'Machine Name'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'SHFTIN'.
      w_fcat-seltext_m = 'Emp No'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ZDATE'.
      w_fcat-seltext_m = 'Pos Date'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'QUATY'.
    w_fcat-seltext_m = 'Quantity'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACT_PROD'.
      w_fcat-seltext_m = 'Actual Quantity'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ISERH'.
      w_fcat-seltext_m = 'Down Time'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'TAR_QTY'.
      w_fcat-seltext_m = 'Target Qty.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'ACH_QTY'.
      w_fcat-seltext_m = 'EMP Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
      w_fcat-tabname = 'ITAB2'.
      w_fcat-fieldname = 'MCH_EFF'.
      w_fcat-seltext_m = 'Machine Effec.'.
      APPEND w_fcat TO temp_fcat.
      CLEAR w_fcat.
    w_fcat-tabname = 'ITAB2'.
    w_fcat-fieldname = 'COUNT'.
    w_fcat-seltext_m = 'Machine Effec.'.
    APPEND w_fcat TO temp_fcat.
    CLEAR w_fcat.
    ENDFORM.                    " build_fieldcatalog
    *&      Form  event_call
          text
    -->  p1        text
    <--  p2        text
    FORM event_call .
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = t_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
    -->  p1        text
    <--  p2        text
    FORM data_retrieval .
      IF shftin <> ''.
        SELECT zdate werks mname shftin  INTO CORRESPONDING FIELDS OF TABLE
         temp FROM zpplan
         WHERE shftin IN shftin
         AND zdate IN date
         AND werks IN werks.
      ELSE.
        SELECT zdate werks mname INTO CORRESPONDING FIELDS OF TABLE
           temp FROM zpplan
           WHERE  zdate IN date
           AND werks IN werks.
      ENDIF.
      SORT temp BY mname zdate shftin.
      DELETE ADJACENT DUPLICATES FROM temp.
      SORT temp BY mname shftin zdate.
      DELETE ADJACENT DUPLICATES FROM temp.
      APPEND temp.
      LOOP AT temp.
        SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab_t
        WHERE mname = temp-mname
        AND zdate = temp-zdate
        AND werks = temp-werks.
        LOOP AT itab_t.
          MOVE-CORRESPONDING itab_t TO itab.
          APPEND itab.
        ENDLOOP.
      ENDLOOP.
      *******************************************8
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
         FOR ALL ENTRIES IN temp
         WHERE zdate = temp-zdate AND
               werks = temp-werks
              AND mname = temp-mname.
    SELECT zdate werks mname shftin act_prod quaty iserh   FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
       WHERE zdate IN date AND
             werks IN werks AND
    shftin = shftin.
      SORT itab BY mname zdate.
    DELETE ADJACENT DUPLICATES FROM itab.
      LOOP AT itab.
        MOVE-CORRESPONDING itab TO itab1.
        COLLECT itab1.
      ENDLOOP.
      LOOP AT itab1.
        itab1-tar_qty = itab1-tar_qty + ( itab1-quaty / 3 ).
        IF  ( itab1-tar_qty NE 0 ).
          itab1-ach_qty = ( itab1-ach_qty +  itab1-act_prod / itab1-tar_qty ) * 100.
        ELSE.
          itab1-ach_qty = 0 * 100.
        ENDIF.
        itab1-mch_eff = ( ( 8 - itab1-iserh ) / 8 ) * 100.
        MODIFY itab1 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
      LOOP AT itab1.
        READ TABLE itab1 INDEX 1 INTO wa.
        IF itab1-mname = wa-mname.
          itab1-zdate = wa-zdate.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
               itab2-quaty = itab2-quaty + itab1-quaty.     
               itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
          itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ELSE.
               APPEND itab2.
               CLEAR itab2.
               MOVE-CORRESPONDING itab1 TO wa.
          itab2-shftin = itab1-shftin.
          itab2-mname = itab1-mname.
          itab2-zdate = itab1-zdate.
          itab2-quaty = itab2-quaty + itab1-quaty.     
          itab2-act_prod = itab2-act_prod + itab1-act_prod.
               itab2-iserh = itab2-iserh + itab1-iserh.
               itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
               itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
               itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
        ENDIF.
      ENDLOOP.
      APPEND itab2.
      LOOP AT itab2.
        IF  ( itab2-tar_qty NE 0 ).
          itab2-ach_qty = ( itab2-ach_qty +  itab2-act_prod / itab2-tar_qty(10) ) * 100.
        ELSE.
          itab2-ach_qty = 0 * 100.
        ENDIF.
        itab2-mch_eff = ( ( 8 - itab2-iserh ) / 8 ) * 100.
        MODIFY itab2 TRANSPORTING tar_qty ach_qty mch_eff.
      ENDLOOP.
    APPEND itab2.
      LOOP AT itab2.
       count = sy-tfill.
        a = a + itab2-tar_qty.
        b = b + itab2-ach_qty.
      ENDLOOP.
      CLEAR itab2.
      itab2-tar_qty = a.
      itab2-ach_qty = b.
      APPEND itab2.
      CLEAR itab2.
      count = a / sy-tfill.
      count1 = b / sy-tfill.
      itab2-tar_qty = count.
      itab2-ach_qty = count1.
    itab2-tar_qty = count.
      APPEND itab2.
    ENDFORM.                    " data_retrieval
    *&      Form  head_built
          text
         -->P_T_EVE  text
    FORM head_built  USING    p_t_eve TYPE slis_t_event.
    count = a / sy-tfill.
      DATA: ls_event TYPE slis_alv_event.
      REFRESH t_list_top_of_page.
      READ TABLE p_t_eve WITH KEY name = slis_ev_top_of_page INTO ls_event.
      IF sy-subrc = 0.
        MOVE c_formname_top_of_page TO ls_event-form.
        MODIFY p_t_eve FROM ls_event   INDEX sy-tabix.
      ENDIF.
       CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Total Target Qty: '.
        st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    CLEAR st_line.
    st_line-typ = 'S'.
    st_line-info = count.
    CONCATENATE 'Avg Target Qty.'  count  ' ' INTO st_line-info.
    APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg.EMP Efficiency: '.
        st_line-info = count1.
        APPEND st_line TO t_list_top_of_page.
      CLEAR st_line.
        st_line-typ = 'S'.
        st_line-key = 'Avg. Machine Efficincy: '.
       st_line-info = count.
        APPEND st_line TO t_list_top_of_page.
    REFRESH t_list_end_of_page.
    READ TABLE p_t_eve WITH KEY name =  slis_ev_end_of_list INTO ls_event.
    IF sy-subrc = 0.
       MOVE c_formname_end_of_page TO ls_event-form.
       MODIFY p_t_eve FROM ls_event INDEX sy-tabix.
    ENDIF.
    CLEAR st_line.
    st_line-typ = 'S'.
    CONCATENATE 'END OF PAGE' ' ' INTO st_line-info.
    APPEND st_line TO t_list_end_of_page.
    ENDFORM.                    " head_built
    *&      Form  top-of-page
          text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = t_list_top_of_page
        I_LOGO                   =
        I_END_OF_LIST_GRID       =
        I_ALV_FORM               =
    ENDFORM.                    "top-of-page
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         i_callback_program                = 'ZPP_RE_EMP_DETAILS'
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
       i_background_id                   = 'ALV_BACKGROUND'
       i_grid_title                      = 'EMP Information'
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
         it_fieldcat                       = t_fcat
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
         it_events                         = t_events
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          t_outtab                          = itab2
    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

  • Rename alv header text in webdynpro abap

    Hi ,
    I have created two attribute PART_NUMBER and TERM_CODE in context level with type CHAR10.
    AND in ALV header PART_NUMBER and TERM_CODE is displaying, which is coming from context level.
    i want to rename the header of ALV to PARTNUMBER and TERMCODE.
    could any one send me the sampls code or any solution?
    Thanks
    Rakshar

    First get access to the ALV Model object for your ALV usage:
    data: l_ref_cmp_usage type ref to if_wd_component_usage.
      l_ref_cmp_usage =   wd_this->wd_cpuse_alv( ).
      if l_ref_cmp_usage->has_active_component( ) is initial.
        l_ref_cmp_usage->create_component( ).
      endif.
      data l_salv_wd_table type ref to iwci_salv_wd_table.
      l_salv_wd_table = wd_this->wd_cpifc_alv( ).
      data l_table type ref to cl_salv_wd_config_table.
      l_table = l_salv_wd_table->get_model( ).
    Then access the column you want to change the header on. In addition to setting the text of the header of the column, you must also force off the data dictionary binding for the field property text.
    data l_column type ref to cl_salv_wd_column.
    l_column = l_table->if_salv_wd_column_settings~get_column( 'POSTING_DATE' ).
      data l_header type ref to cl_salv_wd_column_header.
      l_header = l_column->get_header( ).
      l_header->set_prop_ddic_binding_field(
        property =  if_salv_wd_c_ddic_binding=>bind_prop_text
        value = if_salv_wd_c_ddic_binding=>ddic_bind_none ).
      l_header->set_text( `Posting Date` ).

  • How to Display Logo in ALV Header?

    Hi
    I want to display/ print my company logo image in ALV Header. Please help me how can I do this?
    Thanks
    Iftikhar Ali
    Islamabad.

    Hi,
    If you are already   having a logo say ZLOGO .
    You can use it this way .
    Give TOP-OF-PAGE
    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.
    And in top of page do this .
    FORM top-of-page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRIT
      EXPORTING
       IT_LIST_COMMENTARY       = IT_LISTHE
       i_logo                   = 'ZLOGO'
      I_END_OF_LIST_GRID       =
    endform.
    Hope this will work .
    Reward if found useful.
    Regards
    SureshP.

Maybe you are looking for

  • IPhone/iPod Touch Safari won't open iTunes Store URL link - help

    Hi! If I use regular web browser on my computer and click on an iTunes Store URL, iTunes App Store will open and show the app info. How come this doesn't work with iPhone Safari web browser? I got alert message "Safari cannot open the page because th

  • Photoshop Menus/Options not displaying correctly

    I've just installed photoshop cs6 and many of the options are not displaying correctly.  I've included two screenshots as examples. I'm running Windows 7 64 bit and Nvidia GeForce GT330M graphics.  I've updated the graphics driver to the latest versi

  • MRP and Inventory Reservations MD04

    I have been digging on inventory reservations and have found nothing to indicate the the MRP element OrdRes is "decremented" by partial issues of inventory on process orders PI01 type.  Were seeing the required quantity stay the same until final issu

  • Organization Determination not determined for CRM_IC

    Our users are usually tied to multiple IC Profiles as they are tied to multiple organizations. We have an issue with the way the responsible group get auto-populated for IR. Lets assume we have a user Joe and he is assigned to organization A, B, C, D

  • Can't download movies purchased from itunes on my ipad

    I have many movies purchased through iTunes store.  In the past I was able to download to my iPad to watch when out of wifi.  Now many titles, I cannot.  Previously, I downloaded Avengers and watched, now it won't. Why?