报表页面工具条权限控制
需求描述
设计器自带“demo”应用,报表在 Web 页面呈现以后,都会自动带出工具条,且所有功能按钮都可使用。
但实际业务场景中,有各种各样的需求,要求更加的灵活。比如有些用户访问时,仅让其查看呈现的结果,不给其提供工具条导出和打印报表;或者是某些报表仅能查看结果,而不提供导出打印; 亦或是根据用户或报表来动态提供可用的按钮功能,如 A 仅能导出 Word 且不能打印,B 可以打印但不能导出等。
注:以下示例均采用设计器自带 demo,reportJsp 目录下的 showReport.jsp 文件(preview.jsp 及填报表 JSP 文件同理)为例。
解决方法
情况一:整体控制工具条
首先要知道工具条怎么出来的,编辑 showReport.jsp,可找到这么一行
这个就是给报表引入的工具条,是在另外的 JSP 页面定义的。知道了怎么出来的,就好控制了。
1、 所有报表不要工具条
这个最简单,把上面那行引入的代码注释掉或删掉就可以了。
注释方法:
<!--<jsp:include page="toolbar.jsp" flush="false" />-->
2、 根据用户判断是否引入工具条
方法:根据系统的用户信息判断是否引入上面这行代码。
这里我们模拟从外部接收来的用户名,用以判断是否显示工具条。
获取用户信息:
String userID = request.getParameter(“username”);
控制工具条(如果是 zhangsan 和 lisi,显示工具条,否则不显示):
<% if("zhangsan".equals(userID) || "lisi".equals(userID)){%>
<jsp:include page="toolbar.jsp" flush="false" />
<%}%>
修改成以上形式即可实现根据用户判断动态加载。
3、 根据报表名称判断是否引入工具条
和 2 相似,这里只不过通过要访问的报表名判断就可以了。
JSP 内已经接收了报表名字
所以,我们根据“report”这个变量判断就可以了。
即,当访问的报表为 a.rpx 和 d.rpx 的时候显示工具条,其他的不显示。
情况二:控制工具条中的部分按钮可用
从上面可以看出,工具条是在另外的 toolbar.jsp 内定义的,所以只是控制部分按钮可用的话,需要在 toolbar.jsp 内做修改。
编辑 toolbar.jsp
每个功能按钮都是调用的一个 JS 函数,从名字就可以基本知道对应哪个按钮了。
另外,每一个按钮都放在了一个
标签内。所以,我们控制是否显示或引入某个或某些
1、 根据用户判断是否显示功能按钮
如,“zhangsan”和“lisi”可以使用所有功能按钮,其他人只能用打印。
同样模拟从外部接收来的用户名条。
获取用户信息:
String userID = request.getParameter(“username”);
控制功能按钮:
给导出功能按钮增加判断。
2、 根据报表名称判断是否显示功能按钮
与“用户判断”同理
toolbar.jsp 内获取报表名字
String report = request.getParameter( "rpx" );
控制权限:
当报表名为“a.rpx”时,
访问“c.rpx”时
导出按钮均不显示。
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?