|
@@ -502,6 +502,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
maxRowRec = JpcFlowTabHelper.getMaxRowsPerPage(bands, rptTpl, me.isEx);
|
|
|
}
|
|
|
let handledRowAmt = 0; //handledRowAmt纪录的是真正处理过的显示行数,包含了空白行,主要是为分页用(自动行高)
|
|
|
+ let segRestRecAmt = 0; //一般情况下为0,只有在特殊情况下才需要,如09-x表中,正常流水一页显示不了的时候,就有大问题了
|
|
|
function private_addPage(segIdx, grpSeqInfo, isFollow, isMix, mixSplitPoint) {
|
|
|
private_resetBandArea();
|
|
|
me.pageStatusLst.push(pageStatus.slice(0));
|
|
@@ -516,6 +517,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
redundantRecAmt++;
|
|
|
}
|
|
|
}
|
|
|
+ let restRecAmt = 0;
|
|
|
if (isMix) {
|
|
|
//先处理上半部分
|
|
|
prePageLeftAutoHeightRecAmt = private_addPageValue(me.dispValueIdxLst, me.segments[segIdx], grpSeqInfo, counterRowRec, mixSplitPoint,me.page_seg_map, segIdx, pageIdx, grpPageInfo, false, me.auto_height_info, prePageLeftAutoHeightRecAmt);
|
|
@@ -523,7 +525,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
private_chk_handle_rec_amt(dv, false);
|
|
|
}
|
|
|
//再处理下半部分
|
|
|
- let restRecAmt = maxRowRec - me.dispValueIdxLst[me.dispValueIdxLst.length - 1].length; //备注:在一些极端条件下,mixSplitPoint这个分割点不合适处理下半部分数据,以实际生成的value-index数量为准
|
|
|
+ restRecAmt = maxRowRec - me.dispValueIdxLst[me.dispValueIdxLst.length - 1].length; //备注:在一些极端条件下,mixSplitPoint这个分割点不合适处理下半部分数据,以实际生成的value-index数量为准
|
|
|
// private_addPageValue(me.dispValueIdxLst, followTabEx.segments[segIdx], null, counterRowRecEx, maxRowRec - mixSplitPoint, me.page_seg_map, segIdx, pageIdx, null, true, null, 0);
|
|
|
private_addPageValue(me.dispValueIdxLst, followTabEx.segments[segIdx], null, counterRowRecEx, restRecAmt, me.page_seg_map, segIdx, pageIdx, null, true, null, 0);
|
|
|
for (let dv of me.dispValueIdxLst[me.dispValueIdxLst.length - 1]) {
|
|
@@ -548,6 +550,10 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
}
|
|
|
currentRecAmt -= redundantRecAmt; //在自动行高调整场景下,需要减去冗余的数量
|
|
|
+ if (restRecAmt < 0) {
|
|
|
+ currentRecAmt -= restRecAmt;
|
|
|
+ segRestRecAmt = restRecAmt;
|
|
|
+ }
|
|
|
}
|
|
|
for (let segIdx = 0; segIdx < me.segments.length; segIdx++) {
|
|
|
let grpSeqInfo = (me.group_node_info)?me.group_node_info[segIdx]:null;
|
|
@@ -555,6 +561,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
let grpRecAmtEx = 0;
|
|
|
let accAutoHeightAmt = 0; //累计的自动行高数量
|
|
|
handledRowAmt = 0; //初始化每一段的已处理纪录行数
|
|
|
+ segRestRecAmt = 0;
|
|
|
if (followTabEx && followTabEx.group_node_info) {
|
|
|
grpRecAmtEx = followTabEx.group_node_info.length * followTabEx.group_lines_amt;
|
|
|
}
|
|
@@ -684,7 +691,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
}
|
|
|
//检测是否可退出
|
|
|
// if ((currentRecAmt + accAutoHeightAmt + adHocAutoHeightAmt >= ttlSegRecAmt) && (pageIdx % me.multiCols === 0)) {
|
|
|
- if (handledRowAmt >= ttlSegRecAmt && (pageIdx % me.multiCols === 0)) {
|
|
|
+ if (handledRowAmt >= (ttlSegRecAmt + segRestRecAmt) && (pageIdx % me.multiCols === 0)) {
|
|
|
//备注:这里必须得考虑多栏的情况,否则会造成pageStatus出界的问题
|
|
|
break;
|
|
|
}
|
|
@@ -904,7 +911,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
|
|
|
for (let idx_ex = 0; idx_ex < tab_fields_ex.length; idx_ex++) {
|
|
|
let tab_fieldex = tab_fields_ex[idx_ex];
|
|
|
let data_fieldex = null, map_data_fieldex = JE.F(tab_fieldex[JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
- if (me.disp_fields_ex_idx[idx_ex] !== JV.BLANK_FIELD_INDEX && (typeof me.disp_fields_idx[idx_ex] !== 'object')) {
|
|
|
+ if (me.disp_fields_ex_idx[idx_ex] !== JV.BLANK_FIELD_INDEX && (typeof me.disp_fields_ex_idx[idx_ex] !== 'object')) {
|
|
|
data_fieldex = data_details_ex[me.disp_fields_ex_idx[idx_ex]];
|
|
|
} else {
|
|
|
if (map_data_fieldex) {
|