成都心情

  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理 ::
  98 随笔 :: 2 文章 :: 501 评论 :: 1 Trackbacks

                                                                             

报表介绍

   
    BIRT 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。BIRT 也提供了图标引擎让你能为应用增加图标。
   
    当前发行的版本是 1.0.1。我们鼓励你下载、试用 BIRT,请通过 newsgroups and Bugzilla 向我们提意见。
   
    有了 BIRT,你可以为应用程序构建丰富的报表。
   
    列表 - 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
    图表 - 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。
    交叉表 - 交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。(交叉表在 1.0.1 中没有提供,但计划在将来提供。)
    信函和文档 - 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包括正文、格式、列表、图表等。
    混合报表 - 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。
   
    剖析一份报表
   
    BIRT 报表包含四个部分:数据、数据转换、业务逻辑、陈述。
    数据 - 数据库、Web 服务、Java 对象,这些都可以作为 BIRT 报表源。1.0.1 版本提供 JDBC 支持,也支持利用编码来获取其他地方的数据。BIRT 的 ODA(Open Data Access) 框架允许任何人构建新的 UI 以及运行时支持任何类型的表格式数据。未来,单一报表可包含从任意多个数据源获取数据。
   
    数据转换 - 报表通过对数据的分类、统计、过滤以及分组来适应用户需求。当然,数据库能实现这些功能,当遇到普通文件和 Java 对象时 BIRT 必须以 "simple" 数据源方式处理。BIRT 允许复杂的操作,比如总合分组、整体共计的百分比,等等。
   
    业务逻辑 - 真实世界的数据很少提供你理想的结构良好的报表。许多报表要求用具体逻辑把原始数据转换成用户的有用信息。如果该逻辑仅仅用于该报表,你可以用 BIRT 的 JavaScript 脚本支持。如果你的程序中已包含这些逻辑,你可以调用已有的 Java 代码。
   
    表现 - 一旦数据准备好了,你可以在很大的范围内选择表现形式。表格、图表、文字等等都可以。单一数据集可以有多种方式表现,而单一报表可以表现多个数据集。
   
J2EE 应用中的 BIRT
   
    BIRT 报表引擎以 JAR 文件方式打包,可以方便的添加到你的 J2EE 应用中。报表引擎是一系列的 POJO(Plain Old Java Objects),便于你可以在 JSP 页面集成报表。    

    BIRT 与你的应用有四个主要集成点:
   
        UI 参数 - 多数报表允许用户指定一些输入,这些数据叫做"报表参数"。例如,客户报表要求显示客户数据。你的参数页面可能是静态的:为每个报表进行用户定制设计。或者,可以使用参数元数据提供的动态页面,以便该单一页面为所有的报表提供服务。
       
        运行报表 - 用户提交表单参数时,你的 web 应用通过这些参数向 BIRT 报表引擎说明读取哪个报表设计文件,并读取数据,再产生报表输出。当引擎运行报表时 BIRT 的术语称为"工厂"。
   
        数据访问 - 报表如何从你的应用获得数据已在上面解释了。Java 程序通常利用 Java 对象为 BIRT 工厂提供数据。
   
        显示 - 附加的 JSP 页面,叫做阅读器,允许用户查看报表输出。
   
    一个报表应用程序包含一个参数页,你可以为每个报表创建自定义的 UI,或者使用 BIRT 带来的参数元数据提供单一报表来处理多种不同报表。
   
样品阅读器
    
    BIRT 项目提供一个样品 "viewer" 来帮你起步。样品阅读器常被用于在 Eclipse 中预览报表:BIRT 内置一个 Apache Tomcat 服务器,每次预览报表时调用。阅读器也可被用于任何与 JSP 兼容的 J2EE 服务器。
   
    BIRT 的 1.0.1 版本提供单一页面的 web 输出。计划在将来的版本中提供多页面输出,而且阅读器 UI 也将提供多页面之间的导航功能。
   
