Adding/delete/copy a row in table in web dynpro

Hi Expers,
We  have  arequirement where on screen of view there is a "ADD" button,"DELETE" button and a ":COPY" button. once the user click on "ADD" button , a new row must add in the existing table,once the user select a  row from table and click on "DELETE" button , that row must delete .once the user click "COPY" button a new row must added with the data of the selected row.
Can you plz help me how to do this.
Thanks
Mahesh

Hi Mahesh,
-> To add a new row to the table, you need to create and bind  a new element to the node.
DATA: lo_nd_test TYPE REF TO if_wd_context_node,
        lo_el_test TYPE REF TO if_wd_context_element,
ls_test TYPE wd_this->element_test.
  lo_nd_test= wd_context->get_child_node( name = wd_this->wdctx_test ).
  lo_el_test= lo_nd_test->create_element( ).
  lo_nd_test->bind_element( new_item = lo_el_test set_initial_elements = abap_false ).
  lo_nd_test->set_lead_selection( lo_el_test ).   " to select the new row added
-> To delete the exisiting row, get the selected row element and call remove_element method.
lo_el_test= lo_nd_test->get_lead_selection( ).
lo_nd_test->remove_element( lo_el_test ).
-> To copy the existing row, get the values of the selected row using get_static_attributes( ) method and set the values to the new row added.
  lo_nd_test= wd_context->get_child_node( name = wd_this->wdctx_test ).
  lo_el_test= lo_nd_test->get_lead_selection( ).
  check lo_el_test is not initial.
  lo_el_test->get_Static_attributes( importing static_attributes = ls_test ).
  clear  lo_el_test.
  lo_el_test= lo_nd_test->create_element( ).
  lo_nd_test->bind_element( new_item = lo_el_test set_initial_elements = abap_false ).
  lo_el_test->set_Static_attributes(EXPORTING static_attributes = ls_test ).
Regards,
Manogna

