Documentation

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
jvx:client:model:databook:record_iteration [2023/02/08 14:09]
admin created
jvx:client:model:databook:record_iteration [2023/02/08 17:57] (current)
admin
Line 2: Line 2:
 ~~Title: Record iteration~~ ~~Title: Record iteration~~
  
-  ​for (IDataRow mRow : mdbMaster) +It's possible to iterate all records of a databook with different techniques. It's a performance decission what's best. Just reading is fastest. 
-  + 
-    for (IDataRow dRow : mdbDetail.getDataPage(mRow))+You decide if you iterate ​for reading or for changing records. An iteration  
 + 
 +==Iterate with optional record change ​(Solution 1)== 
 +<file java> 
 +int masterRow = mdbMaster.getSelectedRow()
 +int detailRow = mdbDetail.getSelectedRow();​ 
 + 
 +boolean resetSelection = false; 
 + 
 +try 
 +
 +    for (int i = 0; i < mdbMaster.getRowCount(); i++)
     {     {
-      ​if (wanted+        for (int j = 0; j < mdbDetail.getDataPage(mdbMaster.getDataRow(i)).getRowCount();​ j++) 
-      +        { 
-        mdbMaster.setSelectedRow(mRow.getRowIndex()); +            ​if (changeData
-        mdbDetail.setSelectedRow(dRow.getRowIndex()); +            
-        // set any value +                mdbMaster.setSelectedRow(i); 
-      }+                mdbDetail.setSelectedRow(j); 
 +                 
 +                ​resetSelection = true; 
 +            } 
 +        ​}
     }     }
-  ​}+} 
 +finally 
 +
 +    if (resetSelection) 
 +    { 
 +        mdbMaster.setSelectedRow(masterRow);​ 
 +        mdbDetail.setSelectedRow(detailRow);​ 
 +    } 
 +
 +</​file>​ 
 + 
 +==Iterate with optional record change (Solution 2)== 
 + 
 +<file java> 
 +int masterRow = mdbMaster.getSelectedRow();​ 
 +int detailRow = mdbDetail.getSelectedRow();​ 
 + 
 +boolean resetSelection = false; 
 + 
 +try 
 +
 +    for (IDataRow mRow : mdbMaster) 
 +    { 
 +        for (IDataRow dRow : mdbDetail.getDataPage(mRow)) 
 +        { 
 +            if (changeData) 
 +            { 
 +                mdbMaster.setSelectedRow(mRow.getRowIndex());​ 
 +                mdbDetail.setSelectedRow(dRow.getRowIndex());​ 
 +                 
 +                resetSelection = true; 
 +            } 
 +        } 
 +    } 
 +
 +finally 
 +
 +    if (resetSelection) 
 +    { 
 +        mdbMaster.setSelectedRow(masterRow);​ 
 +        mdbDetail.setSelectedRow(detailRow);​ 
 +    } 
 +}   
 +</​file>​ 
 + 
 +==Iterate with record change== 
 + 
 +<file java> 
 +int masterRow = mdbMaster.getSelectedRow();​ 
 +int detailRow = mdbDetail.getSelectedRow();​ 
 + 
 +try 
 +
 +    for (int i = 0; i < mdbMaster.getRowCount();​ i++) 
 +    { 
 +        mdbMaster.setSelectedRow(i);​ 
 +         
 +        for (int j = 0; j < mdbDetail.getRowCount(j);​ j++) 
 +        { 
 +            mdbDetail.setSelectedRow(j);​ 
 +        } 
 +    } 
 +
 +finally 
 +
 +    mdbMaster.setSelectedRow(masterRow);​ 
 +    mdbDetail.setSelectedRow(detailRow);​ 
 +
 +</​file>​
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information