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