润乾 V2018 如何在工具栏中增加总记录数和本页记录数显示

 

想在工具栏中除了显示“第几页 / 共几页”外,还需要显示“共几条 / 本页几条”,即总记录数和当前页记录数,应如何实现?

解决方法

润乾报表内部的一些分页函数很容易得到总记录数和当前页记录数,如 count 和 pccount,如果我们能将报表里对应的值显示到页面上就可以了。

可以通过 js 函数很方便的得到单元格值,再将其写回到对应的页面就可以了。

参考示例:

条数显示.zip

具体实现

 我们先来看一下报表,设置报表按行分页,每页 12 行

imagepng

比较简单的一个报表,A5 B5 中相继使用了 count 和 pccount 函数得到总记录数和当前页记录数。

接下来我们看一下页面上的具体实现,工具栏通过 toolbar.jsp 实现,我们要修改其中显示的结果,所以需要将 toolbar 移到发布报表的页面上来。

将原来显示页码的地方修改为:

<li class="floatRight">  <div style="display:inline-block; margin:9px 4px 3px 4px; float:left; ">共<span id="t\_page\_span"></span>页/第<span id="report1\_currPage"></span>页&nbsp;共<span id="total\_rs"></span>条/本页<span id="page_rs"></span>条&nbsp;&nbsp;</div></li>  

修改展现报表的 jsp 中的 report:html 标签内容如下:

<report:html name="report1" reportFileName="<%=report%>"  
funcBarLocation=""  //去掉报表左上角的页码显示  
needScroll="<%=scroll%>"  
generateParamForm="no"  
params="<%=param.toString()%>"  
exceptionPage="/reportJsp/myError2.jsp"  
appletJarName="/raqsoftReportApplet.jar"  
needImportEasyui="no"  
generateCellId="yes"//生成浏览式报表的单元格ID  
/>  

修改原来设置分页显示值的代码:

<script language="**[JavaScript](http://lib.csdn.net/base/javascript)**">  
//设置分页显示值  
try {  
document.getElementById( "t_page_span" ).innerHTML = getPageCount( "report1" );  
document.getElementById( "report1_currPage" ).innerHTML = getCurrPage( "report1" );  
var totalr_rs = document.getElementById("report1_A5").innerText;   //得到A5单元格值  
         var page_rs = document.getElementById("report1_B5").innerText;     //得到B5单元格值  
         document.getElementById( "total_rs" ).innerHTML=total_rs;  
         document.getElementById( "page_rs" ).innerHTML=page_rs;  
}catch(e){}  
document.getElementById( "mengban" ).style.display = "none";  
document.getElementById( "reportArea" ).style.display = "";  
</script>  

这里参照原来设置分页显示值的方式将获得的总记录条数很当前页记录条数写回 Html 页面。

总结         
这里我们来总结一下,这里面需要注意的地方:
1、  pccount 函数只有在分页的情况下才有效,如果不分页就不要写了;
2、  由于我们要更改原来工具栏上的显示外观,所以应该将原来工具栏写在这个页面上,其实是一样的,和原来的 include。
3、  如果不希望报表左上角页码显示,那么将 funcBarLocation="";
4、  由于浏览式报表展现的时候默认是不生成单元格 ID 的,这里为了取到对应单元格的值,得将 generateCellId=“yes”。
报表设计的时候,最好将那两个要取的值放到第一行中,并设置其行属性为报表头,如果不想显示这行,将其行高设置为 0,不能设置隐藏。 |