Link to action in editable ALV

Hi experts,
I have an editable alv with a column where I implemented the UI Element "Linktoaction" for the cells of this column. I implemented it in the WddoInit-Method in my view with the alv:
lr_column_settings ?= l_value.
  lr_column = lr_column_settings->get_column( 'LINK' ).
  CREATE OBJECT lr_linktoaction.
  lr_linktoaction->set_text( value = 'Go to Detail' ).
If I have an normal InputField I need:
lr_column->set_cell_editor( lr_input_field ).
What have I to do for getting an action for clicking on the Link? The link with the text "Go to Detail" is displayed in the editable alv. But how can I navigate to another view by clicking?
Thanls a lot for your help!!
Best Regards
Ingmar

Hi Ingmar,
Implement 'ON_CLICK_EVENT' in the same view where u have ALV. Clicking on the link in the cell using link to action gives you the following information which u can use (pass to other view etc..) -
COLUMN_ID
INDEX
ATTRIBUTE
VALUE
You can read these values and store them in a node.
Create one node in the view by name 'EVENT_PROPERTIES' with attributes 'NAME' and 'VALUE' of type string both and use the below code in on_click_event. Here I am navigating to the next view after clicking the link, you can do whatever u want depending on ur requirement.
  DATA: lr_node TYPE REF TO if_wd_context_node,
        lt_event_properties TYPE if_models_list_view=>elements_event_properties,
        ls_event_properties TYPE if_models_list_view=>element_event_properties.
  FIELD-SYMBOLS: <l_value> TYPE ANY.
fill internal table
  ls_event_properties-name = 'COLUMN_ID'.
  ls_event_properties-value = r_param->column.
  APPEND ls_event_properties TO lt_event_properties.
  ls_event_properties-name = 'INDEX'.
  ls_event_properties-value = r_param->index.
  APPEND ls_event_properties TO lt_event_properties.
  ls_event_properties-name = 'ATTRIBUTE'.
  ls_event_properties-value = r_param->attribute.
  APPEND ls_event_properties TO lt_event_properties.
  ASSIGN r_param->value->* TO <l_value>.
  ls_event_properties-name = 'VALUE'.
  ls_event_properties-value = <l_value>.
  APPEND ls_event_properties TO lt_event_properties.
navigate to context node EVENT_PROPERTIES
  lr_node = wd_context->get_child_node( 'EVENT_PROPERTIES' ).
bind internal table to context node
  lr_node->bind_table( lt_event_properties ).
  wd_this->fire_to_pi_main_view_plg( ).
Regards,
Gaurav

