在实际的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中添加序号列的更多相关文章

  1. element-UI el-table添加序号列时序号永远都是从1开始?

    Part.1 示例 当我们想在 el-table 中添加序号列时,如下: <el-table-column label="序号" type="index" ...

  2. SQL - ROW_NUMBER,Rank 添加序号列

    百度的时候查到的博客: http://blog.csdn.net/xsfqh/article/details/6663895-------------------------------------- ...

  3. ASP.NET(C#)--Repeater中生成“序号”列

    需求介绍:在Repeater(Table)中加入“序号”列,从1开始自增,步长为1. 思路:因为“序号”跟Repeater的行号有关,所以要在Repeater的ItemDataBound事件中输出“序 ...

  4. ASP.NET repeater添加序号列的方法

    ASP.NET repeater添加序号列的方法 1.<itemtemplate> <tr><td> <%# Container.ItemIndex + 1% ...

  5. Repeater控件添加序号列

    在项目开发过程中,会经常遇到ASP.NET repeater控件添加序号列,有些新手可能还不会,网上搜集整理了一些,需要的朋友可以参考下 ASP.NET repeater添加序号列的方法 1.< ...

  6. 向SQL Server 现有表中添加新列并添加描述.

    注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...

  7. DataGridView中添加CheckBox列用于选择行

    DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...

  8. ASP.NET 为GridView添加序号列,且支持分页连续累计显示

    为GridView添加序号列,且支持分页连续累计显示,废话不多说,直接上代码: <%@ Page Language="C#" AutoEventWireup="tr ...

  9. JavaScript实现获取table中某一列的值

    JavaScript实现获取table中某一列的值 1.实现源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

随机推荐

  1. View的生命周期

    当一个进入一个新viewController的时候,viewController的view的生命周期一般是这样的: 1.先判断内存是否有这个View a.没有的话:生命周期为loadView-> ...

  2. IOS Quartz2D简介

    Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxConte ...

  3. .NET下单文件的上传处理

    ASP.NET的单文件上传使用控件 <asp:FileUpload ID="upmess" runat="server" Width="248p ...

  4. iOS开发之网络编程--2、NSURLSessionDownloadTask文件下载

    本文内容大纲: 1.回顾NSURLSessionTask 2.NSURLSessionDownloadTask大文件之block下载 3.NSURLSessionDownloadTask大文件之代理方 ...

  5. [docker] 管理docker容器中的数据

    之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两 ...

  6. 敏捷开发中高质量 Java 代码开发实践

    Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...

  7. 快速解决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 ...

  8. jQuery事件绑定on、off 和one,取代bind, live, delegate

    jQuery最新版建议:最好用on来代替以前的bind, live, delegate,其中live是最不建议使用的. on和off的格式 on $(elements).on(events[, sel ...

  9. 关于点击空白关闭弹窗的js写法推荐

    $(document).mouseup(function(e){ var _con = $(' 目标区域 '); // 设置目标区域 if(!_con.is(e.target) && ...

  10. dotnet use regex two samples

    One sample is used to replace double quote from words which encapsulated by csvwriter , you know csv ...