向多页TABLE中插入数据时,新增行总是在当前页的最后一行
CODE IN CO
OATableBean table =
(OATableBean)webBean.findChildRecursive("LineTable");
int numOfRowsDisplay = table.getNumberOfRowsDisplayed();
Serializable[] param01 = { new Number(numOfRowsDisplay) };
Class[] classType = new Class[] { Number.class, };
am.invokeMethod("addPlanLines", param01, classType);
CODE IN AM
public void addPlanLines(Number numOfDisplay) {
OADBTransaction tsn = this.getOADBTransaction(); CuxPosAuditPlanLinesFullVOImpl lineVO =
getCuxPosAuditPlanLinesFullVO();
Number planId = getPlanId(); lineVO.setMaxFetchSize(0);
if (!lineVO.isPreparedForExecution()) {
lineVO.setWhereClause(null);
lineVO.executeQuery();
} RowSet localRowSet = lineVO.getRowSet(); int i = 1;
int j = numOfDisplay.intValue();
int rangeStart = localRowSet.getRangeStart();
int rangeSize = localRowSet.getRangeSize();
int rowCountInRange = localRowSet.getRowCountInRange();
int i1;
if (rowCountInRange + i <= j)
i1 = rowCountInRange;
else {
i1 = j - i;
}
CuxPosAuditPlanLinesFullVORowImpl row =
(CuxPosAuditPlanLinesFullVORowImpl)lineVO.createRow();
if (rangeSize < i1) {
rangeSize++;
localRowSet.setRangeSize(rangeSize);
localRowSet.setRangeStart(rangeStart);
} row.setPlanId(planId);
Number pk = getSequenceValue("CUX_POS_AUDIT_PLAN_LINES_S");
row.setLineId(pk);
row.setOrgId(new Number(tsn.getOrgId()));
row.setOrgName(getOrgName(tsn.getOrgId()));
localRowSet.insertRowAtRangeIndex(i1, row);
localRowSet.setCurrentRowAtRangeIndex(i1);
}
方法二:
/**
* This method is for use with UI Table addRows buttons that require the
* addition of multiple rows; given a RowIterator (such as a VO) and the
* number of rows the caller needs to add, this method figures out where
* the caller should start adding rows in order to comply with the BLAF
* standard that newly added rows should go into the bottom of the current
* table range (which is the same as the RowIterator range if things are
* set up properly), pushing rows into the next range if necessary
*
* Returns: range-based (not absolute) index within the current range
*/
public static int getStartIndexForMultiInsert(RowIterator rowIt, int numRowsToAdd)
{
int numRowsInRange = rowIt.getRowCountInRange();
int rangeSize = rowIt.getRangeSize();
int firstIndexAtWhichToAdd = 0;
int numOpenSlotsInRange = (rangeSize - numRowsInRange); if (rowIt.getRangeSize() < rangeSize)
{
rowIt.setRangeSize(rangeSize);
} if (numOpenSlotsInRange < numRowsToAdd)
{
firstIndexAtWhichToAdd = rangeSize - numRowsToAdd;
}
else
{
firstIndexAtWhichToAdd = numRowsInRange;
} return firstIndexAtWhichToAdd;
} 调用:
int indexForRowInserts = getStartIndexForMultiInsert(vo, 1);
vo.insertRowAtRangeIndex(indexForRowInserts,row);
方法三:
这种方法有点小问题:
仅仅在第一页有效,应该可以再修改修改,懒得改了
calculVO.insertRow(row);
int fetched = calculVO.getFetchedRowCount();
fetched = fetched > 9 ? 9 : fetched;
if (fetched > 0)
{
int current = fetched % 10;
if (current == 0)
{
fetched = 9;
} else
{
fetched = current > 9 ? 9 : current;
}
}
calculVO.insertRowAtRangeIndex(fetched, row);
向多页TABLE中插入数据时,新增行总是在当前页的最后一行的更多相关文章
- 触发器修改后保存之前的数据 表中插入数据时ID自动增长
create or replace trigger t before update on test5 for each rowbegin insert into test55 values (:old ...
- 数据库中插入数据时发生ora-00984错误
操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误,如下图所示: 出现的原因是由于,在插入字符或字符串型字段时.如果插入的数据是纯数字,则不会有错误:如果出现字符,则会报OR ...
- 在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据
在设计数据库表的时候,经常会使用自增主键或其他自增字段.比如: DB_UserGroups表中GroupID为该表主键,并为自增字段. 但在将某字段设置自增后,想在插入数据时,人为指定自增字段的数据内 ...
- 在Sql2005中,向表中插入数据时遇到uniqueidentifier列,如何插入数据?
Sql2005中,提供了uniqueidentifier 数据类型.说白了,就是个GUID,这种类型开发时倒是很有必要的. 今天程序中遇到了这个问题:表里定义了一个uniqueidentifier 列 ...
- MYSQL中插入数据时出现的问题:
问题: mysql',default,default); ERROR (HY000): Incorrect string value: 解决方案: 首先查看自己的数据表情况: mysql> SH ...
- 向已有的table中插入数据
table: <table id="seleted-table" class="table table-bordered table-hover" sty ...
- django rest framework 向数据库中插入数据时处理外键的方法
一.models.py中 from django.db import models class UserModel(models.Model) user_name = models.CharField ...
- 向mysql数据库中插入数据时显示“Duplicate entry '1′ for key ‘PRIMARY' ”错误
错误情况如题,出现这个错误的原因十分简单: 很明显,这是主键的问题. 在一张数据表中是不能同时出现多个相同主键的数据的 这就是错误的原因,解决的方法: 1.可以将这张表设置成无主键(mysql支持,其 ...
- 使用 QSqlTableModel 模型向数据库中插入数据时,为什么使用 rowCount 函数只能返回 256 最大值?
默认返回缓冲区里面的数据,如果你向要获取更多值,请在前面加入以下语句即可. while(model.canFetchMore()){ model.fetchMore(); } 该语句会获取更多的记录.
随机推荐
- 利用maven-assembly-plugin加载不同环境所需的配置文件及使用场景
背景: 如何加载不同环境的配置文件已经成了势在必行的,我们通常利用profile进行,详情参见我上篇博客 http://www.cnblogs.com/lianshan/p/7347890.html, ...
- PL/SQL编程基础(三):数据类型划分
数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...
- Page Control
- Python开发【数据结构】:算法(一)
算法基础 1.什么是算法? 算法(Algorithm):一个计算过程,解决问题的方法 2.复习:递归 递归的两个特点: 调用自身 结束条件 两个重要递归函数的对比: # 由大到小 def func3( ...
- wget全站抓取命令
wget -r -p -np -k http://www.freebuf.com/ 忽视,避开robots.txt,加一个-e robots=off 用wget避开robots.txt的下载限制 wg ...
- Java压缩多个文件并导出
controller层: /** * 打包压缩下载文件 */ @RequestMapping(value = "/downLoadZipFile") public void dow ...
- python+Nginx+uWSGI使用说明
安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Django: Django 2.0.4 nWSGI: uw ...
- Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class
在使用spark sql时一直运行报这个错误,最后仔细排查竟然是引入了两个scala library .去除其中一个scala的编译器即可 Exception in thread "main ...
- HDU3579:Hello Kiki(解一元线性同余方程组)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3579 题目解析:求一元线性同余方程组的最小解X,需要注意的是如果X等于0,需要加上方程组通解的整数区间lc ...
- JPA Spring Data 概述
JPA Spring Data : 致力于减少数据访问层 (DAO) 的开发量. 开发者唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成! 框架怎么可能代替开 ...