OAF TABLE中添加序号列
在实际的OAF页面TABLE的使用中,会有很多时候需要在前台页面中显示序号,虽然在sql中可以使用rownum来获得序号,但是rounum的优先级比order by 高,所以在语句中order by 和rownum混合使用会发现,前面的序号并不是理想中排序的序列号。

所以可以在VO里面新建一个字段用来存放序号的值,初始化VO的时候使用RowSetIterator对结果集进行迭代,然后重置该值。
同理,可以使用此方法在初始化出一个多行的数据集的时候初始化序列号。
参考方法如下
public void initRegComplianceVO(){
CuxPosSupplierRegVOImpl suppRegVO = this.getCuxPosSupplierRegVO1();
CuxPosSupplierRegVORowImpl suppRegRow= (CuxPosSupplierRegVORowImpl) suppRegVO.first();
suppRegVO.setCurrentRow(suppRegRow);
CuxSuppRegComplianceVOImpl regCompliVO= this.getCuxSuppRegComplianceVO1();
if(regCompliVO.first()==null){
CuxImportantPromiseVOImpl vo = this.getCuxImportantPromiseVO1();
vo.setMaxFetchSize(-1);
vo.executeQuery();
RowSetIterator compliIter = vo.createRowSetIterator("compliIter");
compliIter.reset();
Number rowNum = new Number(0);
while(compliIter.hasNext()){
Row valueRow= compliIter.next();
CuxSuppRegComplianceVORowImpl row=(CuxSuppRegComplianceVORowImpl)regCompliVO.createRow();
rowNum=rowNum.add(1);
row.setRowNum(rowNum);
row.setComplianceAgreementId(this.getSequenceValue("CUX_SUPP_COMPLIANCE_AGREE_S"));
row.setSourceTable("CUX_POS_SUPPLIER_DETAIL_INFO");
row.setSourceType("IMPORTANT_PROMISE");
row.setSegment(valueRow.getAttribute("LookupCode").toString());
row.setDescription(valueRow.getAttribute("Meaning").toString());
regCompliVO.last();
regCompliVO.next();
regCompliVO.insertRow(row);
}
compliIter.closeRowSetIterator();
}
else{
RowSetIterator compliIter = regCompliVO.createRowSetIterator("compliIter");
compliIter.reset();
Number rowNum = new Number(0);
while(compliIter.hasNext()){
CuxSuppRegComplianceVORowImpl compliRow= (CuxSuppRegComplianceVORowImpl)compliIter.next();
rowNum=rowNum.add(1);
compliRow.setRowNum(rowNum);
}
compliIter.closeRowSetIterator();
}
}
注:
1.getCuxPosSupplierRegVO1与getCuxSuppRegComplianceVO1是通过View Link关联的父子结构的VO,使用默认的runNum会取到数据库中的rowNum,而不是当前行的rowNum.
2.初始化getCuxSuppRegComplianceVO1往其中插入数据的时候遍历了getCuxImportantPromiseVO1,此处根据实际需求完善。
参考:http://blog.csdn.net/amwiacel/article/details/17354235
OAF TABLE中添加序号列的更多相关文章
- element-UI el-table添加序号列时序号永远都是从1开始?
Part.1 示例 当我们想在 el-table 中添加序号列时,如下: <el-table-column label="序号" type="index" ...
- SQL - ROW_NUMBER,Rank 添加序号列
百度的时候查到的博客: http://blog.csdn.net/xsfqh/article/details/6663895-------------------------------------- ...
- ASP.NET(C#)--Repeater中生成“序号”列
需求介绍:在Repeater(Table)中加入“序号”列,从1开始自增,步长为1. 思路:因为“序号”跟Repeater的行号有关,所以要在Repeater的ItemDataBound事件中输出“序 ...
- ASP.NET repeater添加序号列的方法
ASP.NET repeater添加序号列的方法 1.<itemtemplate> <tr><td> <%# Container.ItemIndex + 1% ...
- Repeater控件添加序号列
在项目开发过程中,会经常遇到ASP.NET repeater控件添加序号列,有些新手可能还不会,网上搜集整理了一些,需要的朋友可以参考下 ASP.NET repeater添加序号列的方法 1.< ...
- 向SQL Server 现有表中添加新列并添加描述.
注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...
- DataGridView中添加CheckBox列用于选择行
DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...
- ASP.NET 为GridView添加序号列,且支持分页连续累计显示
为GridView添加序号列,且支持分页连续累计显示,废话不多说,直接上代码: <%@ Page Language="C#" AutoEventWireup="tr ...
- JavaScript实现获取table中某一列的值
JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
随机推荐
- Sublime Text 最佳插件列表(转)
Package Control 安装方法 首先通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴相应的 Python 安装代码. Sublime Tex ...
- 斯坦福iOS7公开课4-6笔记及演示Demo
1.变量类型别滥用id,如果不仔细容易在程序执行时引发错误,因为在编译阶段编译器只是检测变量对象所属类型,尤其是类型为id时代表任何类型都可以通过检查,但不会检测变量对象调用的方法,这样当对象所属类不 ...
- Silverlight项目笔记2:.svc处理程序映射缺失导致的WCF RIA Services异常
在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相 ...
- Java集合 之 List 集合
1.什么是Lsit集合? List集合是一种元素有序的,可重复的集合,集合中每个元素都有自己的元素索引.List集合允许可重复的元素,可以通过索引来访问指定位置的元素. 2.Java8改进的List接 ...
- Office 2013 激活工具
早上装机,顺便装了下Office 2013,界面还是不错的.网上找了下相关的激活工具. 发现还是独木成林做的最好呀,直接把别人的链接给拿过来好了,下载地址 http://pan.baidu.com/s ...
- C#照片批量压缩小工具
做了一个照片批量压缩工具,其实核心代码几分钟就完成了,但整个小工具做下来还是花了一天的时间.中间遇到了大堆问题,并寻求最好的解决方案予以解决.现在就分享一下这个看似简单的小工具所使用的技术. 软件界面 ...
- linux 同步IO: sync msync、fsync、fdatasync与 fflush
最近阅读leveldb源码,作为一个保证可靠性的kv数据库其数据与磁盘的交互可谓是极其关键,其中涉及到了不少内存和磁盘同步的操作和策略.为了加深理解,从网上整理了linux池畔同步IO相关的函数,这里 ...
- C# 文件操作(上传,下载,读取,写入)
1. 通过byte[]数据下载文件(这种方法可用于以开放Api的形式传递文件内容) public void FileDownLoadByByte(byte[] fileData, string fil ...
- hdu 2199 Can you solve this equation?(二分搜索)
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- jQuery 1.9 .live() is not a function
jquery中的live()方法在jquery1.9及以上的版本中已被废弃了,如果使用,会抛出TypeError: $(...).live is not a function错误. 解决方法: 之前的 ...