Similar Messages

  • Search Help For An Editable ALV List

    Hi,
    All ABAP Gurus !!
    I have made an Editable ALV with the fields of ZTable. In ALV I want the search help in one of the columns.The entry in that should come from the standard table name-TVM5 and the field which should come is MVGR5. MVGR5  does not contain the search help .Following are the description for my ZTable-------
    Field Name    - MC_NO,
    Data Element - ZZMC_NO1,
    Domain          -ZZMC_NO1.
    While creating this ZTable, in the Entry help/check tab I have also mention Input help with fixed values in the column- Origin of the input help and entered the entries also.
    About ALV (Only one alv column is shown here for reference in which search help or input help is needed of all the possible entries)---
    DATA: INT_FIELDCATALOG2 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: WA_FIELDCATALOG2  TYPE LVC_S_FCAT ,
               WA_LAYOUT2        TYPE SLIS_LAYOUT_ALV ,
              GD_LAYOUT2        TYPE LVC_S_LAYO.     "slis_layout_alv.
      WA_FIELDCATALOG2-FIELDNAME      = 'MC_NO'.
      WA_FIELDCATALOG2-TABNAME        = 'T_ITAB2'.            " T_ITAB2 contains all the other fields
      WA_FIELDCATALOG2-SCRTEXT_M     = 'Machine No.'.
      WA_FIELDCATALOG2-EDIT                  = 'X'.
      WA_FIELDCATALOG2-F4AVAILABL   = 'X'.
      WA_FIELDCATALOG2-REF_FIELD       = 'MVGR5'.
      WA_FIELDCATALOG2-REF_TABLE     = 'TVM5'.
    APPEND WA_FIELDCATALOG2 TO INT_FIELDCATALOG2.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
        EXPORTING
          I_CALLBACK_PROGRAM              = V_REPID
          I_CALLBACK_PF_STATUS_SET   = 'SET_PF_STATUS1'
          I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          IT_FIELDCAT_LVC                        = INT_FIELDCATALOG2[]
          IS_LAYOUT_LVC                         = GD_LAYOUT2
        TABLES
          T_OUTTAB                 = T_ITAB2.
    Please explain in detail
    Thanks to all in advance.

    Please check the following links :
    F4 help -- on editable alv field.
    F4 help in editable ALV
    ALV Editable Grid Control F4 help problem
    And search the forum for  f4 help on editable alv
    KR
    Veeranji Reddy P.

  • Preserving PDF links and actions created in Acrobat after editing in Illustrator

    I created an interactive PDF in Acrobat from an Illustrator file saved as a PDF.  It's basically an interactive prototype that simulates dropdown menus, highlighted selections and navigation between screens.  Using the Link Tool, I set layers to appear through the layer visibility action, and certain layers to toggle through javascript.  Since the prototype is evolving, however, I have to periodically make minor edits to it in Illustrator.  Once I make an edit and save the PDF again, when I open up the saved document in Acrobat, all the link tool actions are gone.  This is highly frustrating because most of the edits take just a minute or two in Illustrator, but I have to re-create all the links in Acrobat when I'm done, which takes a very long time.  How can I make minor edits in Illustrator while preserving the action elements I created in Acrobat?

    Well, that's a bummer.  It's so close to a feasible workflow for generating quick early-stage prototypes that you can continue to work on. 
    Thanks for the info.

  • Creating a number of Link to Actions based on the Output of an ALV

    Hello Experts,
    I have an ALV table as an output in WDA in which the number of records are unknown.
    I want to limit the number of records to 500 at a point of time.
    Below the table i need to have link to actions placed like 1-500 501-1000 10001-1500 and so on.
    As the number of records are unknown i need to have these link to actions divided among total records.
    And if the table shows 1-500 records the Link to Action 1-500 should become text so that the user will not be able to click on it.
    So my requirement is
    1.How to limit the number of records to 500.
    2.How to place the link to actions dynamically based on the number of output records.
    3.How to change the Link to Action to Text.
    Please help me in this.
    Thanks in Advance,
    Shravan

    Hello Shravan,
    If you know the total number of records at runtime then its simple. Otherwise you need to write some complex logic. I assume that at runtime while launching the application you will know the total number records .
    1.How to limit the number of records to 500.
    As Srinivas mentioned call the set_visible_row_count method by passing 500
    2.How to place the link to actions dynamically based on the number of output records.
    Logic for the same.
    data i_total type i value 1250. "say total number of records
    data i_max type i value 500. "your max records to be displayed in aLV at anypoint of time
    data i_num type i.
    data i_rem type i.
    i_num = i_total div i_max.
    i_rem = i_total mod i_max.
    data lv_end_text type string.
    data lv_start_text type string.
    data lv_final_text type string.
    data i_start type i.
    data i_end type i.
    do i_num times.
      i_start = ( i_max * ( sy-index - 1 ) + 1 ).
      lv_start_text = i_start.
      i_end = i_max * sy-index.
      lv_end_text = i_end.
      concatenate lv_start_text ' - ' lv_end_text into lv_final_text RESPECTING BLANKS.
       "Write the logic to create the Link to Action - as suggested by Srinivas
    enddo.
    if i_rem > 0.
      i_start  = i_max * i_num + 1.
      lv_start_text = i_start.
      i_end = i_max * i_num + i_rem.
      lv_end_text = i_end.
      concatenate lv_start_text ' - ' lv_end_text into lv_final_text RESPECTING BLANKS.
    " Write the logic to add the last linkToAction
    endif.
    3.How to change the Link to Action to Text.
    If you set the enable property of the LinkToAction to abap_false then it will be disabled and displayed as text.
    Hope this helps.
    BR, Saravanan

  • ABAP WD ALV Link to action for a Field

    Hi,
    I got a special question to Webdynpro ALV developing:
    How can I generate a link to a seperate Cell or Field of the ALV depends on the content of other field-values in the same row.
    e.g. Depends on a response status value of an record in the table I want to allow a link to action for another field in the same row.
    Currently, I have "link to action"s for all cells in a column. What I need, is only some cells in the column depends on values in the same row.
    Thanks for your help,
    Eugen

    Eugen, the fallowing link may be help you.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/bd28494a-0801-0010-45a3-fc359d82d3e8?overridelayout=true
    Regards,
    Edson Thomaz

  • Alv --link to action

    HI,
    I have 5 columns in alv ...in that 3 col.. having link to action...if i click on link to action it  should show some popup...in pop up which link to action i clicked that column name should be binded to one input field in pop up...can any one suggest me how to get col. name

    Hi,
    The event handler for link to action has two importing parameters.
    1.WDEVENT
    2.R_PARAM of type IF_SALV_WD_TABLE_CLICK.
    R_PARAM has these 4 attributes.
    You have attribute,column,index and value
    You can get your column name like
    ls_col_name =  r-param->column

  • Table with Linktoaction cell editor VS ALV with Link to action cell editor

    Hi,
    i am replacing table UI with ALV, i am encountering series of problems one of them is below.
    when i click on linktoaction cell in table i can see wdevent has context_element which is element reference, which is being used in action handler to perform some logic...
    however when i replace with alv where i displayed one column with link to action cells using CL_SALV_WD_UIE_LINK_TO_ACTION class, however when i click on any particular cell i only get information related to that cell like column name, attribute name, value and position.
    however as i said i need context element reference to work with which is not coming with alv.
    please suggest.

    yes, that is right, you have to get the context element from the node based on the Index you get.

  • Editable ALV's

    Can anyone tell me a business scenario when we might need to develop an editable ALV. Am new to ABAP & trying to work out on some possible scenarios. So could anyone please help me out by suggesting/sending me a sample specification for the same? ( [email protected] ) Would be very helpful. And when we try to edit a field in the list how does the system edit the system tables like? I mean does it again make use of any FM's or procedures to ensure system consistency? And if anyone has some good material on advanced concepts of ALV's please send it to my email address. All helpful answers would be awarded SDN points. Thanks...

    Hi
    ABAP List Viewer
    We raely use the editable ALV's in the real projects.
    The common features of report are column alignment, sorting, filtering, subtotals, totals etc. To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).
    This helps us to implement all the features mentioned very effectively.
    Using ALV, We can have three types of reports:
    1. Simple Report
    2. Block Report
    3. Hierarchical Sequential Report
    There are some function modules which will enable to produce the above reports without much effort.
    All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.
    1. SIMPLE REPORT.
    The important function modules are
    a. Reuse_alv_list_display
    b. Reuse_alv_fieldcatalog_merge
    c. Reuse_alv_events_get
    d. Reuse_alv_commentary_write
    e. Reuse_alv_grid_display
    A. REUSE_ALV_LIST_DISPLAY : This is the function module which prints the data.
    The important parameters are :
    I. Export :
    i. I_callback_program : report id
    ii. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf status
    iii. I_callback_user_command : routine where the function codes are handled
    iv. I_structure name : name of the dictionary table
    v. Is_layout : structure to set the layout of the report
    vi. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE
    vii. It_events : internal table with a list of all possible events of ALV and their corresponding form names.
    II. Tables :
    i. t_outtab : internal table with the data to be output
    B. REUSE_ALV_FIELDCATALOG_MERGE : This function module is used to populate a fieldcatalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter(I_structure name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.
    The Important Parameters are :
    I. Export :
    i. I_program_name : report id
    ii. I_internal_tabname : the internal output table
    iii. I_inclname : include or the report name where all the dynamic forms are handled.
    II Changing
    ct_fieldcat : an internal table with the type SLIS_T_FIELDCAT_ALV which is
    declared in the type pool SLIS.
    C. REUSE_ALV_EVENTS_GET : Returns table of possible events for a list type
    Parameters :
    I. Import :
    Et_Events : The event table is returned with all possible CALLBACK events
    for the specified list type (column 'NAME'). For events to be processed by Callback, their 'FORM' field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field 'FORM' filled and the entry modified using constants from the type pool SALV.
    II. Export :
    I_List_type :
    0 = simple list REUSE_ALV_LIST_DISPLAY
    1 = hierarchcal-sequential list REUSE_ALV_HIERSEQ_LIST_DISPLAY
    2 = simple block list REUSE_ALV_BLOCK_LIST_APPEND
    3 = hierarchical-sequential block list
    REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_COMMENTARY_WRITE : This is used in the Top-of-page event to print the headings and other comments for the list.
    Parameters :
    I. it_list_commentary : internal table with the headings of the type slis_t_listheader.
    This internal table has three fields :
    Typ : ‘H’ – header, ‘S’ – selection , ‘A’ - action
    Key : only when typ is ‘S’.
    Info : the text to be printed
    E. REUSE_ALV_GRID_DISPLAY : A new function in 4.6 version, to display the results in grid rather than as a preview.
    Parameters : same as reuse_alv_list_display
    This is an example for simple list.
    2. BLOCK REPORT
    This is used to have multiple lists continuously.
    The important functions used in this report are:
    A. REUSE_ALV_BLOCK_LIST_INIT
    B. REUSE_ALV_BLOCK_LIST_APPEND
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    A. REUSE_ALV_BLOCK_LIST_INIT
    Parameters:
    I. I_CALLBACK_PROGRAM
    II. I_CALLBACK_PF_STATUS_SET
    III. I_CALLBACK_USER_COMMAND
    This function module is used to set the default gui status etc.
    B. REUSE_ALV_BLOCK_LIST_APPEND
    Parameters :
    Export :
    I. is_layout : layout settings for block
    II. it_fieldcat : field catalog
    III. i_tabname : internal table name with output data
    IV. it_events : internal table with all possible events
    Tables :
    i. t_outtab : internal table with output data.
    This function module adds the data to the block.
    Repeat this function for all the different blocks to be displayed one after the other.
    C. REUSE_ALV_BLOCK_LIST_HS_APPEND
    This function module is used for hierarchical sequential blocks.
    D. REUSE_ALV_BLOCK_LIST_DISPLAY
    Parameters : All the parameters are optional.
    This function module display the list with data appended by the above function.
    Here the functions REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_EVENTS_GET, REUSE_ALV_COMMENTARY_WRITE can be used.
    3. Hierarchical reports :
    Hierarchical sequential list output.
    The function module is
    A. REUSE_ALV_HIERSEQ_LIST_DISPLAY
    Parameters:
    I. Export:
    i. I_CALLBACK_PROGRAM
    ii. I_CALLBACK_PF_STATUS_SET
    iii. I_CALLBACK_USER_COMMAND
    iv. IS_LAYOUT
    v. IT_FIELDCAT
    vi. IT_EVENTS
    vii. i_tabname_header : Name of the internal table in the program containing the
    output data of the highest hierarchy level.
    viii. i_tabname_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    ix. is_keyinfo : This structure contains the header and item table field
    names which link the two tables (shared key).
    II. Tables
    i. t_outtab_header : Header table with data to be output
    ii. t_outtab_item : Name of the internal table in the program containing the
    output data of the lowest hierarchy level.
    slis_t_fieldcat_alv : This internal table contains the field attributes. This internal table can be populated automatically by using ‘REUSE_ALV_FIELDCATALOG_MERGE’.
    Important Attributes :
    A. col_pos : position of the column
    B. fieldname : internal fieldname
    C. tabname : internal table name
    D. ref_fieldname : fieldname (dictionary)
    E. ref_tabname : table (dictionary)
    F. key(1) : column with key-color
    G. icon(1) : icon
    H. symbol(1) : symbol
    I. checkbox(1) : checkbox
    J. just(1) : (R)ight (L)eft (C)ent.
    K. do_sum(1) : sum up
    L. no_out(1) : (O)blig.(X)no out
    M. outputlen : output length
    N. seltext_l : long key word
    O. seltext_m : middle key word
    P. seltext_s : short key word
    Q. reptext_ddic : heading (ddic)
    R. ddictxt(1) : (S)hort (M)iddle (L)ong
    S. datatype : datatype
    T. hotspot(1) : hotspot
    see the example:
    report yh645_secndry_alv.
    type-pools: slis.
    data: fieldcat type slis_t_fieldcat_alv,
    fieldcat_ln like line of fieldcat,
    fs_layout type slis_layout_alv,
    t_layoout like standard table
    of fs_layout.
    data: begin of fs_spfli,
    carrid type spfli-carrid,
    connid type spfli-connid,
    countryfr type spfli-countryfr,
    cityfrom type spfli-cityfrom,
    airpfrom type spfli-airpfrom,
    countryto type spfli-countryto,
    cityto type spfli-cityto,
    airpto type spfli-airpto,
    fltime type spfli-fltime,
    deptime type spfli-deptime,
    arrtime type spfli-arrtime,
    distance type spfli-distance,
    distid type spfli-distid,
    fltype type spfli-fltype,
    period type spfli-period,
    checkbox,
    color(3),
    end of fs_spfli.
    data:
    begin of fs_table,
    carrid type spfli-carrid,
    connid type spfli-connid,
    end of fs_table.
    data: begin of fs_sflight,
    check,
    color(3).
    include type sflight.
    data:end of fs_sflight.
    data:
    begin of fs_table1,
    carrid type sflight-carrid,
    connid type sflight-connid,
    fldate type sflight-fldate,
    end of fs_table1.
    data:
    t_spfli like standard table
    of fs_spfli.
    data:
    t_table like standard table
    of fs_table.
    data:
    t_table1 like standard table
    of fs_table1.
    data:
    t_sflight like standard table
    of fs_sflight.
    data:
    t_sbook like standard table
    of sbook.
    data t_layout type slis_layout_alv.
    select *
    into corresponding fields of table t_spfli
    from spfli.
    perform start_list_viewer.
    perform get_spfli_details.
    *& Form SUB1
    text
    -->RT_EXTAB text
    form sub1 using rt_extab type slis_t_extab.
    data: flight type slis_extab.
    flight-fcode = 'SFLIGHT'.
    append flight to rt_extab.
    set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.
    endform. "SUB1
    *& Form START_LIST_VIEWER
    text
    --> p1 text
    <-- p2 text
    form start_list_viewer .
    data: pgm like sy-repid.
    pgm = sy-repid.
    fs_layout-box_fieldname = 'CHECKBOX'.
    fs_layout-info_fieldname = 'COLOR'.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_callback_pf_status_set = 'SUB1'
    i_callback_user_command = 'USER_COMMAND'
    i_structure_name = 'SPFLI'
    is_layout = fs_layout
    tables
    t_outtab = t_spfli
    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. " START_LIST_VIEWER
    *******Process Call Back Events (Begin)**************************
    form user_command using ucomm like sy-ucomm
    selfield type slis_selfield.
    case ucomm.
    when 'SFLIGHT'.
    selfield-refresh = 'X'.
    perform get_spfli_details.
    select *
    from sflight
    into corresponding fields of table t_sflight
    for all entries in t_table
    where carrid eq t_table-carrid
    and connid eq t_table-connid.
    perform display_sflight.
    when 'SBOOK'.
    selfield-refresh = 'X'.
    perform get_sflight_details.
    select *
    from sbook
    into corresponding fields of table t_sbook
    for all entries in t_table1
    where carrid eq t_table1-carrid
    and connid eq t_table1-connid
    and fldate eq t_table1-fldate.
    perform display_sbook.
    endcase.
    endform. "USER_COMMAND
    *& Form SUB2
    text
    -->RT_EXTAB text
    form sub2 using rt_extab type slis_t_extab.
    data: flight type slis_extab.
    flight-fcode = 'SBOOK'.
    append flight to rt_extab.
    set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.
    endform. "SUB2
    *& Form DISPLAY_SFLIGHT
    text
    --> p1 text
    <-- p2 text
    form display_sflight .
    data: pgm like sy-repid.
    pgm = sy-repid.
    clear t_layout.
    fs_layout-box_fieldname = 'CHECK'.
    fs_layout-info_fieldname = 'COLOR'.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_callback_pf_status_set = 'SUB2'
    i_callback_user_command = 'USER_COMMAND'
    i_structure_name = 'SFLIGHT'
    is_layout = fs_layout
    tables
    t_outtab = t_sflight
    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_SFLIGHT
    *& Form GET_SPFLI_DETAILS
    text
    --> p1 text
    <-- p2 text
    form get_spfli_details .
    loop at t_spfli into fs_spfli.
    if fs_spfli-checkbox = 'X'.
    fs_spfli-color = 'C51'.
    fs_spfli-checkbox = '1'.
    fs_table-carrid = fs_spfli-carrid.
    fs_table-connid = fs_spfli-connid.
    append fs_table to t_table.
    modify t_spfli from fs_spfli.
    endif.
    endloop.
    endform. " GET_SFLIGHT_DETAILS
    *& Form GET_SFLIGHT_DETAILS
    text
    --> p1 text
    <-- p2 text
    form get_sflight_details .
    loop at t_sflight into fs_sflight.
    if fs_sflight-check = 'X'.
    fs_sflight-color = 'C71'.
    fs_sflight-check = '1'.
    fs_table1-carrid = fs_sflight-carrid.
    fs_table1-connid = fs_sflight-connid.
    fs_table1-fldate = fs_sflight-fldate.
    append fs_table1 to t_table1.
    modify t_sflight from fs_sflight.
    endif.
    endloop.
    endform. " GET_SFLIGHT_DETAILS
    *& Form DISPLAY_SBOOK
    text
    --> p1 text
    <-- p2 text
    form display_sbook .
    data: pgm like sy-repid.
    pgm = sy-repid.
    call function 'REUSE_ALV_LIST_DISPLAY'
    exporting
    i_callback_program = pgm
    i_structure_name = 'SBOOK'
    tables
    t_outtab = t_sbook
    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_SBOOK
    Reward points if useful
    Regards
    Anji

  • Update out_tab data in editable ALV

    Hi,
    I am working on editable ALV using oops. I want to insert the data into database tables after user insert the data in ALV based on the application tool bar button action.
    How to refresh the data in out_tab, If user click the application tool bar button then I need to save the ALV grid data in database table.
    Please give me the valuable suggestions.
    - Rayudu

    solved my self

  • Drop-down list in editable ALV

    Hello all,
    Does anyone know how to display the values instead of the internal values when using the alias table to specify a drop-down list in an editable ALV grid ?
    Apparently the BC_ALV* examples have the same problem.
    thx
    Pieter

    Hi,
    These links will help you to implement a drop down list...
    http://help.sap.com/saphelp_46c/helpdata/en/9f/dbabe435c111d1829f0000e829fbfe/content.htm
    Also refer the pgm:
    RSDEMO_DROPDOWN_LISTBOX
    BCALV_TEST_GRID_F4_HELP
    Also take a look the SAP example program BCALV_TEST_GRID_EDITABLE.  It has a working Drop Down List Box.
    You have to fill a table of type lvc_t_drop. In this you set a handle and value for every item you want to have in a all possible drop down lists. You will later connect a sub set of this data to your grid display data by joining on this handle. You can then send this table to your ALV grid using the method SET_DROP_DOWN_TABLE. You will also want to set the DRDN_FIELD in your field catalog to the field name in your data table that will contain the handle for the values in your drop down table you want to expose. You will need to add this field to your data table.
    Best Regards,
    Anjali

  • Command link / button action is not taking place if i use it in iterator.

    Hi,
    I am new to ADF, i am facing 1 issue while implementing ADF mobile browser application.
    Issue: command link / button action is not taking place if i use it in iterator. its just refreshing the page it self and displaying as no records.
    Scenario is i am populating the search results in results page from search page using iterator, i want to get the complete details in different page (results page -> details page) .
    I have tried in different ways.like
    case1:
    <tr:panelGroupLayout id="pgl2" layout="vertical" styleClass="af_m_panelBase">
    <tr:panelHeader text="#{classviewBundle.SEARCH_RESULTS}" id="ph1"/>
    <tr:iterator id="i1" value="#{bindings.SubjectVO1.collectionModel}" var="subject"
    varStatus="subIndx" rows="100">
    <tr:panelBox text="#{subject.Subject} #{subject.CatalogNbr} - #{subject.CourseTitleLong}"
    styleClass="af_m_listingPrimaryDetails" id="pb1">
    <f:facet name="toolbar"/>
    <tr:table var="ssrClass" rowBandingInterval="1" id="t1" value="#{subject.children}"
    varStatus="clsIndx" rowSelection="none"
    binding="#{SessionBean.subjectTable}" verticalGridVisible="true"
    emptyText="No Records" width="100%">
    <tr:column id="c9" sortable="false" styleClass="width:100%">
    <*tr:commandLink text="Section: #{ssrClass.ClassSection}-#{ssrClass.SsrComponentLovDescr} (#{ssrClass.ClassNbr})"*
    id="commandLink2" styleClass="af_m_listingLink"
    *action="#{pageFlowScope.BackingBean.searchaction}"></tr:commandLink>*
    //remaining code
    in this case commandlink action is not able to invoke serachaction() method
    case 2:
    <tr:commandLink text="Section: #{ssrClass.ClassSection}-#{ssrClass.SsrComponentLovDescr} (#{ssrClass.ClassNbr})"
    id="commandLink2" styleClass="af_m_listingLink"
    action="classdetails}"></tr:commandLink>
    in this case its not able to navigate to classdetails page.
    I gave correct navigation cases and rules in taskflow,but its working fine when the command link is out of iterator only.
    i tried with actionlistener too.. but no use.. please help me out of this problem .
    *Update to issue:*
    The actual issue is when i use command link/button in an table/iterator whose parent tag is another iterator then the action is not taking place.
    the structer of my code is
    < iterator1>
    #command link action1
    < iterator2>
    #command link action2
    </ iterator2>
    < /iterator1>
    #command link action1 is working but "#command link action2" is not...
    Thanks
    Shyam
    Edited by: shyam on Dec 26, 2011 5:40 PM

    Hi,
    To solve my problem I used a af:foreach instead.
    <af:forEach items="#{viewScope.DataBySubjectServiceBean.toArray}" var="text">
    <af:commandLink text="#{text.IndTextEn}" action="indicator-selected" id="cl1">
    <af:setActionListener from="#{text.IndCode}" to="#{pageFlowScope.IndicatorCodeParam}" />
    </af:commandLink>
    </af:forEach>
    By the way you need to convert the iterator to an Array using a ManagedBean.
    public Object[] toArray() {
    CollectionModel cm = (CollectionModel) getEL("#{bindings.TView1.collectionModel}");
    indicators = new Object[cm.getRowCount()];
    for(int i=0;i<cm.getRowCount();i++){
    indicators[i] = cm.getRowData(i);
    return indicators;
    public static Object getEL(String expr) {
    FacesContext fc = FacesContext.getCurrentInstance();
    return fc.getApplication().evaluateExpressionGet(fc,expr,Object.class);
    Hope that helps-
    Edited by: JuJuZ on Jan 3, 2012 12:23 AM
    Add getEL Method

  • Regarding link to action.

    Hi all,
    In my case i have to diplay list of records in ALV.in that ALV ,we have provide link to action,by click on this it has to display another view.
    i m able to calling the next view whenever click on this .but i need to carry value of clicked one.how can i get the value of selected .
    Regards,
    Ravi

    Hello,
    Do the following to get the selected value:
    You need to code this in the event handler method related to the event ON_CLICK from the ALV component.
      DATA lr_bookingid TYPE REF TO bapisbodat-bookingid.
    * Get the selected booking id
      lr_bookingid ?= r_param->value.
    R_PARAM is an importing parameter in the event ON_CLICK from the ALV component.
    Regards.

  • Editable ALVs vs Table Controls

    Hi...
    Can somebody give me the advantages and disadvantages of using editable ALV's  (ALV grid) over table controls? I've got a requirement from my client side wherein I have to replace all table controls with editable ALV's and prior to that, I've to submit an understanding document highlighting the advantages and disadvantages of doing the same.  Also, I've heard that SAP is thinking of replacing all existing table controls in its standard screens with editable ALVs. Can somebody send me a link or some article to substantiate this?
    <removed>. Please do help me out asap if you feel like it.
    Thanks and Regards,
    Rakesh
    Edited by: Thomas Zloch on Mar 14, 2010 8:03 PM - adjusted to forum rules

    > And also, if its true that SAP is thinking on replacing table controls with editable ALV's
    SAP usually don't spend time to rewrite existing programs. Many efforts and risks of regression for a so little gain. Really, that would surprise me
    That would be rather easy to show ALV advantages, as you can do almost "nothing" with table controls. So I would begin with the only table control functions:
    - change order of columns
    - hide columns
    - change column size
    - save the layout above, for the user and for everyone
    - number of fixed columns
    - good performance in the WAN as only screen lines are loaded
    ALV can do all of them. The other ALV functions are : see [SAP library - SAP List Viewer for SAP GUI|http://help.sap.com/saphelp_nw2004s/helpdata/en/8d/e994374c9cd355e10000009b38f8cf/frameset.htm]).
    Another difference is that checks are done immediately for current page of table control (when you press enter or scroll, the PAI is triggered), while they are done for the whole lines with ALV (in fact you could do it, but I guess you don't want to spend much time to develop)

  • How to make a filed mandatory of an editable ALV

    Hi Guru,
    Pls tell me how to make a filed mandatory of an editable ALV so that while a new records is inserted the mandatory fields are filled.

    hi,
    You can make fields as mandatory fields using data changed event.
    validate the entered or blank entries of a column in data changed event and call method 'add_protocol_entry' to raise errors.
    Check the program : BCALV_EDIT_03 & BCALV_EDIT_04for more details.
    Refer to this link....
    about field in alv
    obligatory field editable in ALV

  • Editable ALV with SAVE option

    Hi experts,
    Could you plz provede me an example for an EDITABLE ALV with the SAVE option. i.e. i could edit the ALV output and after the changes i should save the changes i made by clicking SAVE button.
    Thanks in advance
    Regards,
    Ram

    hi,
    check the sample code
    REPORT ZLAXMI_REPORT6 NO STANDARD PAGE HEADING
    MESSAGE-ID ZZ
    LINE-SIZE 132
    LINE-COUNT 65 .
    TABLES: MARA.
    TYPE-POOLS: SLIS.
    TYPES: BEGIN OF T_MARA,
    MATNR TYPE MARA-MATNR, "Material Number
    ERSDA TYPE MARA-ERSDA, "Creation date
    BRGEW TYPE MARA-BRGEW, "Gross weight
    NTGEW TYPE MARA-NTGEW, "Net weight
    MTART TYPE MARA-MTART, "Material type
    MBRSH TYPE MARA-MBRSH, "Industry Sector
    REC_SEL TYPE C , "checkbox
    END OF T_MARA.
    V A R I A B L E S
    DATA: V_REPID LIKE SY-REPID,
    V_FLAG(1) TYPE C.
    CONSTANTS :
    C_X(1) TYPE C VALUE 'X',
    C_PF_STATUS TYPE SLIS_FORMNAME VALUE 'F_SET_PF_STATUS',
    C_FC_DELETE(6) TYPE C VALUE 'DELETE',
    C_FC_MODIFY(6) TYPE C VALUE 'MODIFY',
    C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
    C_USER_COMMAND_MODIFY TYPE SLIS_FORMNAME
    VALUE 'F_USER_COMMAND_MODIFY',
    C_ICON_DELETE TYPE ICON-NAME VALUE 'ICON_DELETE', " Icon,Delete'
    C_ICON_CANCEL TYPE ICON-NAME VALUE 'ICON_CANCEL', " Icon,Cancel'
    C_FC_SAVE(4) TYPE C VALUE 'SAVE'.
    *internal table declarations.
    DATA: IT_MARA TYPE STANDARD TABLE OF T_MARA WITH HEADER LINE,
    IT_MODIFY TYPE STANDARD TABLE OF T_MARA WITH HEADER LINE,
    IT_TEMP TYPE STANDARD TABLE OF MARA WITH HEADER LINE,
    *-ALV Internal Tables.
    *--Field Catalog
    IT_FIELDCAT TYPE STANDARD TABLE OF
    SLIS_FIELDCAT_ALV WITH HEADER LINE,
    *--Layout
    WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
    *--Sort
    IT_SORT TYPE SLIS_T_SORTINFO_ALV,
    WA_SORT TYPE SLIS_SORTINFO_ALV ,
    **-Structure for excluding function codes
    WA_EXTAB TYPE SLIS_EXTAB,
    **-To hold function codes to be excluded in ALV toolbar
    IT_EXTAB TYPE SLIS_T_EXTAB.
    *selection screen.
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR,
    S_ERSDA FOR MARA-ERSDA.
    SELECTION-SCREEN: END OF BLOCK B1.
    *--Radio buttons to select either Display/Delete/Modify
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME
    TITLE TEXT-002.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-003.
    PARAMETERS: P_DISP RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-005.
    PARAMETERS: P_UPD RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN : BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) TEXT-004.
    PARAMETERS: P_DEL RADIOBUTTON GROUP RAD1.
    SELECTION-SCREEN : END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2 .
    AT SELECTION-SCREEN.
    PERFORM VALIDATE_SCREEN.
    *start of selection
    START-OF-SELECTION.
    *clear the internal tables to be used.
    CLEAR: IT_MARA,IT_MARA[],
    V_FLAG.
    *get the data
    PERFORM GET_DATA.
    *end of selection
    END-OF-SELECTION.
    IF IT_MARA[] IS INITIAL.
    MESSAGE I000 WITH
    'No Records found for the given Selection Criteria'(012).
    ELSE.
    *do alv process
    V_REPID = SY-REPID.
    *--Sort the Output Fields
    PERFORM SORT_FIELDS.
    *--Build Field catalog for the Output fields
    PERFORM BUILD_FIELDCAT.
    *--Set the Layout for ALV
    PERFORM SET_LAYOUT.
    IF P_DISP = C_X.
    *--Exclude any Buttons on the Appn tool bar
    perform change_default_pf_status.
    MOVE C_FC_DELETE TO WA_EXTAB-FCODE. " DELETE button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    MOVE C_FC_MODIFY TO WA_EXTAB-FCODE. " MODIFY button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    ELSEIF P_UPD = C_X.
    *--Exclude DELETE Button on the appn tool bar
    MOVE C_FC_DELETE TO WA_EXTAB-FCODE. " DELETE button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    ELSEIF P_DEL = C_X.
    *--Exclude MODIFY button on appn tool bar
    MOVE C_FC_MODIFY TO WA_EXTAB-FCODE. " MODIFY button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    ENDIF.
    *--Exclude SAVE button for all options
    MOVE 'SAVE' TO WA_EXTAB-FCODE. " SAVE button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    *--Display ALV output
    PERFORM LIST_DISPLAY TABLES IT_MARA
    USING C_USER_COMMAND.
    ENDIF.
    *& Form get_data
    text
    --> p1 text
    <-- p2 text
    FORM GET_DATA .
    SELECT MATNR
    ERSDA
    BRGEW
    NTGEW
    MTART
    MBRSH
    FROM MARA
    INTO TABLE IT_MARA
    WHERE MATNR IN S_MATNR
    AND ERSDA IN S_ERSDA.
    IF SY-SUBRC <> 0.
    *no records selected leave processing
    STOP.
    ENDIF.
    SORT IT_MARA.
    ENDFORM. " get_data
    *& Form sort_fields
    text
    --> p1 text
    <-- p2 text
    FORM SORT_FIELDS .
    CLEAR WA_SORT.
    WA_SORT-FIELDNAME = 'MATNR'.
    WA_SORT-SPOS = '1'.
    WA_SORT-UP = 'X'.
    APPEND WA_SORT TO IT_SORT.
    CLEAR WA_SORT.
    WA_SORT-FIELDNAME = 'ERSDA'.
    WA_SORT-SPOS = '2'.
    WA_SORT-UP = 'X'.
    APPEND WA_SORT TO IT_SORT.
    ENDFORM. " sort_fields
    *& Form build_fieldcat
    text
    --> p1 text
    <-- p2 text
    FORM BUILD_FIELDCAT .
    IT_FIELDCAT-COL_POS = '1'.
    IT_FIELDCAT-FIELDNAME = 'MATNR'.
    IT_FIELDCAT-KEY = 'X'.
    IT_FIELDCAT-OUTPUTLEN = '15'.
    IT_FIELDCAT-SELTEXT_L = 'Material number'(022).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-COL_POS = '2'.
    IT_FIELDCAT-FIELDNAME = 'ERSDA'.
    IT_FIELDCAT-KEY = 'X'.
    IT_FIELDCAT-OUTPUTLEN = '10'.
    IT_FIELDCAT-SELTEXT_L = 'Created on'(023).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-COL_POS = '3'.
    IT_FIELDCAT-FIELDNAME = 'BRGEW'.
    IT_FIELDCAT-OUTPUTLEN = '10'.
    IT_FIELDCAT-SELTEXT_L = 'GROSS WEIGHT'(024).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-COL_POS = '4'.
    IT_FIELDCAT-FIELDNAME = 'NTGEW'.
    IT_FIELDCAT-OUTPUTLEN = '15'.
    IT_FIELDCAT-SELTEXT_L = 'NET WEIGHT'(025).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-COL_POS = '5'.
    IT_FIELDCAT-FIELDNAME = 'MTART'.
    IT_FIELDCAT-OUTPUTLEN = '3'.
    IT_FIELDCAT-SELTEXT_L = 'Material type'(026).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-COL_POS = '6'.
    IT_FIELDCAT-FIELDNAME = 'MBRSH'.
    IT_FIELDCAT-OUTPUTLEN = '25'.
    IT_FIELDCAT-SELTEXT_L = 'Industry sector'(027).
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    IT_FIELDCAT-FIELDNAME = 'REC_SEL'.
    IT_FIELDCAT-NO_OUT = C_X.
    APPEND IT_FIELDCAT.
    CLEAR IT_FIELDCAT.
    ENDFORM. " build_fieldcat
    *& Form list_display
    text
    -->P_IT_MARA text
    -->P_C_USER_COMMAND text
    FORM LIST_DISPLAY TABLES P_IT_MARA
    USING P_USER_COMMAND TYPE SLIS_FORMNAME.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = V_REPID
    I_CALLBACK_PF_STATUS_SET = C_PF_STATUS
    I_CALLBACK_USER_COMMAND = P_USER_COMMAND
    IS_LAYOUT = WA_LAYOUT
    IT_FIELDCAT = IT_FIELDCAT[]
    IT_EXCLUDING = IT_EXTAB[]
    IT_SORT = IT_SORT[]
    TABLES
    T_OUTTAB = P_IT_MARA
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " list_display
    *& Form F_SET_PF_STATUS
    Set PF_STATUS STANDARD modifying the standard toolbar
    by excluding some buttons
    -->P_IT_EXTAB -- TABLE OF EXCLUDING FUNCTIONS
    FORM F_SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
    CLEAR : WA_EXTAB,
    IT_EXTAB.
    *--Set the Modified PF status for the ALV.
    SET PF-STATUS 'ALV_STATUS_01' EXCLUDING RT_EXTAB.
    ENDFORM. " SET_PF_STATUS
    *& Form f_user_command
    Handle user action on ALV toolbar
    FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
    RS_SELFIELD TYPE SLIS_SELFIELD.
    RS_SELFIELD-REFRESH = C_X.
    IF R_UCOMM = C_FC_DELETE.
    *--User Selected DELETE button.
    PERFORM DELETE_SELECTED_RECORDS.
    ELSEIF R_UCOMM = C_FC_MODIFY.
    *--If user selects MODIFY button.
    PERFORM CHANGE_RECORDS.
    ENDIF.
    ENDFORM. "F_USER_COMMAND
    *& Form POP_UP_CONFIRMATION
    text
    <--P_ANSWER text
    FORM POP_UP_CONFIRMATION
    CHANGING P_ANSWER TYPE C.
    DATA:
    L_TITLE(14) TYPE C, " Title of pop-up
    L_TXT_QUESTION(52) TYPE C, " Text displayed in pop-up
    L_DISP_CANCEL TYPE C, " Display 'Cancel' button?
    L_BTN1 TYPE ICON-NAME, " Icon on button 1
    L_BTN2 TYPE ICON-NAME. " Icon on button 2
    L_TITLE = 'Delete'(017). " delete
    L_TXT_QUESTION = 'Are you sure to delete?'(018).
    L_BTN1 = C_ICON_DELETE.
    L_BTN2 = C_ICON_CANCEL.
    **-Display pop-up asking user for confirmation
    CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
    TITLEBAR = L_TITLE
    TEXT_QUESTION = L_TXT_QUESTION
    TEXT_BUTTON_1 = 'Yes'
    ICON_BUTTON_1 = L_BTN1
    TEXT_BUTTON_2 = 'No'
    ICON_BUTTON_2 = L_BTN2
    DEFAULT_BUTTON = '2'
    DISPLAY_CANCEL_BUTTON = 'X'
    IMPORTING
    ANSWER = P_ANSWER
    EXCEPTIONS
    TEXT_NOT_FOUND = 1
    OTHERS = 2.
    IF SY-SUBRC <> 0.
    MESSAGE E000 WITH 'Error executing function module:'(019)
    'POPUP_TO_CONFIRM'.
    ENDIF.
    ENDFORM. "pop_up_confirmation
    *& Form set_layout
    text
    --> p1 text
    <-- p2 text
    FORM SET_LAYOUT .
    IF P_DEL = C_X OR P_UPD = C_X.
    *--Allow Input only if user choose 'UPDATE'/ 'DELETE' radio buttons
    WA_LAYOUT-BOX_FIELDNAME = 'REC_SEL'.
    WA_LAYOUT-BOX_TABNAME = 'IT_MARA'.
    ENDIF.
    *--Display Header based on the user selection
    IF P_DISP = C_X.
    WA_LAYOUT-WINDOW_TITLEBAR =
    'Display '(036).
    ELSEIF P_DEL = C_X.
    WA_LAYOUT-WINDOW_TITLEBAR =
    'Delete '(037).
    ELSEIF P_UPD = C_X.
    WA_LAYOUT-WINDOW_TITLEBAR =
    'Change '(038).
    ENDIF.
    ENDFORM. " set_layout
    *& Form change_default_pf_status
    text
    --> p1 text
    <-- p2 text
    FORM CHANGE_DEFAULT_PF_STATUS .
    MOVE C_FC_DELETE TO WA_EXTAB-FCODE. " DELETE button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    MOVE C_FC_MODIFY TO WA_EXTAB-FCODE. " MODIFY button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    ENDFORM. " change_default_pf_status
    *& Form f_user_command
    Handle user action on ALV toolbar
    FORM F_USER_COMMAND_MODIFY USING R_UCOMM LIKE SY-UCOMM "#EC *
    RS_SELFIELD TYPE SLIS_SELFIELD.
    DATA : L_ANSWER TYPE C. "#EC *
    IF R_UCOMM = C_FC_SAVE.
    *user selected save button
    READ TABLE IT_MODIFY WITH KEY REC_SEL = 'X'.
    *check if user selected atleast one line.
    IF SY-SUBRC <> 0.
    MESSAGE I000 WITH 'No record(s) Selected to Modify'(016).
    EXIT.
    ENDIF.
    LOOP AT IT_MODIFY WHERE REC_SEL = 'X'.
    *--Check the entered values are valid or not.
    IF NOT ( it_modify-status = 'A' OR
    it_modify-status = 'C' OR
    it_modify-status = 'E' ).
    *--User Entered invalid value for STATUS field,so Display Error Msg
    CLEAR R_UCOMM.
    MESSAGE e000 WITH 'Invalid value '''(031)
    '' for Status in the Record # '(032)
    sy-tabix.
    ENDIF.
    ENDLOOP.
    CLEAR: IT_TEMP,
    IT_TEMP[].
    LOOP AT IT_MODIFY WHERE REC_SEL = 'X'.
    MOVE-CORRESPONDING IT_MODIFY TO IT_TEMP.
    APPEND IT_TEMP.
    CLEAR IT_TEMP.
    ENDLOOP.
    *--start new code
    DATA : IT_TEMP2 LIKE STANDARD TABLE OF MARA WITH HEADER LINE.
    SELECT * FROM MARA
    INTO TABLE IT_TEMP2
    FOR ALL ENTRIES IN IT_TEMP
    WHERE MATNR = IT_TEMP-MATNR.
    IF SY-SUBRC = 0.
    LOOP AT IT_MODIFY WHERE REC_SEL = 'X'.
    READ TABLE IT_TEMP2 WITH KEY MATNR = IT_MODIFY-MATNR.
    IF SY-SUBRC = 0.
    IT_TEMP2-NTGEW = IT_MODIFY-NTGEW.
    IT_TEMP2-BRGEW = IT_MODIFY-BRGEW.
    MODIFY IT_TEMP2 INDEX SY-TABIX.
    ENDIF.
    ENDLOOP.
    ENDIF.
    *modify mara table with the changed values
    MODIFY MARA FROM TABLE IT_TEMP2 .
    *--end new code
    IF SY-SUBRC = 0.
    COMMIT WORK AND WAIT.
    *--Display message with Success in Updating database
    MESSAGE I000 WITH SY-DBCNT
    ' Record(s) has been Updated'(020).
    CLEAR :
    IT_MARA,
    IT_MARA[].
    *get-data again from database.
    PERFORM GET_DATA.
    RS_SELFIELD-REFRESH = C_X.
    ELSE.
    *--Error occurred
    MESSAGE I000 WITH 'Error occured in Modifying the database'(021).
    ENDIF.
    ENDIF.
    ENDFORM. "f_user_command_modify
    *& Form validate_screen
    text
    --> p1 text
    <-- p2 text
    FORM VALIDATE_SCREEN .
    DATA : LV_MATNR LIKE MARA-MATNR.
    *--validate product
    IF NOT S_MATNR[] IS INITIAL.
    SELECT MATNR
    INTO MARA-MATNR
    FROM MARA
    WHERE MATNR IN S_MATNR.
    ENDSELECT.
    IF SY-SUBRC <> 0.
    *--Error
    MESSAGE E000 WITH 'Invalid Material'(034).
    ENDIF.
    ENDIF.
    ENDFORM. " validate_screen
    *& Form delete_records
    text
    --> p1 text
    <-- p2 text
    FORM DELETE_RECORDS .
    LOOP AT IT_MARA.
    MOVE-CORRESPONDING IT_MARA TO IT_TEMP.
    APPEND IT_TEMP.
    CLEAR IT_TEMP.
    ENDLOOP.
    DELETE MARA FROM TABLE IT_TEMP.
    IF SY-SUBRC = 0.
    *--Successfully selected records Deleted.
    COMMIT WORK AND WAIT.
    *--Display Success Message to the user
    MESSAGE I000 WITH SY-DBCNT
    ' Record(s) deleted Successfully'(010).
    ELSE.
    *--Error occured in deletion
    MESSAGE I000 WITH 'Error occured in Deleting the Record(s)'(011).
    ENDIF.
    CLEAR: IT_MARA,
    IT_MARA[],
    IT_TEMP,
    IT_TEMP[].
    V_FLAG = C_X.
    STOP.
    ENDFORM. " delete_records
    *& Form delete_selected_records
    text
    --> p1 text
    <-- p2 text
    FORM DELETE_SELECTED_RECORDS .
    DATA : L_ANSWER(1) TYPE C.
    READ TABLE IT_MARA WITH KEY REC_SEL = C_X.
    IF SY-SUBRC <> 0.
    MESSAGE I000 WITH 'No record(s) Selected to Delete'(013).
    EXIT.
    ELSE.
    *--Ask for delete confirmation
    PERFORM POP_UP_CONFIRMATION
    CHANGING L_ANSWER.
    IF L_ANSWER = '1'. " 'Yes'
    CLEAR: IT_TEMP,
    IT_TEMP[].
    LOOP AT IT_MARA WHERE REC_SEL = 'X'.
    MOVE-CORRESPONDING IT_MARA TO IT_TEMP.
    APPEND IT_TEMP.
    CLEAR IT_TEMP.
    ENDLOOP.
    DELETE MARA FROM TABLE IT_TEMP.
    IF SY-SUBRC = 0.
    *--Successfully selected records Deleted.
    COMMIT WORK AND WAIT.
    *--Display completed work information to the user
    MESSAGE I000 WITH SY-DBCNT
    ' Record(s) deleted Successfully'(014).
    *--Clear the Internal tables
    CLEAR: IT_MARA,
    IT_MARA[].
    *--Reselects entries from Database again & display in ALV
    PERFORM GET_DATA.
    ELSE.
    *--Error occured
    MESSAGE I000 WITH
    'Error occured in Deleting the Record(s)'(015).
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM. " delete_selected_records
    *& Form change_records
    text
    --> p1 text
    <-- p2 text
    FORM CHANGE_RECORDS .
    READ TABLE IT_MARA WITH KEY REC_SEL = 'X'.
    *--check user selected at least 1 record to MODIFY or not
    IF SY-SUBRC <> 0.
    MESSAGE I000 WITH 'No record(s) Selected to Modify'(016).
    EXIT.
    ELSE.
    CLEAR : IT_MODIFY,
    IT_MODIFY[].
    LOOP AT IT_MARA WHERE REC_SEL = 'X'.
    IT_MODIFY = IT_MARA.
    APPEND IT_MODIFY.
    CLEAR IT_MODIFY.
    ENDLOOP.
    *--Change PF status for this new ALV list.
    PERFORM CHANGE_PF_STATUS_AGAIN.
    *--Change Field Catalog to make INPUT enabled.
    READ TABLE IT_FIELDCAT WITH KEY FIELDNAME = 'NTGEW'.
    IT_FIELDCAT-INPUT = C_X.
    MODIFY IT_FIELDCAT INDEX SY-TABIX.
    *--Call ALV LIST DISPLAY with this new values.
    PERFORM LIST_DISPLAY TABLES IT_MODIFY
    USING C_USER_COMMAND_MODIFY.
    ENDIF.
    ENDFORM. " change_records
    *& Form change_pf_status_again
    text
    --> p1 text
    <-- p2 text
    FORM CHANGE_PF_STATUS_AGAIN .
    MOVE C_FC_DELETE TO WA_EXTAB-FCODE. " DELETE button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    MOVE C_FC_MODIFY TO WA_EXTAB-FCODE. " MODIFY button on ALV
    APPEND WA_EXTAB TO IT_EXTAB.
    ENDFORM. " change_pf_status_again

Maybe you are looking for