填报分页自动计算页数

假分页是针对填报表分页的一种解决方法。

之前的例子是写死的一页显示多少行,有多少页。

有的客户希望自动计算出总共的页数。

方法如下:

计算出数据集所包含的数据量:      

 //第一步,读取报表模板

       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>

热门文章