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/ ...
随机推荐
- View的生命周期
当一个进入一个新viewController的时候,viewController的view的生命周期一般是这样的: 1.先判断内存是否有这个View a.没有的话:生命周期为loadView-> ...
- IOS Quartz2D简介
Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxConte ...
- .NET下单文件的上传处理
ASP.NET的单文件上传使用控件 <asp:FileUpload ID="upmess" runat="server" Width="248p ...
- iOS开发之网络编程--2、NSURLSessionDownloadTask文件下载
本文内容大纲: 1.回顾NSURLSessionTask 2.NSURLSessionDownloadTask大文件之block下载 3.NSURLSessionDownloadTask大文件之代理方 ...
- [docker] 管理docker容器中的数据
之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两 ...
- 敏捷开发中高质量 Java 代码开发实践
Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...
- 快速解决mysql Lost connection to MySQL server at 'reading initial communication packet及can't connect to mysql server on 'localhost'
今天在使用Navicat连一个远程mysql时,总是提示连接不成功,提示Lost connection to MySQL server at 'reading initial communicatio ...
- jQuery事件绑定on、off 和one,取代bind, live, delegate
jQuery最新版建议:最好用on来代替以前的bind, live, delegate,其中live是最不建议使用的. on和off的格式 on $(elements).on(events[, sel ...
- 关于点击空白关闭弹窗的js写法推荐
$(document).mouseup(function(e){ var _con = $(' 目标区域 '); // 设置目标区域 if(!_con.is(e.target) && ...
- dotnet use regex two samples
One sample is used to replace double quote from words which encapsulated by csvwriter , you know csv ...