报表设计

     BIRT 应用开发从报表设计开始。基于 Eclipse 插件提供多种快速构建报表工具。
        
         数据浏览器 - 把你的数据源(连接)以及数据集(查询)组织起来。数据集编辑器允许你测试数据集,以确保报表接收数据的正确性。
         布局视图 - 所见即所得编辑器为你的报表提供以拽方式来创建表现内容。包含一个标准报表条目调色板。
         属性编辑器 - 以便利的格局表现大多数通用的用户属性使编辑更快速和容易。BIRT 也集成了标准 Eclipse 属性视图,为每个条目提供详细的属性列表。
         报表预览 - 你可以在任何时间采用真实数据测试你的报表。预览窗口直接内嵌在 Eclipse 中。
         代码编辑器 - 在访问数据以及报表生成或浏览时,脚本把业务逻辑添加给报表。在编辑脚本时代码编辑器提供标准的 Eclipse 特性:语法加色、自动完成等等。BIRT 用很简单的脚本来表达,expression builder 能更容易的创建这些表达。
         略图 - BIRT 报表被组织为一个树型结构作为整体报表的根,并且为样式、报表内容、数据源、数据集、报表参数等分类。略图视图提供你整个报表结构紧凑的预览。
         Cheat Sheets - 学习新工具永远是种挑战,但是 Eclipse 提供一种创新方案:cheat sheets。它们是一些帮助你完成新任务的文档。
        
数据定制
   
    正如前面所提到的,报表通常为要表现的数据添加业务逻辑。BIRT 提供多个工具来完成这一操作:
   
        栏位计算-数据库为存储组织数据,但这些数据通常为结合表现层而预先整理好。栏位计算让你能定义基于业务逻辑的附加数据集栏位。这种逻辑是一个简单的语法、脚本或调用一个已有的 Java 逻辑。
        输入以及输出参数-许多数据源都支持参数:在查询时传入或传出数据的能力。比如,SQL Select 语句可包含输入参数。存储过程既有传入又有传出参数。
        栏位元数据-当数据源提供的名字是 unintuitive 的,你可以提供栏位别名。
        过滤 - 有些数据源,尤其是 SQL,提供良好的内置过滤特性。然而,有些数据源(单纯的文件,应用程序对象)却没有提供过滤特性。另外,过滤器条件是定义在脚本或 Java 代码中的。你可把过滤器定义为报表的一部分,BIRT 引擎会自动调用它们。
        脚本化数据集 - 有些报表需要访问专门或不常用的数据。你可以在 Java 或脚本创建访问,利用脚本化数据集可在报表中集成这些逻辑。
       
条件格式化
   
    有些报表有着固定的格式,其他的却需要条件格式化。例如,某报表列出了交易记录来表现不同的销售与利润之比。或者,一个客户服务报表要按照不同规则进行色彩显示。BIRT 提供多个条件格式化特性:
   
    条件可见度 - 你可以根据数据隐藏报表元素。在上述的交易报表中,你可以创建销售和交易收入两部分,接着隐藏报表指定记录中不需要的部分。
   
    值映射 - 数据库数据通常使用代码值:M/F 代表男性或女性,1/2 代表销售和收入,等等。值映射让你定义一个从数据库值到显示值的映射。例如,我们可把值“1”对应到“Sale”,把“2”对应到“Return”。
   
    加强 - 简单的标识可让你对特定报表套用样式。例如,在客户服务报表中,我们可以使用绿色表示上一的计划,红色表示下一计划。
   
    脚本

    BIRT 提供基于 JavaScript(与知名的 ECMAScript 形式上相同)的脚本。JavaScript 经常作为客户端脚本语言,但是它也可以用于用于表达业务逻辑。特别的,JavaScript 能与你的现有 Java 逻辑进行良好集成,能非常轻松地从 BIRT 报表调用业务逻辑。
   
    BIRT 提供从 JavaScript 对象访问报表对象模型(Report Object Model)的整套方案:同时表现报表设计和运行时的状况,允许报表的完全控制处理甚至最复杂的报表格式化工作。
   
项目管理

    BIRT 集成了 Eclipse 项目管理特性来组织相关报表。BIRT 也可以与 Eclipse CVS 协作进行源码管理。BIRT 的 XML 报表设计格式让它能容易的比较两份报表,或者两个不同版本的相同报表,并跟踪变更。
   
    样式

    任何设计 web 页面的人都知道有时会反复使用相同的样式。CSS 允许 web 设计者从内容中提取样式信息,并复用样式。
   
    BIRT 提供类似的特性。当然,BIRT 样式也是基于 CSS 的,这样使得网页应用开发人员能容易得设计 BIRT 表现形式。BIRT 样式可堆叠,允许你在一个地方设置样式后套用到所有报表或报表的一部分或单一报表中。
   
    库

    典型的应用中会包括许多有关联的报表。一个简单的客户应用将包括一个按照字母排序的客户列表、按照地理位置分类的客户群,为客户指定的销售代表,客户身份筛选等等。总之,用户不停的地变化报表以解决具体业务需要。
   
    这样一来,最终的报表应用将包含多组相关报表。相同的数据源、样式、业务逻辑、报表条目。
   
    将来的 BIRT 版本将包含组织这些共享资源的支持库。这些库可包含任何报表元素,比如样式、数据源、报表条目、脚本等等。
   
