`
cyfgod
  • 浏览: 63974 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何实现基于Web2.0的BIRT Viewer应用

    博客分类:
  • BIRT
阅读更多
BIRT Viewer是一个基于web/ajax/J2EE的简单实用,带有示例性质的BIRT报表预览器。但我们在实际的项目整合中,往往都需要对它进行必要的功能上的扩充。其中,有一个很典型的应用,就是如何实现类似Google Map API哪样的功能,将报表灵活方便的插入到实际应用的页面上。这样可以非常方便的将报表服务与其它应用完全分离开来,在逻辑上和物理上都可以不再需要整合在一起。这样,我们完全可以在基于ASP/PHP或其它非J2EE应用中插入报表内容。BIRT Viewer中并没有提供相关的JS库,但商业化产品Actuate10中已提供了相关的JS库,可以很方便灵活布署报表应用。

我们知道,基于ajax的应用都有一个很大的硬伤,就是浏览器Cross Domain跨域的问题,网上也有很多种的解决方案。总的来说,无怪忽就这几种:

1) 采用按需(On-Demand)Javascript脚本。也就是利用<script>的src属性,可以动态生成src指向别的网址,从而获取返回的Javascript脚本,一般都返回JSON的消息。这种方式比较麻烦,特别是复杂的应用,需要server端更多的支持。

2) 采用Ajax扩展,也就是类似Proxy代理机制。在同一域的服务器端建一个Ajax Proxy代理,浏览器直接向该代理发送请求,然后由该Ajax代理向其它域的服务器发请求,得到回复后经处理(或原封不动)发回到浏览器端。这种解决方案笔者认为是最好的,也是最成熟可用的。网上也有一些这方面的实现可以参考,这里有一个笔者一直在采用的,大家可以研究一下:http://beyrent.net/2007/01/25/ajax-extended/。该实现最大的问题就是只提供了基于PHP的实现,如果大家采用J2EE,需要自已去将PHP转为J2EE的实现。稍微有点麻烦。

3) 采用iframe的所谓坑道技术。在一个页面中,动态或直接插入一个指入它域的iframe,两个网页通过改变对方的ahchor hash fragment(...#hash)来传输数据。因为改变一个网页的anchor hash fragment值,并不会使浏览器重载,也不会改变当前浏览器状态。我们就可以引入一个定时器,定时对anchor hash的变化进行监测,从而响应相关的操作。这种办法最简单,改动的代码量相对来说是最小的。但相应的问题也很多,首先引入iframe就有安全方面的问题,很多浏览器有限制;另外通过URL的方式传数据,有长度的限制,一般不超过2048字节;还有就是效率的问题,采用timer定时器,效率的问题会很突出。虽然有这样哪样的问题,但不失一种特别的解决方案。笔者也对此做过较深入的研究。

附件里的实现就是采用第三种方式,代码比较简单,也很粗,希望能给大家有所帮助。还有如果要实现交互的功能,请大家自已修改服务器端的JS代码(^_^),如showParameterDialog等等操作。
4
3
分享到:
评论

相关推荐

    birt viewer源代码

    Birt是Eclipse的项目,用来开发报表。BirtViewer是Birt查看报表的Web程序。这个资源是BirtViewer的源代码,供学习使用。

    BIRT Viewer User’s Guide

    对BIRT Viewer的Servlet有详细介绍,并提供web.xml中相关的配置参数的说明,含有目录,检索方便。 the following contents are based on BIRT 2.3, earlier or later version compatibility is not guaranteed

    BirtViewer参数设置详解

    自己在使用时,整理的一个说明文档,希望能给需要的人带来帮助

    web项目集成birt

    如果你用想引入birt报表工具,值得学习一下。

    Birt report viewer 汉化文件

    Birt report viewer 汉化文件

    如何构建Birt报表应用程序

    如何构建Birt报表应用程序,里面对构建birt报表应用程序有极详细的介绍

    BIRT报表应用

    BIRT报表应用

    birt 报表 jsapi 集成教程

    安讯为用户在自己的应用中集成百灵报表提供了多种集成方式,包括URL, Web Service,以及Web2.0 JS API。安讯从A10系列开始提供了新一代的Web2.0 JS API,它让用户仅需编写少量的JavaScript代码,就可以将百灵报表...

    BIRT报表应用预研报告

    BIRT报表应用预研报告 BIRT报表应用预研报告

    BIRT 报表 RCP Report Viewer

    BIRT 报表 RCP Report Viewer 找了好久没有找到关于 BIRT 集成到RCP中的文章,现在先发两个例子先,详细待日后补充: Example of using the Report Viewer in an RCP application 见附件:

    BIRT 3.7 Report Design

    key capabilities of the BIRT Designer, BIRT Runtime APIs, and BIRT Web Viewer. This information should be interesting to report designers as well as to developers or architects involved in integrating...

    BIRT报表服务端应用程序2

    BIRT报表服务端应用程序,BIRT报表服务端应用程序

    论文研究-基于BIRT的报表开发 .pdf

    基于BIRT的报表开发,夏俊,邹仕洪,BIRT是一个基于Eclipse 的开放源代码报表系统,主要用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成:一个基于Eclipse的报表设计��

    eclipse整合birt开发web

    eclipse整合birt开发web BIRT项目最初是2005年夏季发布,如今其下载量已过百万,充分的说明了其受欢迎的程度。可以访问BIRT的官方网站:http://www.eclipse.org/birt,这里有关于BIRT的介绍、教程、下载包、示例等等...

    BIRT报表开发手册

    BIRT Business Intelligence and Reporting Tools 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统 特别之处在于它是以 Java 和 JavaEE 为基础 BIRT 有两个主要组件:基于 Eclipse 的报表设计器 以及部署到应用...

    如何构建一个Birt报表应用程序

    如何构建一个Birt报表应用程序 构建一个报表的必须工作: 创建和配置报表引擎 单个报表引擎可以通过创建多个设计器来生成多个报表。通过Platform.createFactoryObject( )方法创建一个ReportEngine对象。设置BIRT...

    java Web项目集成Birt4.4.2.doc

    java web项目集成Birt4.4.2 非maven 项目

Global site tag (gtag.js) - Google Analytics