博计报表数据量过大时隐藏导出按钮

博计报表数据量过大时隐藏导出按钮

一些客户因为报表自身数据量大,页面上分页过多,所以当用户对这样的报表导出 excel 的时候,花费的时间会相对长一些,而且导出 excel sheet 页也非常的多,这样的 excel 导出以后不方便查看,也没有什么意义,所以希望在报表中动态的根据页面的数据条数,决定是否给客户导出 excel 的权限,也就是说如果页面上数据量很大,那么就不显示导出 excel 的功能,如果数据量不大就给客户显示导出 excel 的功能。

实现思路:

这个问题可以通过判断页面数据条数,也就是一共有多少条数据,然后通过 js 动态的实现隐藏和显示导出 excel 的按钮。

实现方法:

在页面上判断大致数据条数的方法为:

var tab = document.getElementById(“report1″).rows.length ;

这样可以取到当前页面上有多少行数据,如果数据量很多,分页很多的话,可以通过下面的办法大致的计算出总页数:

var rows = tab*parseInt(report1_getTotalPage());

根据上面这个数据条数就可以动态的隐藏或显示导出 excel 的按钮了,具体的做法如下:

if(parseInt(rows)>=30){

document.getElementById(“excel”).style.display=”none”;

}

完整的 js 代码如下:

<script language=”javascript”>

window.onload=function show()

{

var tab = document.getElementById(“report1″).rows.length ;

var rows = tab*parseInt(report1_getTotalPage());

if(parseInt(rows)>=150){

document.getElementById(“excel”).style.display=”none”;

}

return true;

}

</script>

修改 toolbar.aspx ,给导出 excel 的按钮加一个 id ,具体如下:

<a href=”#” onClick=”report1_saveAsExcel();return false;” id=”excel”><%=excelImage%></a>

因为隐藏或显示导出 excel 的按钮需要在第一次展现报表的时候就生效,所以需要让 js window.onload 的时候就被调用。

将这段 js 加入到 aspx 中,然后用 aspx 发布报表,就可以看到效果,当页面数据为 300 条时,也就是在报表中写表达式 =to(1,300), 导出 excel 按钮被隐藏,如下图所示:

但页面数据为 100 条时,也就是在报表中写表达式 =to(1,100), 导出 excel 的按钮存在,如下图所示:

这样就实现了动态的根据页面数据条数来显示隐藏导出excel的功能了。

热门文章