填报分页自动计算页数
假分页是针对填报表分页的一种解决方法。
之前的例子是写死的一页显示多少行,有多少页。
有的客户希望自动计算出总共的页数。
方法如下:
计算出数据集所包含的数据量:
//第一步,读取报表模板
String reportFileHome=Context.getInitCtx().getMainDir();
String reportPath = application.getRealPath(reportFileHome)+”\\跳转表.raq”;
ReportDefine rd = (ReportDefine)ReportUtils.read( reportPath );
//System.out.println(“reportPath==”+reportPath);
//第二步,运算报表
Context context = new Context();
Engine enging = new Engine( rd, context);
IReport iReport = enging.calc();
//第三步,获取数据集记录数
DataSetConfig dsc = iReport.getDataSetMetaData().getDataSetConfig(0);//得到数据集配置
String dsName = dsc.getName();//得到数据集的名称
DataSet dataSet = context.getDataSet(dsName);//得到数据集
int dsCount = dataSet.getRowCount();//得到数据集的记录数
然后通过计算把页数计算出来
double ha;
ha=Math.ceil((double)dsCount/(double)pageCount);
最后作为参数传给报表
<table>
<tr>
<%if(nPage>1){%>
<td><a href=”填报分页.jsp?nPage=<%=nPage-1%>&pageCount=<%=pageCount%>&haha=<%=haha%>”>上一页</a></td><%}%>
<%if(nPage<haha){%>
<td><a href=”填报分页.jsp?nPage=<%=nPage+1%>&pageCount=<%=pageCount%>&haha=<%=haha%>”>下一页</a></td><%}%>
</tr>
</table>