在工具栏中增加总记录数和本页记录数显示

问题描述

工具栏中已显示”第几页/共几页”,客户还需要显示”共几条/本页几条”,即总记录数和当前页记录数。下图即为需要显示的效果:

博计报表内部的一些分页函数很容易得到总记录数和当前页记录数,如count和pccount,如果能将报表里对应的值显示到页面上就可以了。当然,我们也可以在页面里通过数据库查询操作得到上述数据,但是在页面上又进行一次同数据库的交互会导致数据显示效率的降低,所以最好还是将报表中的值显示到页面上。

实现思路

通过js函数得到单元格值,再将其写回到对应的页面。

实现步骤

新建一张报表,设置报表按行分页,每页10行:

A2、B2中分别使用了count和pccount函数得到总记录数和当前页记录数。

接下来看页面上的具体实现。

工具栏通过toolbar.jsp实现,要修改其中显示的结果,需要将toolbar移到发布报表的页面上来。

将其代码都复制到testToolbar.jsp(发布报表的jsp)中,将原来显示页码的地方修改为:

<td width=”40%” align=”center” valign=”middle” style=”font-size:12px” >共<span id=”t_page_span”></span>页/第<span id=”c_page_span”></span>页&nbsp;共<span id=”total_rs”></span>条/本页<span id=”page_rs”></span>条&nbsp;&nbsp;

修改report:html标签内容如下:

<report:html name=”report1″ reportFileName=”<%=report%>”
funcBarLocation=”” //去掉报表左上角的页码显示
needPageMark=”yes” //该属性必须
generateParamForm=”no”
params=”<%=param.toString()%>”
generateCellId=”yes” //生成浏览式报表的单元格ID
exceptionPage=”/reportJsp/myError2.jsp”

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

<script language=”javascript”>
//设置分页显示值
document.getElementById( “t_page_span” ).innerHTML=report1_getTotalPage();
document.getElementById( “c_page_span” ).innerHTML=report1_getCurrPage();
var totalr_rs = document.getElementById(”report1_A1″).innerText; //得到A1单元格值
var page_rs = document.getElementById(”report1_B1″).innerText; //得到B1单元格值
document.getElementById( “total_rs” ).innerHTML=totalr_rs;
document.getElementById( “page_rs” ).innerHTML=page_rs;
</script>

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

总结

有以下几点需要注意:

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

浏览次数:0 ; 发布日期:2010/09/03

热门文章

  • 申请试用授权 - 49,853 views
  • 使用入门教程简介 - 30,987 views
  • .NET报表产品概况 - 27,730 views
  • 联系我们 - 13,867 views
  • 技术支持 - 10,185 views
  • 高效报表设计 - 9,033 views
  • Web报表工具的新起点 - 7,563 views
  • 复杂报表的制作 - 7,033 views
  • Web报表软件的采购成本 - 6,530 views
  • Web报表软件的集成方案 - 5,075 views