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());

    }

    %>

温馨提示:内容为网友见解,仅供参考
无其他回答

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

求JSP调用水晶报表服务器上的报表资料
- .rpt报表文件 执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。- Data Source .rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。- 水晶...

crystalreportviewers是什么,电脑的F盘里突然多了个这个文件夹,不知道...
jsp页面上的水晶报表样式,一个小的程序开发辅助工具,用不到的话可以删除

水晶报表是什么?主要有什么用处?
完成应用程序资料的报表

crystalreportviewers12这个文件夹,有什么作用,能删除吗?
crystalreportviewers12这个文件夹是著名的水晶报表的样式文件夹,装visual studio也自带。cadence 带的作用是用来读复杂报表的(比如BOM),比起Altium生产的excel十分花哨报表,cadence标准报表可以说是简陋。如果只使用standard report,删了也无妨。Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要...

spring框架用什么软件(spring框架有什么用)
2、2,VB-DB-RPTVB先查询数据库得到结果集,再打开RPT文件并传入结果集,生成报表。此方法详细流程如下:1)在CrystalReport中设计好RPT文件。由于此时结果集还未生成,只能使用TTX文件做为虚拟数据源,以便读取字段信息。3、配置成功后开始在Eclipse中配置Maven,点击Eclipse菜单栏Help-EclipseMarketplace搜索...

相似回答