润乾 V2018 如何在工具栏中增加总记录数和本页记录数显示
想在工具栏中除了显示“第几页 / 共几页”外,还需要显示“共几条 / 本页几条”,即总记录数和当前页记录数,应如何实现?
解决方法
润乾报表内部的一些分页函数很容易得到总记录数和当前页记录数,如 count 和 pccount,如果我们能将报表里对应的值显示到页面上就可以了。
可以通过 js 函数很方便的得到单元格值,再将其写回到对应的页面就可以了。
参考示例:
具体实现
我们先来看一下报表,设置报表按行分页,每页 12 行
比较简单的一个报表,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>页 共<span id="total\_rs"></span>条/本页<span id="page_rs"></span>条 </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,不能设置隐藏。 |
你好,那个本页条数是不是不会更新,永远都是 12 条,最后一页没有 12 条,也显示本页是 12 条?
是的,这块是直接将单元格计算后的固定值写到了工具栏里的。
能动态吗?
工具栏里是固定的,它相当于是获取的每页设置的固定显示多少条。
实际每页会显示多少条,可以在单元格里通过 pccount() 函数获取显示,比如吧这个格子所在行固定在报表头
我现在也把 pccount() 固定到报表头啦,页面上打印出来也是动态的 我该怎么把固定的引用成动态的