Adding a new row in the end!... Urgent...

Hi,
I have a requirement where i have a classic table with some of it's columns having default values. While using "Add Another Row", since these default values were not getting set, I used setAutoInsertion(false) on the tablebean, and used createRow and insertRow for adding new rows, but this new row gets added before my existing row. How to make it add after my existing row? I tried using vo.last()
as suggested in some of the posts, but to no use.
Thanks in Advance

It is the framework behavior that when you add another row, the row is added as the last row in the current range. The existing last row in the current range is pushed into the next range.
--Shiv                                                                                                                                                                                                                                                                                                                                                                                                               

Similar Messages

  • Need to add a new row at the end of the table

    Experts,
    working jdev 11.1.1.3.0
    i am adding row programetically, my requirement need to add the row at after last row.
    i tried different ways.
    Row newLastRow = getPWBBidLaneVO().last();
    int lastRowIndex = getPWBBidLaneVO().getRangeIndexOf(newLastRow);
    getPWBBidLaneVO().insertRowAtRangeIndex(lastRowIndex - 1,
    laneRow);
    this is giving --- java.lang.ArrayIndexOutOfBoundsException: 0
    and
    http://kohlivikram.blogspot.com/2008/10/add-new-row-in-adf-table-on-button.html --- its giving index out of bound because vo.getRangeSize() is 25. We set this value at vo for performance improment suggestions.
    is there a way to add a new row at the end of the table?

    Add this to the view row impl class
           public void insertRow(Row row) {
               //go to the end of Rowset if it has rows
               Row lastRow = this.last();
               if (lastRow !=null){
                    //insert new row at the end and make it current
                   int indx = this.getRangeIndexOf(lastRow)+1;
                   this.insertRowAtRangeIndex(indx,row);
                   this.setCurrentRow(row);
               }else { // empty Rowset
               super.insertRow(row);
               }

  • Problem while adding a new row to the table.

    hello,
    In my ADF form i have a table. and when i click on CreateInsert it add a new to the table but at the first. i want all the new rows to be added at the end of the table in a sequence. how can i do this?....
    Thanks and Regards,
    Rakshitha

    Hi,
    Try this:
    DCIteratorBinding dciter;
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    dciter = (DCIteratorBinding) bindings.get("findAllTestAndryIter");
    ViewObjectImpl vo = dciter.getViewObject();
    if (vo != null)
    Row row = vo.createRow();
    int rangeSize = vo.getRangeSize();
    int rowsInRange = vo.getAllRowsInRange().length;
    int insertPos = rowsInRange < rangeSize? rowsInRange: rangeSize - 1;
    vo.insertRowAtRangeIndex(insertPos, row);
    vo.setCurrentRow(row);
    }

  • Adding a new field to the search help exit

    Hi friends,
    adding a new field to the search help exit. How does it work ?
    Thanks in advace
    Ilhan

    The search help exit allows you to modify functionality of search help. If you add a new field to the
    parameter list that is not contained on the selection method you can manually populate it within the search
    help exit.
    This  would be performed within the u2018STEP DISPu2019 section. Once within this section all search help
    data has been retrieved and is stored in table RECORD_TAB (record_tab-string) as one long string value.
    Therefore you need to read table SHLP in-order to locate position of value within string.
    Example:
    To find position of personnel number (PERNR) within elemenory search
    help M_PREMN you would use the following code:
    Loop at record_tab.
         read table shlp-fielddescr into wa_shlp
                                       with key tabname   = 'M_PREMN'
                                                fieldname = 'PERNR'.
    You could then use this information in the following way, for
    example, to find a persons organisation unit:
          select  orgeh endda
            up to 1 rows
            from pa0001
            into (ld_orgeh,ld_endda)
           where pernr eq record_tab-string+wa_shlp-offset(8)
                                                      u201Cpernr length is 8
           order by endda descending.
          endselect.
          select single orgtx
            from t527x
            into ld_orgtxt
           where orgeh eq ld_orgeh and
                 sprsl eq sy-langu and
               ( endda ge sy-datum and
                 begda le sy-datum ).
    If you have added a new field to the end of the parameters list
    the next step is to populate it by adding this data to the end of
    the record_tab string:
      concatenate record_tab-string ld_orgtxt into record_tab-string.
      modify record_tab.
    endloop.

  • Adding a new field to the Address Data for a business partner

    Hi Experts,
    I am trying to add a new custom field to the address data (all structures and tables) that is linked to a business partner on SAP CRM via EEWB. Structure is the address structure wthin BUS_EI_EXTERN. Table is BUT020. I have been told that it is not possible as there is no Business Object that allows this. When doing an EEWB, the only business object is BUPA, which when selected, adds the new custom field to BUT000. I would like the field to be added to BUT020 (Address Table). This leads me to believe that there is no standard way of doing this, which ultimatley means that it would need to be done manually. Please help me with this predicament.
    Regards
    Yusuf

    The search help exit allows you to modify functionality of search help. If you add a new field to the
    parameter list that is not contained on the selection method you can manually populate it within the search
    help exit.
    This  would be performed within the u2018STEP DISPu2019 section. Once within this section all search help
    data has been retrieved and is stored in table RECORD_TAB (record_tab-string) as one long string value.
    Therefore you need to read table SHLP in-order to locate position of value within string.
    Example:
    To find position of personnel number (PERNR) within elemenory search
    help M_PREMN you would use the following code:
    Loop at record_tab.
         read table shlp-fielddescr into wa_shlp
                                       with key tabname   = 'M_PREMN'
                                                fieldname = 'PERNR'.
    You could then use this information in the following way, for
    example, to find a persons organisation unit:
          select  orgeh endda
            up to 1 rows
            from pa0001
            into (ld_orgeh,ld_endda)
           where pernr eq record_tab-string+wa_shlp-offset(8)
                                                      u201Cpernr length is 8
           order by endda descending.
          endselect.
          select single orgtx
            from t527x
            into ld_orgtxt
           where orgeh eq ld_orgeh and
                 sprsl eq sy-langu and
               ( endda ge sy-datum and
                 begda le sy-datum ).
    If you have added a new field to the end of the parameters list
    the next step is to populate it by adding this data to the end of
    the record_tab string:
      concatenate record_tab-string ld_orgtxt into record_tab-string.
      modify record_tab.
    endloop.

  • CreateInsert puts the new row at the top or second to the last

    Dear All,
    Just one question, is it possible to configure that when you create a new row in an
    editable table, it will be place at the end of the rows of the table?
    Use Case:
    I have a view object coming from the HR schema's Departments table.
    I then dropped this page as an editable table and enabled row selection.
    To add new row, I drag the create insert option as a button.
    <af:form id="f1">
    <af:panelStretchLayout id="psl1">
      <f:facet name="bottom">
         <af:panelGroupLayout id="pgl1">
           <af:commandButton text="Add Row" id="cb1"
                                  actionListener="#{bindings.CreateInsert.execute}"/>
           <af:commandButton actionListener="#{bindings.Commit.execute}"
                                  text="Commit" id="cb2"/>
           <af:commandButton actionListener="#{bindings.Rollback.execute}"
                                  text="Undo" immediate="true" id="cb3">
              <af:resetActionListener/>
           </af:commandButton>
         </af:panelGroupLayout>
      </f:facet>
      <f:facet name="center">
         <af:table value="#{bindings.DepartmentsView1.collectionModel}"
                     var="row" rows="#{bindings.DepartmentsView1.rangeSize}"
                     emptyText="#{bindings.DepartmentsView1.viewable ? 'No data to display.' : 'Access Denied.'}"
                     fetchSize="#{bindings.DepartmentsView1.rangeSize}"
                     rowBandingInterval="0"
                     selectedRowKeys="#{bindings.DepartmentsView1.collectionModel.selectedRow}"
                     selectionListener="#{bindings.DepartmentsView1.collectionModel.makeCurrent}"
                     rowSelection="single" id="t1" partialTriggers="::cb1">
           <af:column sortProperty="DepartmentId" sortable="false"
                         headerText="#{bindings.DepartmentsView1.hints.DepartmentId.label}"
                         id="c4">
              <af:inputText value="#{row.bindings.DepartmentId.inputValue}"
                               label="#{bindings.DepartmentsView1.hints.DepartmentId.label}"
                               required="#{bindings.DepartmentsView1.hints.DepartmentId.mandatory}"
                               columns="#{bindings.DepartmentsView1.hints.DepartmentId.displayWidth}"
                               maximumLength="#{bindings.DepartmentsView1.hints.DepartmentId.precision}"
                               shortDesc="#{bindings.DepartmentsView1.hints.DepartmentId.tooltip}"
                               id="it4">
              </af:inputText>
           </af:column>
           <af:column sortProperty="LocationId" sortable="false"
                         headerText="#{bindings.DepartmentsView1.hints.LocationId.label}"
                         id="c1">
              <af:inputText value="#{row.bindings.LocationId.inputValue}"
                               label="#{bindings.DepartmentsView1.hints.LocationId.label}"
                               required="#{bindings.DepartmentsView1.hints.LocationId.mandatory}"
                               columns="#{bindings.DepartmentsView1.hints.LocationId.displayWidth}"
                               maximumLength="#{bindings.DepartmentsView1.hints.LocationId.precision}"
                               shortDesc="#{bindings.DepartmentsView1.hints.LocationId.tooltip}"
                               id="it2">
              </af:inputText>
           </af:column>
         </af:table>
      </f:facet>
      <f:facet name="start"/>
      <f:facet name="end"/>
      <f:facet name="top"/>
    </af:panelStretchLayout>But I notice that when I clicked the createinsert button, the new row is appended at the top of the table.
    I then tried to click the last row, but when I click the CreateInsert, it is appended before the last row.
    How can I configure this so that it will show at the last row?
    Thanks.
    JDEV 11G PS 3

    Ramandeep Nanda wrote:
    * Insert new Rows at the end of RowSet.
    * @param row
    @Override
    public void insertRow(Row row) {
    //go to the end of Rowset if it has rows
    Row lastRow = this.last();
    if (lastRow != null) {
    //insert new row at the end and make it current
    int indx = this.getRangeIndexOf(lastRow) + 1;
    this.insertRowAtRangeIndex(indx, row);
    this.setCurrentRow(row);
    } else { // empty Rowset
    super.insertRow(row);
    }     The row will be added at the end. You actually override this method in your voImpl.Works like a charm..
    Thanks Ramandeep..learned something new today...

  • Adding new row to the reports list page

    How can I add a new report row in the reports list of the reports tab.
    Ex: a new row to the report "users by Date of Join report" is to be added
    How can we add Please help me out in this

    I am facing the same problem!
    camickr wrote:
    Try adding an empty row containing a null value for the String instead of the empty String.camickr, it will not help, the DefaultRowSorter in the "*+compare(int model1, int model2)+*" method return -1 if the first value is null and 1 if the sacond value is null. and incase of DESCENDING it mult by -1.
                    // Treat nulls as < then non-null
                    if (v1 == null) {
                        if (v2 == null) {
                            result = 0;
                        } else {
                            result = -1;
                    } else if (v2 == null) {
                        result = 1;
                    } else {
                        result = sortComparators[counter].compare(v1, v2);
                    if (sortOrder == SortOrder.DESCENDING) {
                        result *= -1;
                    }And this is the real problem!
    The empty line is sorted as the smallest value and incase of DESCENDING it will be the first line (because of the mult by -1).
    We could have overide it and incase of the empty row(usualy the last row) do not mult by -1 in DESCENDING mode.
    But the problem is that the "+*compare*+" method and it's caller "*+Row+*" inner class are private :-(
    It is not wise to do it but we can do like kmp83 wrote:
    kmp83  wrote:
    copy/duplicate "private" code from DefaultRowSorter into my extended class.Anyone have another suggestion?

  • How do you set the number of rows in a spreadsheet, so that even when you drag data in, in writes over those rows instead of adding a new row?

    How do you set the number of rows you want in a spreadsheet, so that even when you drag data in, in writes over those rows instead of adding a new row?

    After the discovery reported above, I filed this report :
    Bug ID# 10073038
    Summary:
    When Numbers is used on a system with decimal comma a csv file may be good AND wrong
    Steps to Reproduce:
    With Numbers v2, you introduced an interesting enhancement.
    In system using the comma as decimal separator, Numbers requires csv files using the semi-colon as values delimiter.
    In fact it’s true if we OPEN the document dragging its icon on Numbers one or thru the open dialog.
    This said.
    (1) Drag and drop a csv built with the 'semi-colon' standard on a table or on a sheet
    (2) Drag and drop a csv built with the 'comma' standard on a table or on a sheet
    Expected Results:
    Every normally constituted user assume that in
    case (1) he will get a perfectly built table
    case (2) he will get every cells of a row in a single cell
    Actual Results:
    In fact you forgot the drag and drop way of use and in
    case (1) every values separated by semi-colon are inserted in a single cell
    case (2) values separated by comma are correctly spread in a table
    isn’t it ridiculous ?
    Regression:
    Except looking in  QuickView to see which is exactly the structure of the file to decide the way we will insert it in a Numbers document, we may use an applescript fair enough to replace the semi-colons by TAB characters
    or
    to replace the commas by TABs and the decimal periods by commas
    Notes:
    While I am on this subject, I wish to make two proposals:
    (1)  It would be fine to format the date according to the ISO format year-mm-dd when you export a Numbers doc to csv.
    Doing that, dates would be imported correctly in every countries.
    At this time, on an English system, you export as mm/dd/year.
    If the doc is open on a system using the format dd/mm/year, the results will be odd.
    On a system using the format dd/mm/year, you export this way and so, if the doc is open on a system using the format mm/dd/year the results are odd too.
    As every localized versions accept the ISO format (at least on entry), using it in the export scheme would give a correct behavior everywhere.
    (2) It would be fine to add the format Tab Separated Values in the Export pane.
    TSV + ISO date format would give documents opening flawlessly everywhere.
    Yvan KOENIG (VALLAURIS, France) dimanche 4 septembre 2011 21:27:41
    iMac 21”5, i7, 2.8 GHz, 4 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.0
    My iDisk is : <http://public.me.com/koenigyvan>
    Please : Search for questions similar to your own before submitting them to the community

  • How to insert a new row in the middle of an set of rows

    Hi
    How to insert a new  row in the middle of an set of rows ? and How to Reset the line id after the new row added ?
    Regards,
    Sudhir B.

    Hai,
    just try this,
    Instead of using omatrix.Addrow(1,-1) use like
    omatrix.AddRow( RowCount , Position)
    RowCount
    The number of rows to add (default is 1)
    Position
    The position of the new rows (0-based; default is -1, meaning append row to the end)
    After adding rows in matrix For, sno.
    for i=1 to omatrix.visualrowcount
    otext=omatrix.getcellspecific("columnid",i)  '--where columnid is the unique id of the sno column
    otext.value=i
    next i
    Hope this helps you.
    Thanks & Regards,
    Parvatha Solai.N

  • Add new row in the same page

    Can anyone give me the code for adding the new row in the same page itself.If we click on add button a new row should come in the table.
    Thanks in advance

    Hi,
    invoke a method in AM on button click
    public void addrows()
    AddressesVOImpl vo1 = getAAddressesVO1();
    AddressesVORowImpl row1 = (AddressesVORowImpl)vo1.createRow();
    vo1.insertRowAtRangeIndex(0,row1);
    vo1.setCurrentRow(row1);
    Thanks,
    Gaurav

  • Problem with adding a new row in JTable

    Hi,
    I've created a JTable using DefaultTableModel with DefaultTableModel(Object[][] obj,Object[] col) constructor.I've written actionListener for a JButton which should add new row to the tablemodel.Now, the listener adds the row to the model.But its throwing an ArrayOutofBoundsException and the added row is not visible unless I click on any column of the table.
    Kindly help me to resolve this problem
    TIA
    Regards
    Gopi

    Thanks a lot for the reply. Here is the complete code
    TableImpl.java
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import java.util.Vector;
    public class TableImpl extends JFrame {
    DefaultTableModel dataModel;     // TableModel Variable
    /* Constructor to add table and button to the frame     */
    TableImpl() {
              getContentPane().setLayout(null);
              setSize(800,600);
              myModel();
              final JTable table = new JTable(dataModel);
              JScrollPane scrollpane = new JScrollPane(table);
              getContentPane().add(scrollpane);
              scrollpane.setBounds(10,10,700,300);
              TableColumn tcCol = table.getColumnModel().getColumn(1);
              /* Adding ComboBox to the CellEditor of Column 2 of table     */
              JComboBox jcbComboBox = new JComboBox();
              final ReturnVector vctDBAccess = new ReturnVector();
              jcbComboBox.addItem(vctDBAccess.vctGetOidList().elementAt(0).toString());
              jcbComboBox.addItem(vctDBAccess.vctGetOidList().elementAt(2).toString());
              jcbComboBox.addItem(vctDBAccess.vctGetOidList().elementAt(4).toString());
              tcCol.setCellEditor(new DefaultCellEditor(jcbComboBox));
              /*     Adding Listener for Table      */
              dataModel.addTableModelListener(new TableModelListener() {
                   public void tableChanged(TableModelEvent e) {
              /* Columns Manipulation */
                        if(dataModel.getColumnName(e.getColumn()).equals("Second")) {
                        int iRow = e.getFirstRow();
                        int iColumn = e.getColumn();
                        String strColName = dataModel.getColumnName(iColumn);
                        String strData = (String)dataModel.getValueAt(iRow,iColumn);
                        String strNextColumn = dataModel.getColumnName(iColumn+1);
                        dataModel.setValueAt(vctDBAccess.vctGetOidList().elementAt(vctDBAccess.iGetIndex(strData)+1),iRow,iColumn+1);
              /* Adding button to Frame     */
              JButton jbInsert = new JButton("Insert");
              /* Adding new row to the Tablemodel -- Probelm is here     */
              jbInsert.addActionListener(new ActionListener(){
              public void actionPerformed(ActionEvent e){
                        try {
                   Object[] nrow = {"what", "ever", "you"};
                   dataModel.addRow(nrow);
                   }catch(Exception ex) {
                   System.out.println("Exception at adding row = " + ex);
    getContentPane().add(jbInsert);
    jbInsert.setBounds(100,350,100,20);
    addWindowListener(new WindowAdapter() {
              public void windowClosing(WindowEvent e) {
                   System.exit(0);
         /* Method to initialise new tablemodel     */
         public void myModel() {
              Object[][] data = { {new Integer(10),"two","three"},
                                                 {new Integer(5),"two","three"},
                                                 {new Integer(4),"two","three"},
              String[] col = { "First", "Second", "Third"};
              dataModel = new DefaultTableModel(data,col);
    public static void main(String arg[]) {
              TableImpl ct = new TableImpl();
              ct.setVisible(true);
    /* Class that returns a Vector of String for populating ComboBox entries and
              for getting the index of a particular element of the vector          */
    class ReturnVector {
                   Vector vctOidName=null;
                   ReturnVector() {
                        this.vctOidName = new Vector();
                        vAddOidList();
                   public void vAddOidList() {
                        String[] dbResult = {      "system", "1.3.6.1.2.1.1" ,
                                                      "interface", "1.3.6.1.2.1.2" ,
                                                      "snmp", "1.3.6.1.2.1.3" };
                        for(int i=0;i<dbResult.length;i++) {
                             System.out.println("Value = " + dbResult);
                             vctOidName.addElement(dbResult[i]);
                   public Vector vctGetOidList() {
                        return vctOidName;
                   public int iGetIndex(String strData) {
                        System.out.println("Index = " + vctOidName.indexOf(strData));
                        return vctOidName.indexOf(strData);

  • Problem in adding a new row in a table.. plsss hlppp

    Hi Friends,
    I have a table defaulted to 4 rows. I have a add button to add a new row in the table.
    When i have already 4 rows in table, and when i click add its adding that 5th row correctly( and i used set_lead_selection for this new row ).
    But i want to automatically make a next page once i hit the ADD button here. Each time now i m hitting next page then only  able to see hte 5th row. I need once ADD is clicked, i want to see the 5th row visible..
    Can someone tell me how to code or do this
    thanks friends,,,
    Niraja

    hi niraja,
    Plz refer to the following code:
    method onactiononadd .
    node_material type ref to if_wd_context_node.
    elem_material type ref to if_wd_context_element.
    stru_material type sflight.
    node_material =  wd_context->get_child_node( name = 'ANNA' ).
    elem_material = node_material->get_element(  ).
    if ( elem_material is initial ).
    call method node_material->create_element
    receiving
    element = elem_material.
    endif.
    call method elem_material->get_static_attributes
    importing
    static_attributes = stru_material .
    call method node_material->bind_structure
    exporting
    new_item = stru_material
    set_initial_elements = abap_false.
    endmethod.
    i hope it helps
    regards
    arjun

  • How to add new row at the top of the advance table.

    Hi,
    I have one advanced table.
    I want to add new rows in advanced table. I can able to add rows using the AddMoreRows button in the footer of the advanced table.
    This adds the row at the end. But I want to add the row at the top.
    How to achive this? Please suggest.
    Thanks & Regards,
    Raja

    Hi,
    Yes you can do it...
    Just set the add Rows automatically property to False of Add Row Button
    and then in processForm Request capture the addRows event
    and invoke a method in AM and then create a new Row in VO.
    Use this code...it will insert row at the top...
    if("addRows".equals(event))
    am.invokeMethod("addrows");
    public void addrows()
    AddressesVOImpl vo1 = getAddressesVO1();
    AddressesVORowImpl row1 = (AddressesVORowImpl)vo1.createRow();
    vo1.insertRowAtRangeIndex(0,row1);
    vo1.setCurrentRow(row1);
    Thanks,
    Gaurav

  • Custom workflow... creating a new user from the End User's point of view

    Hello I am trying to design a new Request for the end user so that they are able to create a new user. I am having problems with my workflow at this point and keep getting the error "Missing view id." Below is my code please help me out... I am very new to this so be gentle.
    P.S. All my fields are named with " view.waveset.* " where * is either accountId or firstname or any attribute I need to set
    <Extension>
    <WFProcess name='End User Create New User' maxSteps='0'>
    <Activity id='0' name='start'>
    <Transition to='Create View'/>
    <WorkflowEditor x='33' y='5'/>
    </Activity>
    <Activity id='1' name='Create View'>
    <Action id='0' application='com.waveset.session.WorkflowServices'>
    <Argument name='op' value='createView'/>
    <Argument name='id' value='$(accountId)'/>
    <Argument name='type' value='User'/>
    </Action>
    <Transition to='Update View'/>
    <WorkflowEditor x='107' y='81'/>
    </Activity>
    <Activity name='Update View'>
    <Action process='Update View'>
    <Argument name='type' value='User'/>
    <Argument name='id' value='$(accountId)'/>
    <Argument name='options'>
    <map/>
    </Argument>
    </Action>
    <Transition to='Provision'/>
    </Activity>
    <Activity id='2' name='Provision'>
    <Action id='0' application='com.waveset.provision.WorkflowServices'>
    <Argument name='op' value='provision'/>
    <Argument name='user' value='$(view)'/>
    <Argument name='options'>
    <map/>
    </Argument>
    </Action>
    <Transition to='end'/>
    <WorkflowEditor x='296' y='83'/>
    </Activity>
    <Activity id='3' name='end'>
    <WorkflowEditor x='393' y='5'/>
    </Activity>
    </WFProcess>
    </Extension>

    I ran across the same error today. Since it's been over a month, I assume you've fixed it already or decided you didn't need it at all? What was your fix?
    For me, I noted that in the sample directory, a similar "createView" call (in End User Anonymous Enrollment) also includes this argument:
    <Argument name='viewId' value='User'/>
    When I added that to my createView call, the "Missing view id" error went away, and the user are gets created.
    I'm not entirely comfortable with the value specified, though; seems like view IDs should be more unique. I would have thought it should have been something like this instead:
    <Argument name='viewId' value='User:$(accountId)'/>

  • MAX(ROWID) and inserting rows at the end of the table

    Hi,
    I know this will be another lame question but I simply didn't find the answer anywhere. I create ID (primary key) for rows manually so I have this code:
    String query = "SELECT * FROM CIS_SEG_SKUPINY WHERE ROWID=(SELECT MAX(ROWID) FROM CIS_SEG_SKUPINY)";
    rset = stmt.executeQuery(query);
    if (!rset.next()) {
    <p style="padding-left:10px">newID = new Number(1);
    System.out.println(newID);</p>
    else {
    <p style="padding-left:10px">rset.beforeFirst();
    while (rset.next()) {
    <p style="padding-left:20px">int lastID = rset.getInt("ID");
    System.out.println(lastID);
    newID = new Number(lastID + 1);
    System.out.println(newID);
    }</p>
    }</p>
    css.setId(newID);
    Row globalsRow = getGlobals().first();
    css.setKodSegSkupiny((String)globalsRow.getAttribute("GroupCode"));
    css.setPopis((String)globalsRow.getAttribute("Description"));
    css.setBarva((Number)globalsRow.getAttribute("Colour"));
    getDBTransaction().commit();
    When the table is empty newID is set to 1 and row inserted. Now I have one row in the table (with ID=1) so newID is set to 2 and row inserted BUT it is inserted BEFORE the first row. So when I try to insert third row lastID is 1 not 2. I tried to find some command which would insert new row after the last one but unfortunately I wasn't successfull.
    Edited by: Herald on Mar 28, 2009 11:11 AM

    Herald,
    I am sorry to say that there are so many things wrong with your approach, that I don't know where to begin...
    1). ROWID is a pseudo column in Oracle.. It has no meaning of first, last, middle, or otherwise. SELECT MAX(ROWID) will get you some row.
    2). In a relational database, there is no concept of first or last row in a table. If you expect the rows in some order, use an order by.
    3). Ignoring your implementation and addressing your intent - you should not be creating a primary key by getting the max already in the table and adding one. You will, using your technique, get duplicates in a multi-user scenario. If you fix your implementation to not give duplicates in a multi-user scenario (no, I won't show you how), you will use a table lock, and therefor inhibit scalability in a serious way.
    The proper and commonly accepted way to generate a numeric primary key in Oracle would be to use a sequence and a trigger to populate the sequence. Lots of examples to be found in this forum, but just have a read of the ADF Developers Guide for Forms/4GL Developers (for 10g) or the Fusion Developers Guide (for 11g) to find one. The term to search for would be DBSequence.
    John

Maybe you are looking for