OAF_開發系列29_實現OAF中批次處理迭代器RowSet/RowSetIterator(案例)

20150814 Created By BaoXinjianweb

1、摘要post


在Oracle官方指南和例子中,通常遍歷記錄,都是經過RowSetIterator的方式進行,RowSetIterator的用法,經過爲VO建立一個迭代器來 循環每個行測試

但在實際應用也能夠經過Row和Rowset的方式進行遍歷記錄spa

具體狀況具體分析指針

 

1. 選中記錄和記錄集合的三種方式code

(1). 經過Row選中第一條記錄:vo.getFirstFilteredRow("SelectFlag", new String("Y"));
orm

(2). 經過RowSet選中全部被選中的記錄:vo.getFiterredRow("SelectFlag", new String("Y"));blog

(3). 經過RowSetIterator選中全部記錄:vo.createRowSetIterator("selectIter");get

 

2、實施分析it


Step1. 建立CO中的方法

(1). vo.getFirstFilteredRow("SelectFlag", new String("Y"));

(2). vo.getFiterredRow("SelectFlag", new String("Y"));

(3). vo.createRowSetIterator("selectIter");

Step2. 在CO具體控制代碼,分析三種選中方案

public void processFormRequest(OAPageContext pageContext, OAWebBean webBean) { super.processFormRequest(pageContext, webBean); try { EmpManageAMImpl am = (EmpManageAMImpl)pageContext.getApplicationModule(webBean); EmployeesItaraterVOImpl vo = am.getEmployeesItaraterVO(); //方案1. 經過ROW獲取第一個選中欄位 if ("select".equals(pageContext.getParameter(EVENT_PARAM))) { EmployeesItaraterVORowImpl row = (EmployeesItaraterVORowImpl) vo.getFirstFilteredRow("SelectFlag", new String("Y")); //獲取記錄集合 System.out.println("RowFirstEmployeeId=" + row.getEmployeeId()); } //方案2. 經過ROWSET獲取全部選中欄位 if ("select".equals(pageContext.getParameter(EVENT_PARAM))) { Row[] rowset = vo.getFilteredRows("SelectFlag", new String("Y")); //獲取記錄集合 for (int i = 0; i < rowset.length; i++) { EmployeesItaraterVORowImpl row = (EmployeesItaraterVORowImpl)rowset[i]; //取得當前記錄 System.out.println("RowsetEmployeeId=" + row.getEmployeeId()); } } //方案3. 經過RowSetIterator全部選中欄位 if ("select".equals(pageContext.getParameter(EVENT_PARAM))) { int rowcount = vo.getFetchedRowCount(); //取當前提取的記錄集的記錄數 RowSetIterator selectIter = vo.createRowSetIterator("selectIter"); //創建記錄集的指示器 if (rowcount > 0) { selectIter.setRangeStart(0); //設置循環起點,至關於移動指針到第一條記錄 selectIter.setRangeSize(rowcount); //設置循環次數 for (int i = 0; i < rowcount; i++) { EmployeesItaraterVORowImpl row = (EmployeesItaraterVORowImpl)selectIter.getRowAtRangeIndex(i); //取得當前記錄 System.out.println("ItaraterEmployeeId=" + row.getEmployeeId()); } }
selectIter.closeRowSetIterator(); } } catch (Exception ex) { ex.printStackTrace(); } }

 

3、測試運行


Step1. 選中一條記錄測試三種選中方式

Step2.  顯示記錄以下

Step3. 選中所有記錄測試顯示選中方式

Step4. 顯示記錄以下

 

Thanks and Regards

相關文章
相關標籤/搜索