向多页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(); } 该语句会获取更多的记录.
随机推荐
- Nginx + Tomcat 负载均衡配置详解
Nginx常用操作指南一.Nginx 与 Tomcat 安装.配置及优化1. 检查和安装依赖项 yum -y install gcc pcre pcre-devel zlib zlib-devel o ...
- 转!idea启动后发现tomcat前面出现红色或是灰色的问号
原博文地址:https://blog.csdn.net/z_zhy/article/details/83068168 直接在idea里 点击File------settings,在搜索框直接搜tomc ...
- Navigation Nightmare---poj1984(多关系并查集)
题目链接:http://poj.org/problem?id=1984 给定n个城市,m条边告诉你城市间的相对距离,接下来q组询问,问你在第几条边添加后两城市的距离. #include <ios ...
- nginx中获取真实ip(转)
原文:http://blog.csdn.net/a936676463/article/details/8961504 server { listen 80; server_name lo ...
- LVM的一些问题汇总 tune2fs命令
LVM的一些问题汇总 tune2fs命令 --http://www.aminglinux.com/bbs/forum.php?mod=viewthread&tid=7664&page ...
- raspberry pi 树莓派作为比特比矿机
http://www.instructables.com/id/Bitcoin-Mining-using-Raspberry-Pi/ Step 5: Installing Required Libra ...
- rewrite or internal redirection cycle while processing "/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/jenkins/
折腾了很久,跟nginx配置没有关系.最终是把php版本从7.1降到5.6才解决的,是跟tp3.2匹配的
- python 中使用ConfigParser类修改配置文件
配置文件的格式: [user] user_ip=127.0.0.1 user_name=testuser user_id=13 import ConfigParser conf = ConfigPar ...
- SQL学习笔记一之初识数据库
阅读目录 一 数据库管理软件的由来 二 数据库概述 三 mysql介绍 四 下载安装 五 mysql软件基本管理 六 初识sql语句 一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是 ...
- PHP搞笑注释代码-佛祖配美女
//////////////////////////////////////////////////////////////////// // _ooOoo_ // // o8888888o // / ...