方法2:此方法利用记录数组来遍历.伪码如下:
Import java.jbo.Row
…
public void deletedata()
{
OAViewObjectImpl vo1 = this.getOrderLineVO1(); //实例化VO
Row[] row = vo1.getFilteredRows("Deleteflag", new String(“Y”)); //生成要删除的记录集
for (int i=1;i<=row.length;i++) //根据记录集的记录数进行循环
{
row[i].remove(); //删除
getTransaction().commit(); //提交
}
}
这个方法是根据删除标记来确定记录集,然后把这个集的所有记录删除,效果与上面差不多…
方法3:此方法利用记录的指针位移来遍历,伪码如下(还没测):
{
OAViewObjectImpl vo1 = this.getOrderLineVO1(); //实例化VO
vo1.first(); //定位记录指针到第一条
int rowcount = vo1.getFetchedRowCount(); //取得记录数
for (int i=0; i
Row row = vo1.getCurrentRow(); //取得当前记录
if ("Y".equals(row.getAttribute("Deleteflag"))) //判断是否可删除
{
row.remove();
getTransaction().commit();
rowcount = rowcount-1; //删除后,记录数减1
}
else
{
vo1.next(); //移动指针(如果删除成功,后面记录补上来的话,应不用移用指针
}
}
}
作者“红豆加奶”