JAVA访问水晶报表问题 据我所知,水晶报表已经被微软买下了,不支持JAVA的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 9以上的Advance版本支持,有客户端,和RAS通信的 小菜。到水晶报表的官方网站去转转,包你大有收获。www.crystaldecisions.com http://www.crystaldecisions.com9.0狂support java development. 由于被微软抛弃,水晶报表只能把自己卖掉了,7月份Crystal Decisions已经被BO收购 9.0没有对JAVA的真正支持,用用就知道了!许多Crystal Report的用户都转用Style Report了 webcola():你的结论有根据吗?我们已经研究它超过一个月啦,advanced and enterprise 起码从版本9.0开始完全支持JAVA开发啊。RAS提供有专门的JAVA SDK,不论是在JAVA中还是JSP中,都没有问题啊。我们的感觉只是价格比较贵,功能还是蛮强的。 Crystal Report不是用JAVA开发的,这点我想不会有人有疑义吧? 对JAVA的支持只是提供了一些接口而已,将Crystal Report集成到您的J2EE应用中去,你可以试试,无数的英雄败下阵来,如果你可以的作到,也可以给这些落败英雄们瞻仰瞻仰;Style Report是纯JAVA开发的,功能异常强大,和您的J2EE应用相整合,也就10分钟吧 我发现到处都有这个Webcola的影子,一定是Style Report的Sales!!SR卖这么贵一套,据我了解大概在20-30万左右吧,怎么还用在这里当马甲?而且“和您的J2EE应用相整合,也就10分钟吧”,这纯粹是外行人说话,如果说用多少行代码就可以集成一个报表还差不多,你懂怎么做报表吗?你知道真正怎么与J2EE集成吗? 一个给国内某大银行做应用的公司,一直用Crystal Report,和他们的J2EE应用集成一直很难实现,用了Style Report,这种整合变的异常的简单,10分钟的事,"用了Style Report为什么变的这么简单",这是我们听到的问话。Crystal Report一直期望傍着微软,走.net路线,结果怎么样?只能被别人收购了,这点你不会不知道吧?这点报表领域的情况都不了解,你也在这里理直气壮质问我?Crystal Report Server端一个CPU卖多少钱,知道吗?您可以给大家说说。 呵呵,怎么争论起这个来啦?不过webcola提出的集成到J2EE去,我好象没有见过这种需求。另外,有点疑惑:全部用JAVA写的东西性能有保障吗?访问的数据源有哪些呢?想必webcola比较熟悉Style Report,可否介绍一些? 呵呵,“这是我们听到的问话”,瞧瞧,怎么连客户说了什么都知道?还在这儿谈什么报表领域,Crystal卖多少钱呢,不是Style Report的Sales是什么?哈哈,真是可笑!你们就是这么做销售的?不管Crystal如何,它和Style Report我是都不会采用,呵呵,咱中国人用不起呀! 其实Crystal 并不贵,你可以直接找他们的代理询问,只是要装得象马上要买,保证让你大吃一惊! http://www.crystaldecisions.com/products/dev_zone/java/downloads.aspthere are some examples. 水晶报表的设计过程说明(二)B/S结构部分(开发工具:JSP)概述:水晶报表在B/S结构中可以生成两种格式的文件供IE浏缆,一种是html格式(预览状态),另一种 是pdf格式(打印状态).html格式可以方便的浏缆,但没提供打印功能.pdf格式可以方便的 浏缆,打印,但客户端必须安装"Adobe Reader5.1 "或以上版本,以便打开pdf文件.开发环境:Windows2000,Tomcat4.0,水晶报表9.0(Crystal Reports 9 Developer Edition 和 Crystal Enterprise 9 Report Application Server),Adobe Reader5.1运行环境:Windows2000,IE6.0,Adobe Reader5.1步骤: (1)新建一个文件夹做为工作目录 如:D:\CrystalReport (2)设置报表的工作目录 (I)开始-->程序-->CrystalEnterprise 9-->Tools-->RAS Configuration Manager (II)在Report Directory中输入报表的工作目录,如:D:\CrystalReport (3)在工作目录下建立如下结构的文件夹 d:\CrystalReport\ | |--WEB-INF\ |--classes\ |--lib\ (4)收集所有类库 (I)把Tomcat的类库增加到本环境中 如:拷贝C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF\lib\到 d:\CrystalReport\WEB-INF\lib\ (II)把水晶报表的类库增加到本环境中 如:拷贝C:\Program Files\Common Files\Crystal Decisions\2.0\jars\到 d:\CrystalReport\WEB-INF\lib\ (5)增加水晶报表所要用到的文件 如:拷贝C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers到 d:\CrystalReport\crystalreportviewers (6)制作报表并把它存在工作目录下,如:d:\CrystalReport\SimpleReport.rpt (7)编写jsp程序并把它存在工作目录下,如:d:\CrystalReport\Report_html.jsp(代码请参考我提供的例子) 例:(I)html格式(预览状态) 主程序:Report_html.jsp ============================Report_html.jsp========================= <%@ page import="com.crystaldecisions.sdk.occa.report.application.*, com.crystaldecisions.sdk.occa.report.data.*, com.crystaldecisions.sdk.occa.report.lib.*, com.crystaldecisions.report.web.viewer.*" %> <%@ page contentType="text/html;charset=gb2312" %> <html> <head> <title>Simple Preview Report</title> </head> <body> <% String reportName ="SimpleReport.rpt"; %> <%@ include file="AlwaysRequiredSteps.jsp" %>//调用公用步骤模块 <%@ include file="CrystalReportsInteractiveViewer.jsp" %>//调用预览模块 </body> </html> ==========================End Report_html.jsp======================= 公用步骤模块:AlwaysRequiredSteps.jsp ======================AlwaysRequiredSteps.jsp======================= <% /*CREATE THE REPORT APPLICATION SESSION, SET THE REPORT APP SERVER AND OPEN THE REPORT*/ String temp1 = (request.getRequestURI()).replace('/', '\\'); int lastTemp=temp1.lastIndexOf("\\"); temp1=temp1.substring(1,temp1.length()); String path = request.getRealPath("/"); ReportAppSession ra = new ReportAppSession(); ra.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument"); ra.setReportAppServer("127.0.0.1"); ra.initialize(); ReportClientDocument clientDoc = new ReportClientDocument(); clientDoc.setReportAppServer(ra.getReportAppServer() ); clientDoc.open(path + reportName, OpenReportOptions._openAsReadOnly); %> ===================End AlwaysRequiredSteps.jsp ===================== 预览模块:CrystalReportsInteractiveViewer.jsp ==================CrystalReportsInteractiveViewer.jsp================ % /*INSTANTIATE THE VIEWER AND DISPLAY THE REPORT THROUGH THE INTERACTIVE VIEWER*/ CrystalReportInteractiveViewer viewer = new CrystalReportInteractiveViewer(); viewer.setName("Crystal_Report_Interactive_Viewer"); viewer.setReportSource(clientDoc.getReportSource()); viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), out); viewer.dispose(); %> ===============End CrystalReportsInteractiveViewer.jsp================ (II)pdf格式(打印状态) 主程序:Report_pdf.jsp ============================Report_pdf.jsp========================= <%@ page import="com.crystaldecisions.sdk.occa.report.application.*, com.crystaldecisions.sdk.occa.report.data.*, com.crystaldecisions.sdk.occa.report.lib.*, com.crystaldecisions.sdk.occa.report.exportoptions.*,java.io.*" %> <%@ page contentType="application/PDF" %> <% /*WORKING WITH THE REPORT APPLICATION SERVER AND JSP TO EXPORT A REPORT TO THE BROWSER*/ String reportName ="SimpleReport.rpt"; %> <%@ include file="AlwaysRequiredSteps.jsp"%>//调用公用步骤模块 <% ByteArrayInputStream byteIS = (ByteArrayInputStream)clientDoc.getPrintOutputController().export(ReportExportFormat.PDF); byte[] buf = new byte[2000 * 1024]; int nRead = 0; while ((nRead = byteIS.read(buf)) != -1) { response.getOutputStream().write(buf, 0, nRead); } response.getOutputStream().flush(); response.getOutputStream().close(); %> 最后形成的目录结构如下: d:\CrystalReport\ | |--crystalreportviewers\ |--WEB-INF\ | |--classes\ | |--lib\ |--Report_html.jsp |--Report_pdf.jsp |--AlwaysRequiredSteps.jsp |--CrystalReportsInteractiveViewer.jsp |--SimpleReport.rpt发布:(1)在服务器上安装必要的软件 Windows2000,Tomcat4.0,水晶报表9.0(Crystal Enterprise 9 Report Application Server),Adobe Reader5.1 (2)备份Tomcat目录下的ROOT (3)把你工作目录下的所有文件拷贝到ROOT目录下 (4)运行Tomcat (5)打开IE,在地址栏中输入"http://127.0.0.1:8080" 竹舟 新手问个小过滤器程序问题 jsp 国际化 问题 JSF中checkboxes全选问题,新手~~~求助~~ JSP 编写登录程序的问题 [原帖]Justware誰知道是啥子東西啊? 菜鸟小弟问下大哥们,在JSP中,为什么我没有设置按下回车键让表单提交,却提交了呢?而且当我判断,不符合条件,return时,表单任然提交了?怎样设置按回车不能提交表单? 求助select的问题 地址栏传递两个以上的参数,用request.getParameter()怎么只能取到第一个? 关于从配置文件读入相关参数的性能问题 寻求支持jsp的主机。 提交刷新问题 再一次水晶报表问题
www.crystaldecisions.com
9.0狂support java development.
advanced and enterprise 起码从版本9.0开始完全支持JAVA开发啊。
RAS提供有专门的JAVA SDK,不论是在JAVA中还是JSP中,都没有问题啊。
我们的感觉只是价格比较贵,功能还是蛮强的。
一些接口而已,将Crystal Report集成到您的J2EE应用中去,你可以试试,无数的英雄败下阵来,如果你可以的作到,也可以给这些落败英雄们瞻仰瞻仰;Style Report是纯JAVA开发的,功能异常强大,和您的J2EE应用相整合,也就10分钟吧
SR卖这么贵一套,据我了解大概在20-30万左右吧,怎么还用在这里当马甲?
而且“和您的J2EE应用相整合,也就10分钟吧”,这纯粹是外行人说话,如果说用多少行代码就可以集成一个报表还差不多,你懂怎么做报表吗?你知道真正怎么与J2EE集成吗?
另外,有点疑惑:全部用JAVA写的东西性能有保障吗?访问的数据源有哪些呢?
想必webcola比较熟悉Style Report,可否介绍一些?
不管Crystal如何,它和Style Report我是都不会采用,呵呵,咱中国人用不起呀!
there are some examples.
(二)B/S结构部分(开发工具:JSP)
概述:水晶报表在B/S结构中可以生成两种格式的文件供IE浏缆,一种是html格式(预览状态),另一种
是pdf格式(打印状态).html格式可以方便的浏缆,但没提供打印功能.pdf格式可以方便的
浏缆,打印,但客户端必须安装"Adobe Reader5.1 "或以上版本,以便打开pdf文件.
开发环境:Windows2000,Tomcat4.0,水晶报表9.0(Crystal Reports 9 Developer Edition 和
Crystal Enterprise 9 Report Application Server),Adobe Reader5.1
运行环境:Windows2000,IE6.0,Adobe Reader5.1
步骤: (1)新建一个文件夹做为工作目录
如:D:\CrystalReport
(2)设置报表的工作目录
(I)开始-->程序-->CrystalEnterprise 9-->Tools-->RAS Configuration Manager
(II)在Report Directory中输入报表的工作目录,如:D:\CrystalReport
(3)在工作目录下建立如下结构的文件夹
d:\CrystalReport\
|
|--WEB-INF\
|--classes\
|--lib\
(4)收集所有类库
(I)把Tomcat的类库增加到本环境中
如:拷贝C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF\lib\到
d:\CrystalReport\WEB-INF\lib\
(II)把水晶报表的类库增加到本环境中
如:拷贝C:\Program Files\Common Files\Crystal Decisions\2.0\jars\到
d:\CrystalReport\WEB-INF\lib\
(5)增加水晶报表所要用到的文件
如:拷贝C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers到
d:\CrystalReport\crystalreportviewers
(6)制作报表并把它存在工作目录下,如:d:\CrystalReport\SimpleReport.rpt
(7)编写jsp程序并把它存在工作目录下,如:d:\CrystalReport\Report_html.jsp(代码请参考我提供的例子)
例:(I)html格式(预览状态)
主程序:Report_html.jsp
============================Report_html.jsp=========================
<%@ page import="com.crystaldecisions.sdk.occa.report.application.*,
com.crystaldecisions.sdk.occa.report.data.*,
com.crystaldecisions.sdk.occa.report.lib.*,
com.crystaldecisions.report.web.viewer.*"
%>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>Simple Preview Report</title>
</head>
<body>
<%
String reportName ="SimpleReport.rpt";
%>
<%@ include file="AlwaysRequiredSteps.jsp" %>//调用公用步骤模块
<%@ include file="CrystalReportsInteractiveViewer.jsp" %>//调用预览模块
</body>
</html>
==========================End Report_html.jsp=======================
公用步骤模块:AlwaysRequiredSteps.jsp
======================AlwaysRequiredSteps.jsp=======================
<%
/*CREATE THE REPORT APPLICATION SESSION, SET THE REPORT APP SERVER AND OPEN THE REPORT*/
String temp1 = (request.getRequestURI()).replace('/', '\\');
int lastTemp=temp1.lastIndexOf("\\");
temp1=temp1.substring(1,temp1.length());
String path = request.getRealPath("/");
ReportAppSession ra = new ReportAppSession(); ra.createService("com.crystaldecisions.sdk.occa.report.application.ReportClientDocument");
ra.setReportAppServer("127.0.0.1");
ra.initialize();
ReportClientDocument clientDoc = new ReportClientDocument();
clientDoc.setReportAppServer(ra.getReportAppServer() );
clientDoc.open(path + reportName, OpenReportOptions._openAsReadOnly);
%>
===================End AlwaysRequiredSteps.jsp =====================
预览模块:CrystalReportsInteractiveViewer.jsp
==================CrystalReportsInteractiveViewer.jsp================
%
/*INSTANTIATE THE VIEWER AND DISPLAY THE REPORT THROUGH THE INTERACTIVE VIEWER*/
CrystalReportInteractiveViewer viewer = new CrystalReportInteractiveViewer();
viewer.setName("Crystal_Report_Interactive_Viewer");
viewer.setReportSource(clientDoc.getReportSource());
viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), out);
viewer.dispose();
%>
===============End CrystalReportsInteractiveViewer.jsp================
(II)pdf格式(打印状态)
主程序:Report_pdf.jsp
============================Report_pdf.jsp=========================
<%@ page import="com.crystaldecisions.sdk.occa.report.application.*,
com.crystaldecisions.sdk.occa.report.data.*,
com.crystaldecisions.sdk.occa.report.lib.*,
com.crystaldecisions.sdk.occa.report.exportoptions.*,java.io.*"
%>
<%@ page contentType="application/PDF" %>
<%
/*WORKING WITH THE REPORT APPLICATION SERVER AND JSP TO EXPORT A REPORT TO THE BROWSER*/
String reportName ="SimpleReport.rpt";
%>
<%@ include file="AlwaysRequiredSteps.jsp"%>//调用公用步骤模块
<%
ByteArrayInputStream byteIS = (ByteArrayInputStream)clientDoc.getPrintOutputController().export(ReportExportFormat.PDF);
byte[] buf = new byte[2000 * 1024];
int nRead = 0;
while ((nRead = byteIS.read(buf)) != -1) {
response.getOutputStream().write(buf, 0, nRead);
}
response.getOutputStream().flush();
response.getOutputStream().close();
%> 最后形成的目录结构如下:
d:\CrystalReport\
|
|--crystalreportviewers\
|--WEB-INF\
| |--classes\
| |--lib\
|--Report_html.jsp
|--Report_pdf.jsp
|--AlwaysRequiredSteps.jsp
|--CrystalReportsInteractiveViewer.jsp
|--SimpleReport.rpt发布:(1)在服务器上安装必要的软件
Windows2000,Tomcat4.0,水晶报表9.0(Crystal Enterprise 9 Report Application Server),Adobe Reader5.1
(2)备份Tomcat目录下的ROOT
(3)把你工作目录下的所有文件拷贝到ROOT目录下
(4)运行Tomcat
(5)打开IE,在地址栏中输入"http://127.0.0.1:8080"
竹舟