向多页TABLE中插入数据时,新增行总是在当前页的最后一行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向多页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); }
方法二:
这种方法有点小问题:
仅仅在第一页有效,应该可以再修改修改,懒得改了
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中插入数据时,新增行总是在当前页的最后一行的主要内容,如果未能解决你的问题,请参考以下文章