Skip to Content
avatar image
Former Member

Dynamic ALV

Can anybody help me in making a simple dynamic alv, with code?

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • avatar image
    Former Member
    Sep 19, 2008 at 05:22 AM

    Hi Gorika,

    please check this link

    Dynamic ALV

    Regards,

    Anirban

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Oct 21, 2008 at 04:49 AM

    Hi,

    Find th sample code below should help you sove your problem.

    type-pools: slis.
    
    field-symbols: <dyn_table> type standard table,
    <dyn_wa>.
    
    data: alv_fldcat type slis_t_fieldcat_alv,
    it_fldcat type lvc_t_fcat.
    
    selection-screen begin of block b1 with frame title text-001.
    parameters: p_flds(5) type c.
    selection-screen end of block b1.
    
    start-of-selection.
    
    
    *build the dynamic internal table
    perform build_dyn_itab.
    
    
    *write 5 records to the alv grid
    do 5 times.
    perform build_report.
    enddo.
    
    
    *call the alv grid.
    perform call_alv.
    
    ************************************************************************
    
    
    *Build_dyn_itab
    ************************************************************************
    form build_dyn_itab.
    
    data: new_table type ref to data,
    new_line type ref to data,
    wa_it_fldcat type lvc_s_fcat.
    
    
    *Create fields .
    clear wa_it_fldcat.
    wa_it_fldcat-fieldname = 'name1'.
    wa_it_fldcat-datatype = 'mara-matnr'.
    wa_it_fldcat-intlen = 5.
    append wa_it_fldcat to it_fldcat .
    *
    *clear wa_it_fldcat.
    
    wa_it_fldcat-fieldname = sy-index.
    wa_it_fldcat-datatype = 'CHAR'.
    wa_it_fldcat-intlen = 5.
    append wa_it_fldcat to it_fldcat .
    *
    
    do p_flds times.
    clear wa_it_fldcat.
    wa_it_fldcat-fieldname = sy-index.
    wa_it_fldcat-datatype = 'CHAR'.
    wa_it_fldcat-intlen = 6.
    append wa_it_fldcat to it_fldcat .
    enddo.
    
    
    *Create dynamic internal table and assign to FS
    call method cl_alv_table_create=>create_dynamic_table
    exporting
    it_fieldcatalog = it_fldcat
    importing
    ep_table = new_table.
    
    assign new_table->* to <dyn_table>.
    
    
    *Create dynamic work area and assign to FS
    create data new_line like line of <dyn_table>.
    assign new_line->* to <dyn_wa>.
    
    endform.
    
    *********************************************************************
    *Form build_report
    *********************************************************************
    
    form build_report.
    
    data: fieldname(20) type c.
    data: fieldvalue(5) type c.
    data: index(3) type c.
    field-symbols: <fs1>.
    
    do p_flds times.
    
    index = sy-index.
    
    
    *Set up fieldvalue
    concatenate 'FLD' index into
    fieldvalue.
    condense fieldvalue no-gaps.
    
    assign component index of structure <dyn_wa> to <fs1>.
    <fs1> = fieldvalue.
    
    enddo.
    
    
    *Append to the dynamic internal table
    append <dyn_wa> to <dyn_table>.
    
    endform.
    
    ************************************************************************
    *CALL_ALV
    ************************************************************************
    form call_alv.
    
    data: wa_cat like line of alv_fldcat.
    
    
    do p_flds times.
    clear wa_cat.
    wa_cat-fieldname = sy-index.
    wa_cat-seltext_s = sy-index.
    wa_cat-outputlen = '6'.
    append wa_cat to alv_fldcat.
    enddo.
    
    
    *Call ABAP List Viewer (ALV)
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    it_fieldcat = alv_fldcat
    tables
    t_outtab = <dyn_table>.
    
    endform.

    Also check the link below.

    how-can-i-create-a-dynamic-internal-table-in-abap

    Cheers,

    Murthy.

    Add comment
    10|10000 characters needed characters exceeded