birt 的权限控制

很多兄弟问到birt的权限控制问题,我这里只是简单的说两个方法,而且是很简单的方法,实际操作中可能不是太实用。
第一种方法通过参数控制:
页面报表就是一个简单的报表,这里我是太偷懒了。嘿嘿。 只有个参数,接收前台传进来的数据。
 

报表如上图添加两个标签,一个标签普通用户可以查看,另一个标签管理员可以查看。
设置标签的隐藏性。
隐藏代码:
if(params["user"].value=='user'){   //如果参数值为user,则显示。
 false;
}else{


true;
}

关于隐藏性论坛有太多的教程了,自己搜索一下吧。


然后我们看页面代码:
<div>
<!-- 显示角色选择列表 -->
<select name='s1'>
<option value='user'>普通用户</option>
<option value='admin'>管理员</option>


</select>
</div>
<div>
<!-- 显示报表的iframe -->
<iframe id="iframe1" style='width:600px;height:500px;border:1px solid gray;'></iframe>
</div>




_showReport方法:
function _showReport(s){


var url="/birt2.3/preview?__report=/report/birthome/role1.rptdesign&user="+s.value;


document.getElementById('iframe1').src=url;

}



这里我想说一下,那个角色列表,我们在实际操作中,最后是通过后台得到一个角色列表。


运行结果如下:


 





第二种方法通过session的数据来处理。
先看一下页面。
<div>
<input type='button' value='显示报表'>
</div>
<div>
<iframe id="iframe1" style='width:600px;height:500px;border:1px solid gray;'></iframe>
</div>



_showReport()的代码如下:
function _showReport(){


var url="/birt2.3/preview?__report=/report/birthome/role2.rptdesign&__parameterpage=false";


document.getElementById('iframe1').src=url;

}



当然这里,我们是通过之前保存在session里的用户数据判断的,我把这个代码写在了jsp里,如下:
<%
request.getSession().setAttribute("user","admin");
%>



我们再看一下报表:
还是上面的报表,不过在报表的beforeFactory里加了以下的代码


importPackage(Packages.org.eclipse.equinox.http.servlet.internal);   //导入相关的类,其实这里是导入了包,你会发现,其实这个request和session并不是我们以为的request和session. 
var request = reportContext.getHttpServletRequest();
session = request.getSession();
var user = session.getAttribute("user");
reportContext.setParameterValue("user",user);   //改变参数的值。



上面其实没什么,得到request,得到session,其实重要的是发现这个request是哪个类,通过getHttpServletRequest这个名字我一开始以为是HttpservletRequest所以操作总出错。


运行效果大概就这样:
 



我相关的文件附上,省得出现一些其他问题。
 role.rar (4 K) 下载次数:33 

注意一下目录结构。
 


另外说一下,运行的时候,控制台会报个:
Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
这可能webviewer在哪里使用了javamial,加上javamail的包就行了。
一个是mail.jar,一个是activation-1.1.jar

 

[注明] 转载自: http://www.birthome.cn/read.php?tid-1119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值