`
kanpiaoxue
  • 浏览: 1781900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

birt 的权限控制

    博客分类:
  • 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

分享到:
评论

相关推荐

    Android应用源码之FlappyBird像素鸟Unity+cocos2dx项目_FlappyBird.zip

    4. AndroidManifest.xml:Android应用的主要配置文件,定义了应用的基本信息和权限需求。 5. Gradle相关文件:用于构建和打包Android应用的配置。 四、学习与实践 对于想要学习游戏开发的初学者,这个项目提供了一...

    bird-front:bird前端项目,基于react、antd、antd-admin,封装常用数据组件,细粒度权限解决方案

    权限方案bird-front对资源权限进行了全新设计,支持细粒度的权限控制(按钮级)。前端的权限应该控制什么?资源的可见性。其包括:路由的可见性。页面中按钮的可见性。在登录时获取用户拥有的权限集合,在前端存储。...

    飞翔的圆(类似flappy bird)android小游戏源码

    "飞翔的圆"是一款基于Android平台的简单但极具挑战性的休闲游戏,其灵感来源于曾经风靡全球的"Flappy Bird"。游戏的核心玩法是玩家通过持续点击屏幕来控制圆形角色不断跳跃,避免与竖直排列的障碍物碰撞,从而尽可能...

    BlueBird-开源

    5. **权限管理**:BlueBird在提供服务的同时,会根据用户的设定,对不同类型的蓝牙设备进行权限管理,以保护用户的隐私。 6. **API接口**:为了让开发者可以将BlueBird集成到其他应用中,软件可能会提供API接口,...

    Android应用源码FlappyBird像素鸟Unity+cocos2dx项目

    在Flappy Bird的实现中,游戏逻辑的核心部分是鸟的飞行控制和管道的生成与碰撞检测。鸟的飞行通常是通过重力和一个向上推力的物理模拟来实现的,而管道则需要动态生成并在屏幕上移动,同时判断是否与鸟发生碰撞。...

    Android应用源码之FlappyBird像素鸟Unity+cocos2dx项目-IT计算机-毕业设计.zip

    在源码中,我们可以找到AndroidManifest.xml文件,它是应用的配置文件,记录了应用的基本信息、权限需求和组件声明;再如Activity类的实现,它是Android应用的基本运行单元,负责处理用户交互。 其次,Unity是一款...

    ZombieBird:适用于 Android 的 Flappy Bird 的克隆。 旨在学习 Android Studio 并练习游戏开发的基础知识

    `java`目录下是Java源代码,`res`包含了各种资源文件,如布局文件、图片、音频等,而`AndroidManifest.xml`在`manifests`目录中,它定义了应用程序的基本信息和权限。 在ZombieBird游戏中,游戏逻辑主要通过实现...

    hummingBird:蜂鸟虽小,五脏俱全

    蜂鸟项目说明基于SpringBoot、MyBatis、Shiro框架,开发的一套系统具有如下特点灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求完善的部门管理及数据权限,通过注解实现数据权限的控制完善的XSS防范及...

    远程监视、控制系统应用嵌入式Linux.pdf

    其次,作为一个多任务实时操作系统,Linux提供了严格的权限保护和控制。此外,Linux是开源的,这意味着它获得了众多公司的支持,包括免费的C、C++编译器和Java环境,降低了开发成本。 技术实现方面,TCP/IP协议成为...

    flappy_bird:移动设备应用程序开发课程的短期任务5(Flappy Bird)-学生

    在这个项目中,学生将学习如何使用Java语言来实现类似Flappy Bird的游戏机制,包括鸟的飞行控制、管道的生成与碰撞检测,以及分数计算等核心功能。 【标签】"Java" 表明该项目主要使用Java语言进行编程,这是...

    Bird Flight:Android App游戏-开源

    例如,可能会有一个Bird类来表示游戏中的主角,一个GameLoop类负责游戏的帧率控制和物理模拟,还会有各种Activity和Fragment来处理不同的屏幕和用户交互。通过阅读和理解这些代码,你可以学习到如何使用Android SDK...

    african-bird-atlas-api

    在"african-bird-atlas-api-master"这个压缩包中,可能包含了这些资源,比如API的使用指南、代码示例和数据模型说明。 9. **数据更新和版本控制**:API可能会定期更新,以添加新功能或修正错误。了解API的版本控制...

    bird-bingus-box:一堆Discord机器人测试和东西

    8. **命令处理**:如何解析用户输入的命令,以及设置命令参数和权限控制。 9. **数据库集成**:如果机器人需要存储用户数据或状态,可能涉及到与MongoDB、Redis等数据库的集成。 10. **错误处理和日志记录**:良好...

    android-game-example:Android 平台上的示例游戏。 类似于 Flappy Bird

    在游戏开发中,会用到Activity管理、Intent通信、资源管理、权限控制等SDK组件。 4. **游戏循环(Game Loop)**:所有游戏都基于游戏循环运行,它是游戏不断更新和渲染的基础。在Flappy Bird的示例中,游戏循环将...

    PHP面向对象 课程

    2. **访问控制**:通过`public`、`private`、`protected`控制属性和方法的访问权限。 ```php class PrivateClass { private $secret; // 私有属性 public function showSecret() { return $this-&gt;secret; } } ...

    Mantis1.2.18问题管理系统官方原版-源码

    - **权限控制**:精细的权限设置,可控制用户对项目的访问、编辑和报告权限。 - **版本控制**:与常见的版本控制系统(如Git、SVN)集成,方便查看代码修改与问题关联。 - **通知系统**:通过邮件自动通知相关...

    chrome-extension-twitter-bird-goo:适用于Twitter的Chrome扩展实验

    8. **用户权限管理**:知道如何合理请求和使用Chrome扩展的权限,如读取和修改特定网站的数据、访问浏览器存储等。 9. **持续集成/持续部署(CI/CD)**:如果开发者使用自动化测试和部署流程,可能涉及Git版本控制、...

    一个安卓小游戏的运行,下载即可运行

    2. 游戏开发:关于Flappy Bird的克隆或变体,以及游戏开发的基本流程和版本控制。 3. 移动应用用户体验:如何通过简化安装和运行步骤提升用户体验。 4. Android权限管理:用户在运行应用前需要给予的权限,如读写...

    联阵CTR黄鸟选项卡「RUF CTR Yellow Bird Tab」-crx插件

    -在此处进行检查:https://github.com/happyheyb/tab/tree/master/ruf-ctr-yellow-bird-tab-01 *不需要奇怪的权限。 *没有间谍软件或其他古怪的东西。 如果您喜欢,请给我一个不错的5星级评论。 谢谢。 对于其他...

Global site tag (gtag.js) - Google Analytics