`

JSP显示水晶报表推荐做法

阅读更多

1. 缓存报表源
在会话变量中缓存报表源使得报表源可被有效地使用多次。在未缓存报表源时,多次创建新报表源的过程将变得非常昂贵。而且,缓存报表源还允许刷新包含或不包含已保存数据的报表。

以下示例显示了如何在会话变量中缓存报表源:

String report = "/reports/sample.rpt";

ReportClientDocument reportClientDoc = new ReportClientDocument();

reportClientDoc.open(report, 0);

Object reportSource = reportClientDoc.getReportSource();

session.setAttribute("reportSource", reportSource);

 

 

注意:    如果要使用缓存的报表源,在不再使用报表源之前,请不要调用查看器或报表源的丢弃方法。

强烈建议您缓存报表源,以便在查看报表时确保数据的一致性。如果使用未缓存的报表源,则会在查看器或报表控件中执行任何操作时创建新的报表源。因此,使用未缓存的报表源将会导致查看器显示包含已保存数据的一些页面,并同时显示包含实时数据的另一些页面。

 
2. 只有查看器的页面
如果 JSP 页面只包含查看器而没有任何其他内容,则可以执行一些操作来简化报表查看实施。

设置 setOwnPage
取决于查看内容,查看器能够生成完整的 HTML 页面,并能设置相应的页面属性。将 setOwnPage 设置为 true 使查看器能够完整地处理周围的 HTML 内容,从而带来若干好处。允许查看器处理周围的 HTML 内容可以减少需要向 JSP 页面中添加的代码量,并使查看器能够自动确定某些设置:

 
它允许查看器根据用于查看页面的设备来选择使用哪些页面开始和结束标记。
例如,对于 Web 浏览器,查看器会写出 <html> 开始标记,而对于移动设备,则会写出 <wml> 开始标记。

注意:    Java Reporting Component 不支持生成用于在移动设备上显示的报表。

它能够正确地为页面设置内容类型和字符集信息。这确保了包含国际字符的页面能正确显示。
它能够自动在查看器中启用导出和打印按钮支持。
如果 setOwnPage 为 false,则需要手动设置周围的 HTML 标记以及 content-type 和 charset 指令。此外,当 setOwnPage 为 false 时,打印和导出功能将被禁用。

使用 processHttpRequest 方法
当 setOwnPage 设置为 true 时,您必须使用 processHttpRequest 方法(而不是 getHtmlContent 方法)来显示报表。之所以必须使用 processHttpRequest 方法,原因是使用 getHtmlContent 与将 setOwnPage 设置为 false 时的效果相同,从而没有了将 setOwnPage 设置为 true 时的任何优点。

3. 使用 setOwnForm 方法
如果 JSP 页面不包含任何需要回发的控件,则应将 setOwnForm 方法设置为 true。这样做使查看器能够自动处理视图状态信息。视图状态用于在客户端缓存有关报表当前状态的信息。如果页面上有其他控件,您必须确保 setOwnForm 设置为 false,并手动处理视图状态信息。

以下示例显示了如何手动设置视图状态信息:

viewer.setOwnForm(false);

viewer.setViewState((String) session.getAttribute("viewState"));

viewer.processHttpRequest(request, response, getServletContext(), pageContext.getOut());

session.setAttribute("viewState", viewer.getViewState());

 注意:    setOwnForm 必须设置为 true 才能使参数提示发挥作用。

4. 指定正确的字符集
要将字符从 JSP 文件发送到 Web 浏览器,您必须使用正确的编码。始终为所有 JSP 页面指定正确的内容类型和字符集。

如果 JSP 页面将内容返回到标准 HTML 浏览器,请确保定义了正确的字符集:

<%@ page contentType="text/html; charset=utf-8" %>

 contentType 和 charset 指令让浏览器知道所返回 HTML 页面的编码方式。UTF-8 是查看器必需的字符集。

5. CrystalImageCleaner 示例代码
为了确保定期删除查看器使用的临时文件,需要使用 CrystalImageCleaner 对象。通过将正确配置的 CrystalImageCleaner 对象添加到使用查看器的 JSP 页面,可帮助提高 Web 应用程序的性能。

注意:    为了确保 CrystalImageCleaner 对象可用,JSP 页面中必须有以下代码行。

<%@ page import="com.crystaldecisions.report.web.viewer.CrystalImageCleaner" %>

示例 1
本示例方法创建一个 CrystalImageCleaner 对象,该对象每分钟扫描图像文件一次,但只删除那些至少已存在 2 分钟的文件。由于这些设置的最佳值高度取决于查看器的使用和应用程序的设计特征,因此,必须正确调整这些设置,以便确保您的应用程序获得最佳性能。

<%!

public void jspInit(){

    CrystalImageCleaner.start(getServletContext(), 60000, 12000);

}

%>

示例 2
本示例方法在从服务中删除 JSP 页面后即停止 CrystalImageCleaner 对象。

<%!

public void jspDestroy(){

CrystalImageCleaner.stop(getServletContext());

}

%>


文章出处:DIY部落(http://www.diybl.com/course/1_web/javascript/jsjs/2008622/127274.html)

分享到:
评论

相关推荐

    使用eclipse在jsp上显示水晶报表

    本文将详细介绍如何在Eclipse中创建一个JSP项目,并配置环境来展示水晶报表。 首先,我们需要准备一个支持水晶报表的开发环境。在Eclipse 3.2版本中,我们可以创建一个新的Web项目,选择Target runtime为Apache ...

    java jsp水晶报表详解

    ### Java JSP水晶报表详解 #### 一、水晶报表简介 水晶报表(Crystal Reports)是一款功能强大的报表设计与生成工具,广泛应用于多种开发环境之中。对于Java开发者来说,通过集成Crystal Reports及其Java Reporting ...

    水晶报表的jsp实现(开发工具bea weblogic workshop)

    本篇将详细介绍如何在JSP页面中实现水晶报表的动态显示,并支持导出为Word、Excel、PDF等格式。以下是具体步骤和配置细节: 1. **下载与安装**: 首先,你需要下载并安装`Crystal Reports 10 for BEA WebLogic ...

    java水晶报表案例

    Java水晶报表,全称为Crystal Reports,是一款强大的报告生成工具,尤其在Java Web应用程序中广泛应用。它允许开发者设计复杂的报表,并能从各种数据源获取数据,包括数据库、XML文件、Web服务等。在这个“java水晶...

    水晶报表的jsp实现sn

    在水晶报表与JSP(Java Server Pages)的结合使用中,开发者可以利用JSP页面来动态生成和展示水晶报表。这一过程涉及到多个步骤,包括但不限于以下几点: 1. **安装与配置**:首先,需要确保已经正确安装了水晶报表...

    java 水晶报表环境

    Java 水晶报表环境是Java开发者用于创建、设计和展示报表的重要工具。水晶报表(Crystal Reports)由SAP公司开发,它允许程序员利用丰富的数据源,如数据库、Excel表格等,来创建复杂的业务报告。在Java环境中集成...

    水晶报表java web实现

    在水晶报表的实现中,JSP页面通常会包含用于渲染报表的Java代码或JSP标签。用户通过浏览器请求JSP页面,服务器端执行JSP,生成报表内容,并返回给客户端显示。 4. **Tomcat服务器**:Tomcat是一个开源的、轻量级的...

    水晶报表制作流程(图解)

    【水晶报表制作流程详解】 水晶报表是一款强大的报表设计工具,常用于JavaWeb工程中,以ArrayList作为数据源,其中的元素是JavaBean。本篇将详细介绍如何通过图解方式制作水晶报表。 **一、前期准备** 1. **复制...

    水晶报表的jsp实现(开发工具bea weblogic workshop).doc

    本文档主要针对使用BEA WebLogic Workshop开发的MIS系统中,如何实现在JSP页面中动态显示水晶报表的需求进行解析。具体需求包括: 1. **动态显示水晶报表**:能够根据用户的输入或请求参数动态生成报表。 2. **数据...

    java水晶报表解决方案

    本文将详细介绍如何在Java Web应用(具体为JSP应用)中集成水晶报表,并实现其动态显示及多种格式导出的功能。 #### 二、水晶报表简介 水晶报表是由Business Objects公司开发的一款报表设计工具,后被SAP收购。它...

    Crystal水晶报表经典范例

    《Crystal水晶报表经典范例——深入理解与应用》 在Asp.net2.0的开发环境中,水晶报表(Crystal Reports)作为一款强大的报表设计工具,因其灵活的数据展示能力及广泛的数据库支持,一直深受开发者喜爱。"Crystal...

    crystalreportviewers

    "CrystalReportViewers"是一个与JavaServer Pages (JSP)相关的组件库,专门用于在Web应用程序中展示水晶报表(Crystal Reports)。水晶报表是一款强大的报告设计工具,由SAP公司开发,广泛应用于数据可视化和业务...

    水晶报表开发

    - 创建一个名为`test.jsp`的JSP文件,用于展示水晶报表。在这个文件中,你需要导入必要的Crystal Reports类库。 - 通过`JRC_ResultSet_DataSource`对象,你可以设置报表的数据源,这通常是从数据库查询得到的结果...

    Crystal Reports for java jsp web 案例

    《水晶报表在Java JSP Web应用中的实践案例》 水晶报表(Crystal Reports)是一款强大的报告生成工具,广泛应用于各类企业级应用系统中,为用户提供数据可视化和报告制作的能力。在这个“Crystal Reports for java ...

    Eclipse 部署上 Crystal Reports

    这个目录包含了Crystal Reports用于显示报表所需的静态资源,如CSS、JavaScript和图像文件。 5. **添加tld文件**: 将名为crystal-tags-reportviewer.tld的文件复制到Web项目的WEB-INF目录下。这个文件定义了标签...

    JavaWeb开发结课报告格式说明.pdf

    详细介绍使用的编程语言(如Java)、框架(如Servlets、JSP)、数据库(如SQL Server)以及技术(如ASP、VBScript、水晶报表等)。同时,阐述开发过程中的关键技术问题和解决方案。 9. **结论** 总结项目成果,...

    企业网站维护教程.pdf

    此外,ADO(ActiveX Data Objects)用于连接和操作数据源,水晶报表则用于数据可视化和报告生成。 5. **数据库管理**:数据库是网站的核心,存储着所有数据,包括敏感信息。熟悉Access数据库的基本概念、结构和数据...

    将 数据 导入 到 Excel

    2. **利用水晶报表或其他第三方工具**:这类方法通常涉及将数据导出到特定格式(如Excel、Word或PDF)后再进行打印,打印效果较好,但编程复杂度较高且往往需要购买相关软件。 3. **将数据导出到Excel或Word中打印**...

Global site tag (gtag.js) - Google Analytics