国际化

    全世界都可以访问你的 web 应用程序。BIRT 为国际化和本地化提供良好的支持。
   
    文本本地化 - 你可以建立一份把字符串自动变成用户本地语言显示的简单报表。所有的表单和报表文本都能以标准的 Java 本地化规则进行翻译。在运行时,BIRT 使用资源 key 找出文本的正确翻译。
   
    本地化 - BIRT 提供 locale-aware 格式化数据,意味着对于美国用户的日期数据可以以 mm/dd/yy 的格式出现,而欧洲用户则是 dd-mm-yy 格式。
   
    动态格式化 - 中文文本非常紧凑,德文有时又有点冗长,而英文正好是中等大小。BIRT 自动调整报表条目的大小来适合其中的内容,避免每次翻译都要进行报表测试。
   
扩展性

    报表应用程序的范围是十分庞大的,BIRT 团队不能为每个应用提供很具体的特性。可利用 BIRT 脚本来扩展 BIRT,另外还可构建 BIRT 扩展插件到 BIRT 中。
    
    数据访问
   
    BIRT 提供 ODA(Open Data Access) 框架来支持自定义数据访问方法。数据访问的范围还包括一个获取数据的运行时组件。也包括构建自定义查询的自定义设计时 UI。例如,打包后的应用程序可以让 ODA 构建数据访问 UI 并运行在自己的数据模型中。
    
    报表栏目
   
    BIRT 为要表现的数据提供一致的报表栏目集。可以在应用程序中自定义附件报表栏目,并像 BIRT 自身的报表栏目一样运行在设计器和引擎中。例如,性能管理应用程序要添加报表栏目来高亮显示停止项、尺度表以及其他用来衡量性能的可视标志。
   
    图表类型
   
    BIRT 图表包提供了很多的图表类型。但是,一些行业需要很特殊的图表样式。开发者可以在 BIRT 图表引擎中创建图表插件来提供这些图表样式。
   
    输出格式
   
    BIRT 1.0.1 支持输出到 HTML 和 PDF。当然,也可能需要其他类型输出:Excel、RTF(Rich Text Format)、SVG(Scalable Vector Graphic)、图像、等等。BIRT 在今后会提供其中一些,除开这些的其他格式可能需要的用户就很少了。开发者可利用 BIRT 引擎接口添加转换器以达到目的。


请注意!引用、转贴本文应注明原译者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen

posted on 2005-12-17 13:37 Rosen 阅读(9399) 评论(9)  编辑  收藏 所属分类: Java EE 服务器端

评论

# re: BIRT 总览(翻译) 2006-09-07 14:46 成都小弟
师兄,birt中怎么设置把Java 对象作为数据源啊????还有能给我看段在工程中怎么呈现出birt中的报表的代码吗???

谢了哈!!!  回复  更多评论
  

# re: BIRT 总览(翻译) 2006-09-07 18:03 Rosen
@成都小弟
很惭愧,没有在实际项目中应用,翻译本文是为了在下次用的时候有个准备,因为BIRT是可以和水晶报表媲美的产品。呵呵  回复  更多评论
  

# re: BIRT 总览(翻译) 2006-09-07 23:06 江南白衣
@ 成都小弟
你的问题springside 里有demo  回复  更多评论
  

# re: BIRT 总览(翻译) 2006-09-08 09:10 成都小弟
哦,苦命啊!!!继续研究!!  回复  更多评论
  

# re: BIRT 总览(翻译) 2006-09-08 09:16 Rosen
@成都小弟
没关系,白衣是 springside 项目的 leader,相信看了 demo 会收获不少。:)
刚才在 onjava 上面看到这篇文章,http://www.onjava.com/pub/a/onjava/2006/07/26/deploying-birt.html。  回复  更多评论
  

# re: BIRT 总览(翻译) 2006-12-30 10:57 书强陈
IREPORT 对已java bean 为数据源 解决的很好

BIRT 好像还不星 有点 郁闷 我们现在是 找到 REPORT的 所有 功能BIRT 都有才能采用 不然 很多问题解决不了
  回复  更多评论
  

# re: BIRT 总览(翻译) 2008-05-29 15:39 922MBB
去www.actuatechina.com的BIRT论坛看看吧,那里能找到答案:)  回复  更多评论
  

# re: BIRT 总览(翻译) 2008-06-13 16:30 fy_kenny
是有很多问题.  回复  更多评论
  

# re: BIRT 总览(翻译) 2009-03-30 17:20 Divine
@Rosen
Birt在处理大数据量时还是要差一点。但水晶报表自定义能力太差。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问