Similar Messages

  • Drop down in allready displaying table in web dynpro

    Hi Experts,
    We have  a requirement where we are displaying the data of the table KNA1 in a table form (Web dynpro) which is editable.for the field NAME1 there must be drop down box which contain some values , so that for any row user can select one of the value and then when press SAVE button the table KNA1 should be updated with the new value of NAME1.
    Can you please let us know how to do this.
    Thanks
    Mahesh

    >Can you please let us know how to do this.
    Which part of what you describe and what exactly are you having problems with.  You can of course change the cell editor of your column to DDLB.  Is that where you are having problems.  Or are you trying to decied between DDLBByKey and DDLBByIndex.  For that I would suggest you read the following:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/bb/69b441b0133531e10000000a155106/frameset.htm

  • Database table in Web dynpro

    Hi All,
    I am trying to use a database table in Web Dynpro. For this, o already created and deployed a dictionary project and one database table in that project. In my web dynpro project when i am accessing this table columnname it works fine, but its not allowing to insert the data.It is giving following error:
    The SQL statement "INSERT INTO "TMP_2" ("NAME") VALUES ( "ASDFGH") " contains the semantics error[s]: - 1:36 - the column >>ASDFGH<< is undefined in the current scope  where NAME is my column name.
    Also when i change some column name or add one more column to my table and then deploy it. After this, when i run my web dynpro project it doesn't show the updated column name and column count.
    Please help.
    Regards,
    Chirag Aneja

    Hi,
    Try using prepare statement as follows
    PreparedStatement pstmt = con.prepareStatement("INSERT INTO TMP_2(NAME) VALUES ( ?) );
    pstmt.setString(1, "ASDF");
    Regards
    Ayyapparaj

  • How to create the Dynamic UI element table in web dynpro in abap

    Hi All,
    Does anybody have reference note or teach me how to create dynamic UI element table in web dynpro in abap ?
    Regards,
    Luke

    HI LukeWong ,
    for creating any UI dynamically you shoul use their runtime class that always start with cl_wd_* ui element name*
    so for the Table UI element the runtime class is CL_WD_TABLE
    now reffer the below code for creating the Table UI dynamically
    METHOD wddomodifyview.
    DATA lr_table TYPE REF TO cl_wd_table.
    DATA lr_flow_data TYPE REF TO cl_wd_flow_data.
    DATA lr_container TYPE REF TO cl_wd_uielement_container.
    DATA lr_column_name TYPE REF TO cl_wd_table_column.
    DATA lr_text_view TYPE REF TO cl_wd_text_view.
    DATA lr_table_header TYPE REF TO cl_wd_caption.
    DATA lr_column_name_header TYPE REF TO cl_wd_caption.
    IF first_time EQ abap_true.
    lr_container ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
    lr_table = cl_wd_table=>new_table(
    id = 'TBL_TABLE'
    bind_data_source = 'TABLE'
    design = cl_wd_table=>e_design-alternating
    visible_row_count = 3
    lr_flow_data = cl_wd_flow_data=>new_flow_data( element =
    lr_table ).
    lr_container->add_child( lr_table ).
    lr_column_name = cl_wd_table_column=>new_table_column(
    id = 'TBL_EXAMPLE_NAME'
    lr_table_header ?= cl_wd_caption=>new_caption( text = 'Table UI elem
    ent - example').
    lr_table->add_column( the_column = lr_column_name ).
    lr_table->set_header( lr_table_header ).
    lr_text_view = cl_wd_text_view=>new_text_view(
    id = 'TXV_NAME'
    bind_text = 'TABLE.NAME'
    lr_column_name_header ?= cl_wd_caption=>new_caption( text = 'Name').
    lr_column_name->set_table_cell_editor( the_table_cell_editor = lr_text_view).
    lr_column_name->set_header( lr_column_name_header ).
    ENDIF.
    ENDMETHOD.
    Regards
    Chinnaiya P
    Edited by: chinnaiya pandiyan on Sep 17, 2010 12:01 PM

  • How to display an status Icon in Table UI web dynpro ABAP?

    Hi Experts ,
    How to display an status Icon ( Traffic light ) in Table UI web dynpro ABAP? can somebody tell with a coding example. also I need to update status on condition so whats the best way?
    Thanks in advance.
    Regards,

    Hi Laeeq,
    click on table cntrol n place it on the screen..
    now click on the icon button n place it in the table control area.. a column of icons get created. name it (say) ICON.
    in the PBO..
    loop at internal table and call module in the loop (say) .
    MODULE ICON_DISP.
    now in the module try the foll code :
    module icon_display output.
    check some condition and assign the icon to the variable icon_r
      icon_R = 'ICON_GREEN_LIGHT'.
      CALL FUNCTION 'ICON_CREATE'
        EXPORTING
          name                        = ICON_R
        TEXT                        = ' '
        INFO                        = ' '
        ADD_STDINF                  = 'X'
       IMPORTING
         RESULT                      = ICON
      EXCEPTIONS
        ICON_NOT_FOUND              = 1
        OUTPUTFIELD_TOO_SHORT       = 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.
      endmodule.
    where icon(35) and icon_r(35) type c .
    hope this helps u..
    Regards
    Aparna

  • Binding arraylist, list, or multi-dimensional array to table in web dynpro

    Greetings,
    I like to ask if anyone knows how to bind data from an arraylist, list, or multi-dimensional array list to a table in web dynpro, your help is much appreciated.
    Thanks in advance.
    Cory

    Is there a way to create or cast a multi-dimensional
    array from a Collection or Vector ?
    ArrayList list = new ArrayList();
    list.add( new Object[4] );
    Object[] array2 = list.toArray(); // is only
    single dimension !
    Of course it is a single dimension array.
    Check the definition of the toArray() function, and the specification of arrays in general.
    toArray() returns a one dimensional array.
    In your case it will return an array of arrays. So array2[0] will be an array of 4 objects.
    That just happens to be a 2 dimensional array though you may (I haven't checked it) need some parentheses to call the elements.
    Try Object o = array2[0][1]; and if that doesn't work Object o = (array2[0])[1];

  • Declare global table in web dynpro

    Hi,
    How can I declare a global table in web dynpro?

    Hi,
    If you want to declare an global internal table,
    You can declare it in componentcontroller's 'ATTRIBUTES'  Tab,
    This internal table you can access in componentcontroller's method using 'wd_this' reference.
    for example: "wd_this->itab".
    If you want to access the same in any view's methods then you can do it using 'ig_componentcontroller' reference.
    for example: "ig_componentcontroller->itab".

  • Update cluster table from Web dynpro

    Hi
    I am trying to export data to a cluster table from web dynpro using this statement:
    EXPORT zhr_sanct_st100 FROM zhr_sanct_st100 TO DATABASE zhr_clrm(ep) ID zhr_clrm-srtfd.
    same piece of code work well if I include it in a report program through se38, but If I use it in Web dynpro, it doesnt update the cluster table and there is no error shown.
    please reply ASAP.
    Vishal kapoor

    Thanks for your immediate reply. it worked this way:
    IMPORT structure name TO structure name
      FROM DATABASE cluster table name
      TO wa_zhr_clrm
      ID zhr_clrm-srtfd.
    initially i missed to insert a work area wa_zhr_clrm, which has all the key fields of the cluster table.
    Regards
    Vishal Kapoor

  • Problem with deleting a new row in table

    Hi
    I'm using JDev 11.1.1.2.0
    Please someone tell me if he/she experience the same issue:
    - I have an simple entity with PrimaryKey other than RowID. I have a ViewObject on top of the Entity.
    - From this view I create Editable table and add createInsert and Delete buttons.
    This is one of the most common scenarios.
    Now when I click createInsert a new blank row is added to the table. I enter it's primary key (because is mandatory) and move selection to some other row (let say X).
    When I go back and select my new Row and press Delete -> it is not deleted but the row X is deleted.
    This is because the table is not refreshed and it cant select the new row.
    How can I deal with this problem?
    Thanks
    Angel

    I tried with adding my selectionListener method like this:
            Object next = selectionEvent.getAddedSet().iterator().next();
            Object prev = selectionEvent.getRemovedSet().iterator().next();
            System.out.println(prev + " " + next);      
            DCBindingContainer bc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
            DCIteratorBinding iter = (DCIteratorBinding)bc.get("TestDopSyotvIterator");
            FacesCtrlHierBinding object1 = (FacesCtrlHierBinding)bc.get("TestDopSyotv");
            FacesCtrlHierBinding.FacesModel collectionModel = (FacesCtrlHierBinding.FacesModel)object1.getCollectionModel();
            collectionModel.makeCurrent(selectionEvent);I add new row, enter data and change selection. Then the system.out prints the right keys of the rows.
    But when I go back to the new added row, the system.out prints "null" for the "next" value (that means the rowKey was lost).
    Any ideas how to fix this?

  • Please suggest solution for deletion of  all rows in table at a time

    Suggest me pl/sql code for a push button in form to ‘delete entire rows’ in a table.
    BEGIN
    LOOP
    DELETE
    FROM mytable(say table name)
    WHERE ROWNUM < 20000;
    EXIT WHEN SQL%ROWCOUNT = 0;
    COMMIT;
    END LOOP;
    END;
    I wrote this code but not deleted .
    Execute immediate ‘truncate table <tablename>’; this code too not working.
    What my need is ‘ I don’t want to put entire block fields in the form, just I want to put a push button and when I pressed it must delete all rows in a particular table.
    That I want to delete all rows form builder runtime not by entering sql.8.0 and then there delete the rows.
    thanks in advance
    prasanth a.s.

    to delete all records in a table, if you want to get good performance, then use:
    FORMS_DDL('TRUNCATE TABLE your_table_name');
    It is better than use DELETE FROM TABLE_NAME. But if you have condition in where clause, then you have to use DELETE FROM ...

  • How to delete multiple rows in a table of web dynpro for abap?

    hi,
    Experts ,
    I want to delete the selected multiple records from a table from that i have inserted a check box ui element in a first column of a table what ever checkbox ix checked i want to delete those selected records from table .
    please suggest me on
    Thanks in advance

    Hi,
    If you have DELETE button, in that action you write this code -
    DATA lr_node type ref to if_wd_context_node.
    lt_set  = lr_node->get_elements( ).
    loop at lt_set into ls_set.
    ls_set->get_staitc_attributes
    importing
    static_attirbutes = ls_row.
    if ls_row-check = 'X'.
    lr_node->remove_element( ).
    endif.
    endloop.
    Check the methods and thier types.
    Regards,
    Lekha.

  • How to use EVS with different data in each row, in a Java Web Dynpro table?

    Hi all,
    I am using EVS in a column of java web dynpro table.
    Let's say the name, and context attribute, of this column is column1.
    It's filled dynamically using an RFC, that uses as input parameter the value of another column, and related context attribute, from the same table (Let's call it column2).  Obviously, from the same row. So, in other words: the values of the EVS in column1 of row1, are dependent of the value of column2 of row1. And the values of the EVS in column1 of row2, are dependent of the value of column2 of row2. And so on... Hope i could explain myself ok.
    The code I'm using works great for filling the EVS dynamically:
    IWDAttributeInfo attrInfo = wdContext.nodeDetail().getNodeInfo().getAttribute(nodeElement.COLUMN1);
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    value.clear();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for (int i = 0; i < wdContext.nodeRFCresult().size(); i++){
              value.put(wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgort()
                 , wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgobe());
    In this code, nodeElement is the context row of the table that is passed dynamically to the method when the value of colum2 is changed.
    HOWEVER, the problem I'm having is that after executing this code, EACH NEW ROW that is added to the table has by default the same values as the first row, in the column1 EVS. And, for example, if I refresh the values of the column1 EVS in row 2, all EVS values in the other rows are also refreshed with the same values as the ones of EVS in row 2.
    How can I make sure each row EVS has its own set of independent values, so they don't mess with each other?
    Hope you guys can help me. And please, let me know if I didn't explain myself correctly!
    Thanks!

    I just did as you said (I think), but it's still having the same behaviour as before (same data for all EVS in the table).
    Here´s what I did:
    I
    In node "Detail" (cardinality 0...n, singleton set to true), which is binded to the table, I created a child node named "Column1Values" wth cardinality 1...1 and singleton set to false.
    "Column1Values" node has an attribute called "column1", of type String.
    I did the binding between attribute "column1" and the column1 inputfield celleditor in the table.
    I created an event called Column2Changed and binded it to the column2 celleditor of the table. I added a parameter called nodeElement of type IPrivateCompView.IDetailElement to this event, and mapped it to the column2 editor in the table so that I can dynamically get the nodeElement that is being affected.
    I added the following code to the onActionColumn2Changed(wdEvent, nodeElement) method that gets created in the view:
    IWDAttributeInfo attrInfo = nodeElement.nodeColumn1Values().getNodeInfo().getAttribute("column1");
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for(int i =0; i < wdContext.nodeRFCresults().size(); i++){
              value.put(wdContext.nodeRFCresults().getRFCresultsElementAt(i).getId(),
                                  wdContext.nodeRFCresults().getRFCresultsElementAt(i).getDesc());
    And with this, I still get the original problem... When the EVS of one row is updated, ALL other EVS of the table get also updated with the same values.
    What am I missing? Sorry Govardan, I bet I'm not seeing something really obvious... hopefully you can point me in the right direction.
    Thanks!

  • Deletion of data of R/3 table using Web Dynpro

    Hi Experts,
    I have to delete some records from R/3 table CATSDB using Web Dynpro form. I am using BAPI_CATIMESHEETMGR_DELETE for this purpose. Can you please let me know the steps to accomplish this exercise.
    I have displayed the records of CATSDB using one custom made BAPI. Using this BAPI, I am able to display the data. I have created one button called "Delete Data" button on the form. I have called BAPIs using following code:
    public void onActionDeleteData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionDeleteData(ServerEvent)
        wdThis.wdGetTimesheetCompController().executeBapi_Catimesheetmgr_Delete_Input();
        wdThis.wdGetTimesheetCompController().executeBapi_Transaction_Commit_Input();
    //@@end
    However, when I am selecting the record and trying to delete the record, record is not getting deleted. Can you please help me in resolving the issues? What is going wrong?
    Regards,
    Brian

    Hi Ashwani,
    I have checked the BAPI - BAPI_CATIMESHEETMGR_DELETE. I am unable to delete the record using even R/3 screen. For deleting the record, I have to provide following four parameters:
    PROFILE, TESTRUN, RELEASE_DATA and AGENT.
    I don't know what should be the value of TESTRUN, RELEASE_DATA and AGENT. I know only the value of PROFILE. From ABAPers, I have come to know that in order to delete the reccord I must provide the value of COUNTER. However, the BAPI,  BAPI_CATIMESHEETMGR_DELETE is not asking me to enter the COUNTER.
    Can you please let me know how to delete the record from BAPI using R/3 screen. After that I will try to delete record using Web Dynpro application.
    Regards,
    Brian

  • ReadOnly for one row in a table in Web Dynpro

    Hallo,
    is there a possibility to set rows in a table to readonly if there is a condition to do that.
    The rest must be in normal lookout.
    Kind regards
    Gunter

    Hi,
    Refer to the flwg thread,
    Field in web dynpro table for one row to be read only
    Hope it helps.
    Regards
    Srinivasan T

  • Copy from clipboard and paste in Web Dynpro table

    Hi
    I have a client requirement where the client wants to copy the table from some already existing application and paste the data  directly in web dynpro java table.  It is similiar to copy the data from clipboard and paste it directly in web dynpro table.
    I would like to know is it feasible. If yes, please provide some links or guide me on achieving the same.
    Thanks
    Harsimran

    Hi
    I think one way you can do it,
      1 . try to export the table dato to excel sheet.(copy and paste to excel)
       2. Importing the excel data to WD table.
      for more details about reading excel data, there is many blog on sdn just check it.
    Hope will help you
    Thanks

Maybe you are looking for