一、前言
一般情况下,前端通过帆软请求数据时会把id拼接成一个用逗号分隔开的string串,然后帆软自动解析查询数据。此时就会出现多条单据的页码是连续的。
二、解决方案
使用帆软自带的属性__cumulatepagenumber__便可实现,在请求链接加上__cumulatepagenumber__=false就不会再累加。但是有个前提条件,该属性只能适用于多张报表的情况。也就是需要循环id,让一个id对应一个cpt。
三、代码实现
http://localhost:8075/WebReport/ReportServer?reportlets=({reportlet:/K1.cpt,param1=p1,param2=p2},{reportlet:K2.cpt,param1=p1,param2=p2})&cumulatepagenumber=false
// 获取多行数据
var rowsData = $('#'+table).datagrid('getSelections');
var url ="${fineReportUrl}?reportlets=(";
// for循环实现不同单据页码不累加:__cumulatepagenumber__=false属性只能是多张报表的情况下才能实现不累加
for(var i=0;i<rowsData.length;i++){
url = url + "{reportlet:/${CPT_FOLDER_PREFIX}pjmat/SP_PRINT_MAT_PUR_IN.cpt,id=" +rowsData[i].id+"},";
}
url = url.substring(0,url.length-1);
url = url+")&__cumulatepagenumber__=false";
// 弹出预览框
createwindow_def("打印预览",url,"80%","90%",true);
这样便可实现批量打印时每张单据单独展示页码