`
primer_2004
  • 浏览: 123276 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[集]Crystal Reports develop by Java

    博客分类:
  • Java
阅读更多
[集一]中文站点:一定要看
http://www.softonline.com.cn/crystal/index.htm



[集二]API 文档地址
URL
Viewers Java API Reference



[集三]Crystal Reports for Eclipse: 1.0 [下载]
http://diamond.businessobjects.com/node/440



[集四]功能一览
http://www.softonline.com.cn/crystal/crystalreports/index.htm



[集五]Crystal Reports for BEA Weblogic Workshop
--在BEA WebLogic Workshop应用程序中嵌入报表

  随着最近BEA WebLogic Workshop的功能集中加入了嵌入式报表功能,现在已经可以在您的JavaServerPage(JSP)中处理和呈现行业标准的报表模板了。本文讨论了嵌入式报表的要求,并特别讨论了报表基础架构的一般要求。它还演示了如何把现有的报表模板添加到Workshop项目中,并把这些报表部署到WebLogic的J2EE应用服务器上。

  本系列随后的文章将讨论基于JDBC/JNDI数据源设计新报表,以及在分阶段和部署场景下配置数据访问的过程。

手写代码的报表
  最近,一项针对职业Java开发人员进行的独立调查表明,47%的Java开发人员通过手写代码的方式在其应用程序中实现报表。另外的11%意识到,对每个项目从头开始手动生成报表是一种效率极低的做法,而且他们已经内部开发出他们自己的报表框架。调查还指出,Java开发人员要花上三分之一的工作时间开发和维护这些报表,以满足最终用户不甚明确、而且不断变化的信息需求。

  任何定制应用程序开发项目的成功都是由最终用户社区采用该应用程序的程度来衡量的。决定成功的最小度量是用户从应用程序中提取有用信息的方便性。因此,报表是大多数定制应用程序开发计划取得成功的不可或缺的部分。

  如果开发团队选择内部实现报表基础架构,那么实际上,为最终用户开发报表是一个代码密集型的过程,应该把这个过程合并到每个项目计划中。然而,在定制应用程序中嵌入报表通常在项目的后期阶段完成,这种事后做法有助于项目的进展。不论开发团队选择构建还是购买嵌入式报表功能,应该首先估计最终用户的报表需求以及实现前后的相关开销。

嵌入式报表设计模型

  在每一个定制应用程序开发项目中,开发人员和架构师遇到的都是一些重复性的常见报表需求。因此,开发一个可以满足这些需求并可跨多个项目重用的报表框架是可行的。应用于这个问题的常见报表需求和最佳实践集构成了一个报表设计模式,开发团队可以利用这个模式来降低应用程序数据表示不足的风险。

一个嵌入式报表框架必须支持:

  • 对报表作者和应用程序最终用户之间的嵌入式报表进行快速、迭代的设计时原型设计
  • 以多种方式——在线、打印/编页,以及流行的电子文件格式——查看报表中包含的信息,而不用针对每种格式重构报表
  • 解除报表基础架构和核心应用程序之间的耦合,以提高可维护性并减少QA开销
  • 胖客户端表示质量和零客户端范围内的交互性
  • 参数化数据,以便把结果集放在环境中使用

  借助Workshop的最新版本,BEA已经意识到嵌入式报表在应用程序开发生命周期中扮演的角色,并通过Crystal Report的一个定制版本提供内置的报表功能。另一种选择是对J2EE应用程序的报表方面进行手写编码,或者开发一个内部的报表框架。Crystal Reports for BEA WebLogic Workshop加速了访问、格式化和集成JSP中的应用程序数据的过程。

使用页面流的嵌入式报表
  Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架构。这可以大大减少开发定制应用程序报表方面所需的时间。报表模板文件是底层数据模型的代理。视图是Crystal Viewer,它代表基于浏览器的用户界面的所有可视化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它负责连接模型和视图,并使这两个组件之间能够进行通信。

  出于本文的需要,我们已经创建了一个叫做EmeddedReportingDemo.work的WebLogic Workshop应用程序,它包含一个叫做EmeddedReportingDemoWeb的项目。EmeddedReportingDemoWeb自动包含一个Workshop生成的index.jsp、error.jsp文件,以及一个Java Page Flow Controller文件(Controller.jpf)。我们将添加一个报表查看器给Java Server Page(JSP),并使用向导选择一个随后能够在这个JSP中运行的报表。

  如下图所示,Crystal Reports Java Reporting Component与BEA WebLogic Workshop捆绑在一起,使用保存在WorldSalesReport.rpt模板中的报表元数据来连接到应用程序的JDBC数据源并生成所需的数据结果集。然后,格式化的结果集被传递给由viewreport.jsp创建的Crystal Report Viewer,Crystal Report Viewer则将数据以HTML的形式传送给浏览器客户端。Crystal Viewer支持胖客户端的事件模型,允许浏览器客户端对聚合的报表数据进行操作,可以本地打印报表,也可以将报表重新生成各种流行的电子文件形式。EmeddedReportingDemoWeb项目唯一的目的就是提供一个Crystal Report Viewer处理和表现单一报表模板文件(.RPT)的工作示例,从JSP页面内部部署到BEA WebLogic应用服务器。

  注意:报表模板是使用Crystal Reports for BEA WebLogic Workshop桌面报表设计器生成的,您可以在BEA WebLogic Workshop IDE中直接下载这个设计器。

在JSP页面中嵌入Crystal报表
步骤1 创建EmbeddedReportingDemo应用程序
  要创建该项目,从Workshop File菜单中选择New/Application。把应用程序命名为EmbeddedReportingDemo。选择“默认的”应用程序类型。选择Create。

  为了嵌入我们将在这个例子中使用的定制JSP查看器标签,选择EmbeddedReportingDemoWeb项目;使用右击菜单选项选择Install/Crystal Reports。这将会安装Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在项目目录节点下,您将会看到一个名为crystalreportviewers10的新子目录,以及您的/WEB-INF/classer子目录中的CrystalReportEngine-config.xml文件。它还将在您的WEB-INF子目录中添加crystal-tags-reportviewer.tld标签库定义。

  您将注意到,项目已经有一个index.jsp和一个error.jsp文件。让我们把index.jsp重新命名为viewreport.jsp,方法是选择该文件,然后使用右击菜单选项。双击文件controller.jpf。打开Begin动作中的代码,方法是选中它,然后选择Source选项卡。修改Begin动作的forward属性,使其指向viewreport.jsp,然后对源代码进行相应的修改使其查看viewreport。

步骤2 给您的JPS页面添加Crystal Viewer
  现在,您需要给您的JSP页面添加Crystal Viewer。首先通过双击文件viewreport.jsp来选择它。在设计视图中,您可以去掉标题“New Web Application Page”,方法是选中并删除它。从Tag调色板把Crystal Decisions Viewer拖放到jsp上您想要看到报表的地方。一个向导将会出现。键入SalesReport作为这个查看器实例的名称。在Existing File栏中浏览World Sales Report.rpt报表。Crystal Reports for BEA WebLogic Workshop桌面报表设计器中也有这个报表,具体位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。选中该.rpt文件。选择Next。BEA Workshop需要知道在您的项目结构中,您想在哪里保存报表模板的一个副本。选择WEB-INF。选择OK。该报表将被复制到您的目录结构中,具体位置是<应用程序目录>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。

步骤3 定制查看器
  下一个对话框允许您定制查看器的外观和行为。显示的值是默认值;因此,如果您没有显式地设定值,插入的代码中不会设置属性。对于这个例子来说,我们尚未定制Crystal Viewer。



步骤4 编译您的应用程序,将其部署到WebLogic Application Server上
  在Workshop IDE的开发/测试环境中,可以直接在WebLogic Server上测试应用程序。选中文件Controller.jpf。如果要在调试模式中运行应用程序以检查错误,选择菜单项Debug/Start。

  要部署到生产服务器,或许是远程服务器上,您将要创建一个EAR文件。要生成一个EAR文件,选择Build/Build EAR。现在,在您的应用程序根目录中将有一个名为EmbeddedReportingDemo.ear的文件。要想现在就把这个EAR文件部署到生产服务器上,遵循下面的步骤(您可以在Workshop在线帮助中找到这些步骤):

1. 打开以生产模式运行的目标服务器的WebLogic Server控制台。
2. 在左边的导航窗格上,打开Deployments节点。
3. 在左边的导航窗格上,打开Applications节点。
4. 在右边的内容窗格上,点击Deploy a New Application。
5. 点击upload your file(s)。
6. 点击Browse按钮。
7. 在Choose file对话框中,定位您要部署的EAR文件,然后点击Open。
8. 点击Upload。
9. 选择您想要部署的EAR文件,然后点击Continue。
10. 点击Deploy。

  控制台将显示应用程序的已部署模块(EJB和web应用程序)的一个列表。

  现在,可以通过打开您的浏览器并键入该应用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)来运行它。

  World Sales Report将由Java Reporting Component进行处理。然后,Crystal Viewer实例将把报表以HTML的形式呈现在您的浏览器界面中。注意,您可以通过探求多层一直到底层数据与报表交互。您还可以本地打印该报表,或者将其导出为各种电子文件格式。

步骤5 让最终用户与其交互
  它非常简单。如果您有现成的Crystal报表,您现在就可以在BEA WebLogic Workshop中使用它们。如果您没有,您可以试着使用直观的设计器设计。如上所示,只需进行一些简单的步骤,便可在您的JSP页面中呈现报表。而且,如果最终用户的需求不断变化,也可以很容易地更新报表,而不会影响到您的核心应用程序业务逻辑。

其他资源
  想要了解关于Crystal Reports for BEA WebLogic Workshop的其他信息,请参考集成的BEA Workshop在线文档,或者访问Crystal Decisions JavaZone开发者社区,网址是http://www.businessobjects.com/products/dev_zone/java/。 <!---->


[集一]中文站点:一定要看
http://www.softonline.com.cn/crystal/index.htm



[集二]API 文档地址
URL
Viewers Java API Reference



[集三]Crystal Reports for Eclipse: 1.0 [下载]
http://diamond.businessobjects.com/node/440



[集四]功能一览
http://www.softonline.com.cn/crystal/crystalreports/index.htm



[集五]Crystal Reports for BEA Weblogic Workshop
--在BEA WebLogic Workshop应用程序中嵌入报表

  随着最近BEA WebLogic Workshop的功能集中加入了嵌入式报表功能,现在已经可以在您的JavaServerPage(JSP)中处理和呈现行业标准的报表模板了。本文讨论了嵌入式报表的要求,并特别讨论了报表基础架构的一般要求。它还演示了如何把现有的报表模板添加到Workshop项目中,并把这些报表部署到WebLogic的J2EE应用服务器上。

  本系列随后的文章将讨论基于JDBC/JNDI数据源设计新报表,以及在分阶段和部署场景下配置数据访问的过程。

手写代码的报表
  最近,一项针对职业Java开发人员进行的独立调查表明,47%的Java开发人员通过手写代码的方式在其应用程序中实现报表。另外的11%意识到,对每个项目从头开始手动生成报表是一种效率极低的做法,而且他们已经内部开发出他们自己的报表框架。调查还指出,Java开发人员要花上三分之一的工作时间开发和维护这些报表,以满足最终用户不甚明确、而且不断变化的信息需求。

  任何定制应用程序开发项目的成功都是由最终用户社区采用该应用程序的程度来衡量的。决定成功的最小度量是用户从应用程序中提取有用信息的方便性。因此,报表是大多数定制应用程序开发计划取得成功的不可或缺的部分。

  如果开发团队选择内部实现报表基础架构,那么实际上,为最终用户开发报表是一个代码密集型的过程,应该把这个过程合并到每个项目计划中。然而,在定制应用程序中嵌入报表通常在项目的后期阶段完成,这种事后做法有助于项目的进展。不论开发团队选择构建还是购买嵌入式报表功能,应该首先估计最终用户的报表需求以及实现前后的相关开销。

嵌入式报表设计模型

  在每一个定制应用程序开发项目中,开发人员和架构师遇到的都是一些重复性的常见报表需求。因此,开发一个可以满足这些需求并可跨多个项目重用的报表框架是可行的。应用于这个问题的常见报表需求和最佳实践集构成了一个报表设计模式,开发团队可以利用这个模式来降低应用程序数据表示不足的风险。

一个嵌入式报表框架必须支持:

  • 对报表作者和应用程序最终用户之间的嵌入式报表进行快速、迭代的设计时原型设计
  • 以多种方式——在线、打印/编页,以及流行的电子文件格式——查看报表中包含的信息,而不用针对每种格式重构报表
  • 解除报表基础架构和核心应用程序之间的耦合,以提高可维护性并减少QA开销
  • 胖客户端表示质量和零客户端范围内的交互性
  • 参数化数据,以便把结果集放在环境中使用

  借助Workshop的最新版本,BEA已经意识到嵌入式报表在应用程序开发生命周期中扮演的角色,并通过Crystal Report的一个定制版本提供内置的报表功能。另一种选择是对J2EE应用程序的报表方面进行手写编码,或者开发一个内部的报表框架。Crystal Reports for BEA WebLogic Workshop加速了访问、格式化和集成JSP中的应用程序数据的过程。

使用页面流的嵌入式报表
  Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架构。这可以大大减少开发定制应用程序报表方面所需的时间。报表模板文件是底层数据模型的代理。视图是Crystal Viewer,它代表基于浏览器的用户界面的所有可视化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它负责连接模型和视图,并使这两个组件之间能够进行通信。

  出于本文的需要,我们已经创建了一个叫做EmeddedReportingDemo.work的WebLogic Workshop应用程序,它包含一个叫做EmeddedReportingDemoWeb的项目。EmeddedReportingDemoWeb自动包含一个Workshop生成的index.jsp、error.jsp文件,以及一个Java Page Flow Controller文件(Controller.jpf)。我们将添加一个报表查看器给Java Server Page(JSP),并使用向导选择一个随后能够在这个JSP中运行的报表。

  如下图所示,Crystal Reports Java Reporting Component与BEA WebLogic Workshop捆绑在一起,使用保存在WorldSalesReport.rpt模板中的报表元数据来连接到应用程序的JDBC数据源并生成所需的数据结果集。然后,格式化的结果集被传递给由viewreport.jsp创建的Crystal Report Viewer,Crystal Report Viewer则将数据以HTML的形式传送给浏览器客户端。Crystal Viewer支持胖客户端的事件模型,允许浏览器客户端对聚合的报表数据进行操作,可以本地打印报表,也可以将报表重新生成各种流行的电子文件形式。EmeddedReportingDemoWeb项目唯一的目的就是提供一个Crystal Report Viewer处理和表现单一报表模板文件(.RPT)的工作示例,从JSP页面内部部署到BEA WebLogic应用服务器。

  注意:报表模板是使用Crystal Reports for BEA WebLogic Workshop桌面报表设计器生成的,您可以在BEA WebLogic Workshop IDE中直接下载这个设计器。

在JSP页面中嵌入Crystal报表
步骤1 创建EmbeddedReportingDemo应用程序
  要创建该项目,从Workshop File菜单中选择New/Application。把应用程序命名为EmbeddedReportingDemo。选择“默认的”应用程序类型。选择Create。

  为了嵌入我们将在这个例子中使用的定制JSP查看器标签,选择EmbeddedReportingDemoWeb项目;使用右击菜单选项选择Install/Crystal Reports。这将会安装Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在项目目录节点下,您将会看到一个名为crystalreportviewers10的新子目录,以及您的/WEB-INF/classer子目录中的CrystalReportEngine-config.xml文件。它还将在您的WEB-INF子目录中添加crystal-tags-reportviewer.tld标签库定义。

  您将注意到,项目已经有一个index.jsp和一个error.jsp文件。让我们把index.jsp重新命名为viewreport.jsp,方法是选择该文件,然后使用右击菜单选项。双击文件controller.jpf。打开Begin动作中的代码,方法是选中它,然后选择Source选项卡。修改Begin动作的forward属性,使其指向viewreport.jsp,然后对源代码进行相应的修改使其查看viewreport。

步骤2 给您的JPS页面添加Crystal Viewer
  现在,您需要给您的JSP页面添加Crystal Viewer。首先通过双击文件viewreport.jsp来选择它。在设计视图中,您可以去掉标题“New Web Application Page”,方法是选中并删除它。从Tag调色板把Crystal Decisions Viewer拖放到jsp上您想要看到报表的地方。一个向导将会出现。键入SalesReport作为这个查看器实例的名称。在Existing File栏中浏览World Sales Report.rpt报表。Crystal Reports for BEA WebLogic Workshop桌面报表设计器中也有这个报表,具体位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。选中该.rpt文件。选择Next。BEA Workshop需要知道在您的项目结构中,您想在哪里保存报表模板的一个副本。选择WEB-INF。选择OK。该报表将被复制到您的目录结构中,具体位置是<应用程序目录>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。

步骤3 定制查看器
  下一个对话框允许您定制查看器的外观和行为。显示的值是默认值;因此,如果您没有显式地设定值,插入的代码中不会设置属性。对于这个例子来说,我们尚未定制Crystal Viewer。



步骤4 编译您的应用程序,将其部署到WebLogic Application Server上
  在Workshop IDE的开发/测试环境中,可以直接在WebLogic Server上测试应用程序。选中文件Controller.jpf。如果要在调试模式中运行应用程序以检查错误,选择菜单项Debug/Start。

  要部署到生产服务器,或许是远程服务器上,您将要创建一个EAR文件。要生成一个EAR文件,选择Build/Build EAR。现在,在您的应用程序根目录中将有一个名为EmbeddedReportingDemo.ear的文件。要想现在就把这个EAR文件部署到生产服务器上,遵循下面的步骤(您可以在Workshop在线帮助中找到这些步骤):

1. 打开以生产模式运行的目标服务器的WebLogic Server控制台。
2. 在左边的导航窗格上,打开Deployments节点。
3. 在左边的导航窗格上,打开Applications节点。
4. 在右边的内容窗格上,点击Deploy a New Application。
5. 点击upload your file(s)。
6. 点击Browse按钮。
7. 在Choose file对话框中,定位您要部署的EAR文件,然后点击Open。
8. 点击Upload。
9. 选择您想要部署的EAR文件,然后点击Continue。
10. 点击Deploy。

  控制台将显示应用程序的已部署模块(EJB和web应用程序)的一个列表。

  现在,可以通过打开您的浏览器并键入该应用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)来运行它。

  World Sales Report将由Java Reporting Component进行处理。然后,Crystal Viewer实例将把报表以HTML的形式呈现在您的浏览器界面中。注意,您可以通过探求多层一直到底层数据与报表交互。您还可以本地打印该报表,或者将其导出为各种电子文件格式。

步骤5 让最终用户与其交互
  它非常简单。如果您有现成的Crystal报表,您现在就可以在BEA WebLogic Workshop中使用它们。如果您没有,您可以试着使用直观的设计器设计。如上所示,只需进行一些简单的步骤,便可在您的JSP页面中呈现报表。而且,如果最终用户的需求不断变化,也可以很容易地更新报表,而不会影响到您的核心应用程序业务逻辑。

其他资源
  想要了解关于Crystal Reports for BEA WebLogic Workshop的其他信息,请参考集成的BEA Workshop在线文档,或者访问Crystal Decisions JavaZone开发者社区,网址是http://www.businessobjects.com/products/dev_zone/java/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics