ALV List Display

download ALV List Display

of 5

Transcript of ALV List Display

  • 8/9/2019 ALV List Display

    1/5

    ALV list display(ALV_LIST)

    Below is a code listing / ABAP program for the basic ALVlist functionality. Simply copy and

    past the code into a new program and it should active and run ok.

    *&-------------------------------------------------------------**& Report ZDEMO_ALVLIST *

    *& **&-------------------------------------------------------------*

    *& *

    *& Example of a simple ALV List Report *

    *& ................................... *

    *& *

    *& The basic requirement for this demo is to display a number *

    *& of fields from the EKKO table. *

    *&-------------------------------------------------------------*

    REPORT zdemo_alvlist .

    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.

  • 8/9/2019 ALV List Display

    2/5

    *&---------------------------------------------------------------------*

    *& 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.

  • 8/9/2019 ALV List Display

    3/5

    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_LIST_DISPLAY'exporting

  • 8/9/2019 ALV List Display

    4/5

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

  • 8/9/2019 ALV List Display

    5/5

    * 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'

    exportingit_list_commentary = t_header.

    * i_logo = 'Z_LOGO'.

    endform.