java与水晶报表结合
水晶报表的基本使用方法
水晶报表的基本使用方法水晶报表是一种用于数据分析和可视化的工具,它可以帮助用户更好地理解和展示数据。
在使用水晶报表时,我们需要掌握一些基本的使用方法,以便能够灵活运用它的功能。
下面将介绍水晶报表的基本使用方法。
我们需要了解水晶报表的界面。
水晶报表的界面通常由菜单栏、工具栏、报表区域和数据源区域组成。
菜单栏包含了各种功能选项,可以通过点击菜单栏上的选项来进行相应的操作。
工具栏中则提供了一些常用的工具按钮,方便我们快速进行操作。
报表区域是我们设计和展示报表的主要区域,我们可以在这里对报表进行编辑和预览。
数据源区域则是用于连接数据源和导入数据的区域。
在开始设计报表之前,我们首先需要连接数据源。
水晶报表支持多种数据源的连接,包括数据库、Excel文件、文本文件等。
我们可以通过点击数据源区域中的相应按钮来选择并连接数据源。
连接成功后,我们就可以在数据源区域中看到已连接的数据表。
接下来,我们可以开始设计报表了。
水晶报表提供了丰富的报表设计功能,可以满足各种需求。
我们可以通过拖拽字段到报表区域来选择需要展示的数据,并可以对数据进行排序、筛选、分组等操作。
在报表区域中,我们可以选择不同的报表类型,如表格、柱状图、折线图等,来展示数据。
我们还可以对报表进行样式设置,如调整字体、颜色、边框等,以使报表更加美观。
除了基本的报表设计功能,水晶报表还提供了一些高级功能,如参数设置、公式计算、数据透视等。
参数设置可以让用户在使用报表时输入参数,以实现动态查询和筛选数据的目的。
公式计算可以用于对数据进行复杂的计算和分析。
数据透视可以帮助我们对大量数据进行汇总和分析,以便更好地理解数据。
在设计完报表后,我们可以对报表进行预览和输出。
水晶报表可以生成多种输出格式,如PDF、Excel、HTML等,我们可以根据需要选择相应的输出格式。
在预览报表时,我们可以查看报表的实际效果,并可以进行调整和修改。
在输出报表时,我们可以选择输出的范围和文件名,并可以设置一些输出选项,如是否包含页眉页脚、是否自动换页等。
水晶报表的使用
3.3 Pull模式的使用
首先创建rpt文件,并使用水晶报表设计接 口设置一些必须的数据连接。 拖放一个 CrystalReportViewer控件至 aspx页面,设置它的属性指定我们上一步 创建的.rpt文件。 在代码中调用DataBind方法。
创建 .rpt 文件:
1)
2) 3) 4) 5)
使用Pull模式导出报表
private void btnOutput_Click(object sender, System.EventArgs e) { CrystalReport1 myReport = new CrystalReport1(); CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions(); myReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; myReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDoc Format; DiskOpts.DiskFileName = "c:\\Output.pdf"; myReport.ExportOptions.DestinationOptions = DiskOpts; myReport.Export(); }
6)
7) 8)
在右击“解决方案游览器”,在弹出的菜单中选择“添加” --“添加新项”-->“Crystal Report” 在“Crystal Report 库”中选择“作为空白报表”单选按 钮,最后单击“确定”。 出现水晶报表设计器。 右击报表中的“详细资料区”,选择“数据库”->“添加/ 删除数据库..." 在弹出的“数据库专家”中,扩展“OLE DB(ADO)”选项, 此时会弹出另外一个“OLE DB(ADO)”窗口。 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next" 指定连接的信息(选择Pubs库) 单击“下一步”,最后单击“完成”按钮。
水晶报表的基本使用方法
水晶报表的基本使用方法水晶报表是一种数据可视化工具,可以帮助用户更直观、清晰地呈现数据。
使用水晶报表可以轻松创建各种类型的报表,包括数据表格、图表、交叉表等。
本文将介绍水晶报表的基本使用方法。
一、创建报表在水晶报表软件中,可以通过多种方式创建报表。
最常用的方法是使用向导或模板来创建报表。
用户可以根据需要选择不同的报表类型和样式,然后按照向导的指引逐步完成报表的设计和设置。
二、导入数据在创建报表之前,首先需要导入数据。
水晶报表支持多种数据源,包括数据库、Excel表格、文本文件等。
用户可以选择合适的数据源,并根据需要设置数据连接参数。
导入数据后,可以对数据进行预处理,如筛选、排序、分组等操作。
三、设计报表在导入数据后,可以开始设计报表的布局和样式。
水晶报表提供了丰富的设计工具和功能,可以轻松创建各种类型的报表。
用户可以选择合适的数据字段,并根据需要设置字段的显示格式、计算公式等。
此外,还可以添加标题、页眉、页脚等元素,以及设置报表的背景、字体、颜色等样式。
四、创建数据透视表水晶报表还支持创建数据透视表,可以帮助用户更好地分析和汇总数据。
用户可以选择需要分析的字段和计算方式,然后根据需要进行数据透视表的设置和调整。
通过数据透视表,可以快速生成汇总表、交叉表等报表,并进行数据筛选、排序、分组等操作。
五、添加图表水晶报表提供了丰富的图表类型,包括柱状图、折线图、饼图等。
用户可以根据需要选择合适的图表类型,并将数据字段拖拽到图表中进行数据分析和展示。
通过设置图表的样式、颜色、标签等属性,可以使报表更加直观、易于理解。
六、设置报表参数在设计报表过程中,还可以设置报表的参数,以便用户在查看报表时进行灵活的数据筛选和分析。
用户可以添加参数字段,并设置参数的类型、默认值、取值范围等属性。
通过参数设置,可以实现报表的动态筛选和交互式操作。
七、导出报表完成报表设计后,可以将报表导出为不同的格式,如PDF、Excel、Word等。
水晶报表环境搭建.pptx
4、查詢出edu_student_info表中全部數據,返回List
public class StudentInfoDaoImpl implements StudentInfoDao { @Override //查詢全部 public ArrayList<EduStudentInfo> queryEduAll() throws Exception { // TODO Auto-generated method stub List<EduStudentInfo> all=new ArrayList<EduStudentInfo>(); String sql="select * from edu_student_info"; PreparedStatement pstmt=null; DataBaseConnection dbc=null; //下面是針對數據庫的具體操作 try{ //鏈接數據庫 dbc=new DataBaseConnection(); pstmt=dbc.getConnection().prepareStatement(sql); ResultSet rs=pstmt.executeQuery(); SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); while(rs.next()){ EduStudentInfo s =new EduStudentInfo(); s.setStudent_name(rs.getString("student_name")); s.setEntry_date(sdf.format(rs.getDate("entry_Date"))); System.out.println(s.getStudent_name()+s.getEntry_date()); all.add(s); } //進行數據庫更新操作 rs.close(); pstmt.close(); }catch(Exception e){ System.out.println(e); }finally{ //關閉數據庫 dbc.close(); } System.out.println(all.size()+"&&&&&&&&&&&&&&"); return (ArrayList)all; } }
Java水晶报表
报表开ቤተ መጻሕፍቲ ባይዱ示例
CRConfig.xml
Installer Path\Business Objects\Common\4.0\java <Classpath>E:\Program Files\Business Objects\Common\4.0\java/lib/crlovmanifest.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/CRLOVExternal.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/CRDBJDBCServer.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/CRDBXMLServer.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/CRDBJavaBeansServer.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/external/CRDBXMLExternal.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/external/log4j.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/CRDBSForceServer.jar;E:\Program Files\Business Objects\Common\4.0\java/lib/external/CRDBSForceExternal.jar;E:\oracle\ora921\jdbc \lib\ojdbc14.jar;E:\oracle\ora921\jdbc\lib\classes12.jar;${CLASSPATH} </Classpath> <JDBCURL>jdbc:oracle:thin:@HostName:Port:SID</JDBCURL> <JDBCClassName>oracle.jdbc.driver.OracleDriver</JDBCClassName> <JDBCUserName>scott</JDBCUserName>
水晶报表使用简单教程
6. 在报表设计器中调整需要显示的字段的位置、宽度等。
7. 在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport1()
2. 展开“ 数据集”文件夹。
3. 选择所需数据集对象。
例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。
4. 选择要向报表中添加的表,和使用其他数据源一样。
5. 单击“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。
6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。
数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 数据集对象添加表。
水晶报表使用简单教程
分类: 数据库开发技术
水晶报表使用简单教程[@more@]水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。
一、在使用自带的水晶报表时,请注册,否则只能使用30次
daDetails.Fill(dsdataSet, "Order Details")
'使用“报表引擎”对象模型将填充的数据集,传递给报表
将水晶报表嵌入到自己的应用程序中
如何将水晶报表嵌入到自己的应用程序中白锐鸽白延平[摘要] 本文根据项目需要,以Microsoft Visual Studio 2005为开发平台,应用控件Crystal Activex Reports Viewer Control 10.0,详细介绍了如何在自己的应用程序中嵌入水晶报表,以动态地分析和显示数据。
[关键词] 水晶报表控件应用程序How to Embed Crystal Reports Into Your Own ProgramBai Ruige Bai YanpingAbstract: In accordance with the project requirements, taking Microsoft Visual Studio 2005 as our develop panel, and applying the control named Crystal ActiveX Reports Viewer Control 10.0,thisarticle fully introduces how to embed Crystal Reports into your own program, and then you can analyze and display your own data dynamically.Key words: Crystal Reports Control Program将Crystal Reports(水晶报表)用于处理数据库,从而可以帮助用户分析和解释重要信息。
使用 Crystal Reports 既可以方便地创建简单报表,同时也提供了创建复杂或专用的报表所需的整套工具。
通过将 Crystal Reports 的报表处理功能嵌入到自己的数据库应用程序中,Windows应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。
Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。
水晶报表(使用详细过程及注意事项)
JA V A水晶报表使用过程及注意事项一、第一阶段1.软件安装:Crystal Reports XI + Eclipse2.首先打开Eclipse,新建报表模板:new→other→ Crystal Reports web Project,姑且命名为Pen 注:此时可能会显示错误,不要紧,请不要理会。
3.在Java Resources:src下面的默认包中创建欲使用的JavaBean,如:Pen.java注意:一定要保存4.右键点击JavaBean下面的,选择Crystal Report→ add to a new Crystal Report,并自行创建名称注:名称的创建是有用处的,这便是生成模板的过程5.这时选择左下角的Layout,即可看见可视化编辑窗口,在右侧的Field Explorer中可选择所创建的虚拟字段(所创建的JavaBean中的属性)放入窗口中。
二、第二阶段6.打开MyEclipse,创建web project,命名为PenDemo。
7.复制Pen(Crystal Reports web Project中)项目src文件夹下的com文件夹、CRConfig.xml和log4j.properties文件到PenDemo(MyEclipse中的正常web project)中相应的目录下。
注:这时你会看见有错误,下一步解决8.复制Pen(Crystal Reports web Project中)项目WEB-INF下的全部内容到PenDemo(MyEclipse 中的正常web project)到相应的目录下。
注:请刷新PenDemo项目你会发现错误消失9.请将PenDemo(MyEclipse中的正常web project)src下面包中的生成的report模板cut至webroot 下。
10.copy资料包中的除了web-inf以外的所有文件(夹)至项目工程PenDemo相应的目录下注:刷新又出现错误了,不要紧,这是因为我们本末倒置的缘故,具体原因自己思考11.为了节省时间,我们可以copy资料包中的相关对数据操作的业务类来直接用,首先copy资料包中的DataSource.java至PenDemo项目中,存放的包及路径自己定。
水晶报表 Crystal Reports
表的格式、复杂的逻辑和数据挑选,是一个强大的报表设计工具。
水晶报表与Visual Studio
水晶报表已被Microsoft Visual Studio 2005和Microsoft Visual Studio 2008 等VS环境集成在一起,是 Visual Studio 环境(包括 Visual )中用于创建报表的标准工具。 利用水晶报表可以创建交互式的优质报表 不仅能为 WinForms 和 WebForms 创建报表,还能将报表作为Web 服 务存放在 Web 服务器上 “水晶报表设计器”界面用于创建并格式化报表,大大减少代码编写 量
水晶报表的类型
(1)Strongly-typed 报表: 当你将报ห้องสมุดไป่ตู้文件加入到项目中去时,它就变成了一个了“ stronglytyped“报表。在这些情况下,你将拥有直接创建报表的对象的权力, 这将减少一些代码并且能够提供一些性能。 (2)Un-Typed 报表: 这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在 这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立 一个实例,并且”手动“地调用报表。
水晶报表的优点
水晶报表有下面一些主要的优点: 快速的报表开发; 能够导出成为复杂的交互性图表; 可以与其它控件一起在WinForm和WebForm中使用; 能够动态地将报表导出成为.pdf,.doc,xls,html,rtf等多种格式;
水晶报表的执行模式
水晶报表取数据可以使用下面的方法实现:
(1)设计一个DataSet (2)创建一个.rpt文件同时将其指定给上一步建立的DataSet。 (3) 绘制报表样式 (4) 在窗口页面上拖放一个CrystalReportViewer 控件同时将其与前面 的.rpt文件建立联系。 (5)在代码中访问数据库并把数据存入DataSet (6)调用DataBind方法。
水晶报表安装调试手册
打印模版修改水晶报表软件安装1.执行安装包下CR10_Autorun_CHSENT.exe,安装水晶报表软件2.或者,在Crystal Reports安装目录中,双击,进入Crystal Reports 10 安装向导。
3.按照提示,点击“下一步”,并接受《许可协议》后,进入用户信息设置。
输入产品密钥号码,点击“下一步”,选择目标文件夹路径,开始安装。
4.按照提示安装完成水晶报表5.安装完毕后,安JA V A组件,如下图。
(修改BS文稿打印模版时,需进行以下操作,否则,直接跳过此步。
)5.2 修改打印模版打开C:\news30\WEB-INF\reports文件夹,该文件夹下是BS文稿打印时所使用的模板。
5.2.1 设置打印模板名称在report文件夹下,分别提供了线索、选题、稿件、串联单的打印模板,打印模版的命名规则如下:⏹线索、选题和稿件可按“组别”设置不同的模板:组别_模板名称.rpt⏹串联单可按“时段”设置不同的打印模板:时段_newsBill.rpt例如:1)网管软件中,“Dayang-技术部-网络组”下的用户,在BS文稿软件中,稿件的打印模板名称应为:网络组_newsItem.rpt;2)文稿设置软件中,“时段设置”中包括“新闻午报”栏目,则属于新闻午报时段的所有串联单的打印模板名称应为:新闻午报_newsBill.rpt。
名称说明:newsClue.rpt-新闻线索打印模板newsTask.rpt-新闻选题打印模板newsItem.rpt-新闻稿件打印模板newsBill.rpt-新闻串联单打印模板5.2.2 更新数据源连接注意:更新数据源前,将C:\news30\Crystal Decisions\2.5\bin文件夹下的CRDB_JavaServer-oracle.ini或CRDB_JavaServer-sql.ini,拷贝到C:\Program Files\Common Files\Crystal Decisions\2.5\bin文件夹下,然后,将其名称修改成CRDB_JavaServer.ini。
水晶报表- SAP Crystal Reports的报表工具你了解吗?
水晶报表- SAP Crystal ReportsSAP金牌服务商北京奥维奥解析水晶报表- SAP Crystal Reports 水晶报表----SAP Crystal Reports水晶报表(CrystalReports)是目前国际上功能最为强大、最流行的报表软件。
作为报表行业的标准,CrystalReports具有以下功能:与企业任何数据源连接、建立业务逻辑的丰富功能、复杂的报表格式和结构、高精度的网络输出和打印输出。
水晶报表(CrystalReports)作为全球通用的报表工具,已经被360家IT厂商OEM到自己的产品中,水晶报表(CrystalReports)可帮助您快速创建灵活、特性丰富的报表,并将它们集成到Web和Windows应用程序中。
它使您能够访问和格式化数据,利用全面的一套软件开发工具包(SDK)将报表嵌入到Java、.NET和COM应用程序中。
水晶报表(CrystalReports)的强大功能表现在:与企业任何数据源连接、建立业务逻辑的丰富功能、复杂的报表格式和结构、高精度的网络输出和打印输出等方面。
1. 水晶报表SAP Crystal Reports一次设计,任意实施创建结构内容的关键是设计出一个单一的可以满足各种不同用户需要的内容。
因此就需要与企业广泛的数据资源相连接(通常要将来自不同资源的数据放入到一个报表中),并以此为基础为用户提供一个信息概览。
同时,创建业务逻辑、复杂的格式控制和针对不同用户的个性化的内容的创建还需要用到各种灵活的工具2.水晶报表SAP Crystal Reports拥有世界标准标准的工具的价值就在于它强化了产品本身的可用性。
这些标准包括与工业标准有关的任何增值应用:大量的资源、大量的知识储备、与其它企业级软件供应商的合作和集成、易用的咨询和培训、第三方的书籍资料和文件等等。
标准工具对于企业应用的成功起着很大的作用,特别是在技术支持和服务方面。
3.水晶报表易于使用、设计迅速的快速开发环境产品进入市场的时间和维护工作是IT企业如何降低成本、提高生产率和更好的满足市场需求的关键因素。
水晶报表初级使用——直接与数据库连接
水晶报表初级使用——直接与数据库连接
1、使用步骤
添加报表控件,在工具箱中,拖拽CrystalReportViewer到Default.aspx中。
如下图。
选择数据源,选择数据表源的下拉列表框,在选择新建报表源...,如下图。
新建报表源,当点击新建报表源,是出现对话框,如下图。
给报表控件指定名称,并为报表控件指定报表文件。
由于不存在报表文件,需要新建报表文件。
点击下拉列表,选择新建报表。
出现如下对话框。
创建新报表,给新报表命名。
确定,再确定
出现的对话框,使用报表向导,使用标准。
确定,出现如下对话框。
选择数据源,如下图。
出现如下对话框。
选择如下数据源,如图。
下一步,出现对话框,选择服务器,选择数据库,按情况勾选集成安全项,如下图。
注意:需确保服务器的服务已经打开。
查看方法:开始》所有程序》Microsoft SQL Server2008》配置工具》SQL Server 配置管理器,进入界面,如下图。
查看红框部分状态。
出现对话框,添加表,如下图。
点击下一步,出现对话框,选择要显示的字段,此处全选,如下图。
下一步,出现分组依据对话框,忽略,点击下一步,再点下一步,点击完成。
进入界面,如下图。
编辑数据表的显示样式。
忽略。
点击主报表预览。
如下图
保存,浏览网页如下图,在Toolbar工具条中,可实现报表的导出和打印功能。
同时可不显示工具条,将True改为Faulse设置如下图。
JAVA报表控件分析
JA V A报表分析1报表工具列表2Web报表工具的采购成本一般地,Web报表在一个软件开发项目中占的比例大概是 10% 左右,这两年有上升的趋势,据我现在项目中报表的开发量大的能占到20%。
下面的计算还是以10%为标准,每人月的成本按2.5万计算。
以一个100万的软件开发项目为例,Web报表的工作量占 10% ,即开发成本为 10 万元。
以 2.5 万 / 人月来计算,这个项目需要用 4 个人月来完成报表工作。
在实际的项目中,这 10 万元有几种方式分摊:(1)集成商以前的代码积累+程序员按项目定制。
说白了,就是纯手工编写代码。
这里又分两种情况: A 、是在集成商以前的代码积累基础之上直接按项目定制; B 、找开源的报表软件,在此之上做修改。
这样做能在一定程度上减少程序员的工作量和后期的维护成本,但是开发上要受限于开源软件。
且不论产品资料、函数接口什么的是否齐全,单是开源软件的 bug 问题就够让人挠头的了。
这两种方式不涉及到采用报表软件的成本问题,好处就是开发人员对程序能完全控制,开发成本直观。
坏处就是如果项目报表的要求比较高的话,程序员的工作量会相当大,报表开发效率低,报表的后期维护成本也比较高,只要客户要修改报表,就必须找到开发商,除非事先商量好,否则就会出现钱方面的扯皮。
实际应用中, A、B两种方式主要集中在中小型的项目。
(2)Web报表软件+程序员开发。
用报表软件的好处有很多,象提高开发效率、节省时间、缩短工期、方便后期维护等到,就不多说了。
但是市场上报表软件非常多,如何能选择出既符合项目需要、又能合理控制成本的工具呢?采购报表软件的成本遵循下面这个原则就行:选择的Web报表软件至少能减少 50% 的报表开发工作量,报表的总开发成本降低 1/3 左右。
拿在上面的例子来说:以前做报表需要4个人月,在使用Web报表工具后,应该2个人月就能完成;加上报表软件的采购成本,原来需要10万元才能做完的事情,应该要6、7万元就能做完。
Crystal+Reports+for+Eclipse--水晶报表eclipse插件
Crystal Reports for Eclipse--水晶报表eclipse插件1、介绍Crystal Reports for Eclipse用于和数据库共同工作,帮助你分析和理解那些重要的信息。
Crystal Reports让你创建简单报表非常容易,它还带有全面的工具库帮助你建立各种复杂的或者专业的报表。
2、特点(1)创建你所能想到的任何报表Crystal Reports可以从任何实际的数据源来创建报表。
公式集、交叉报表、子母表、带条件格式的表(通过对敏感数据采取相应措施)轻松创建;当文字和数字不足以说明信息时,提供各种图形或地图来辅助说明。
(2)扩展面向Web的报表Crystal Reports不仅能建立Word,Excel和E-mail格式的报表,还能建立面向Web的报表。
(3)合并报表进应用程序中通过Crystal Reports,开发者很容易把各种报表集成进你的应用程序中或Web开发中。
Crystal Reports支持目前市面上大部分流行的开发语言。
2、在线帮助在线帮助不但包括用于创建例如放置字段、格式化报表、记录排序等等格式的报表任务,还包括更多的特定区域信息例如建立公式、访问各种不同的数据。
使用在线帮助作为你建立基本报表的一个参考,也可以作为在创建报表中的新概念的一个介绍。
3、报表知识本节向你展示如何用Crystal Reports建立基本的报表。
首先学习报表设计环境,其次是怎样选择数据库表,把对象放进报表中,和怎样排序,编组,统计你的报表数据。
(1)建立新报表有两种选择:一是从头建立报表(from scratch从零做起;白手起家);二是以已有的报表为模板,据此建立报表。
(2)选择数据源和数据库字段Crystal Reports通过提供The Database Explorer(数据库浏览器)和The Field Explorer(字段浏览器)来让你轻松选择数据源和数据库字段。
CrystalReports水晶报表JDBC连接mysql数据库
Crystal Reports 2021( 水晶报表〕JDBC 连接mysql数据库在本文中,主要介绍的是Crystal Reports 2021 使用JDBC 连接mysql数据库.在连接之间,首先要确认你电脑上面都安装了mysql数据库.其次,就是jdbc连接数据时候所使用的相关jar包.接下来,就可以进行数据库的一些连接操作了.对JDBC不是很了解的,可以到完整java开发中JDBC连接数据库代码和步骤了解相关的操作1.翻开Crystal Reports 的数据专家2.点击JDBC (JNDI )出现:JDBC [JND1>连接请输入迷免言星#可以在“匚虬心"/.牌1 〞文件中设置和重复使 用预先期噩■名繇. 皿.连接:融蚪:教据库类蔻切: m 蜀〔可选〕S JWDI 连接⑤: nmr 根供程序皿: 邛DI 用户名堡〕: jimr 密码xr 初始上下女〔D:-步陌[下一步xi_?]| 输 ]| 皿消—|「蒂助3.输入url 和数据库类名,点击下一步:j dbc^y^ql ://localhost; 3306/test com. mysql. jdbc. Driverweblogic4.输入password 和user id点击完成即可.5.不过,在这操作之前,你需要做的是以下步骤:在你安装的Crystal Reports 目录:我安装的目录是:D:\crystal reports 2021\Common\4.0\java在此目录下面,有一个文件:CRConfig.xml 配置文件文件in 做:曰 查看M 工具〔D 寿就H 〕D:\crystal reports 2021\Common\4.0\java\CRConfig.xml亩1<?xml version="1.0" encoding="utf-8〞 ?><CrystalReportEngine-configuration > 2<reportlocation >../..</reportlocation > 3<timeout >10</timeout >45<ExternalFunctionLibraryClassNames > 6<classname></ classname> 7<classname></ classname>8</ExternalFunctionLibraryClassNames > 910<keycode>CFKOA-YOTTM2M-OOUFAFF-N43M </keycode> 11 <Javaserver-configuration > 12<DataDriverCommon >13<JavaDir>D:\crystal reports 2021\javasdk\bin </JavaDir>14<Classpath>D:\crystal reports 2021\Common\4.0\java/lib/mysql-connector-java-5.1.10-bin.jar; D:\crystal reports 2021\Common\4.0\java/lib/crlovmanifest.jar;D:\crystal reports 2021\Common\4.0\java/lib/C RLOVExternal.jar;D:\crystal reports 2021\Common\4.0\java/lib/CRDBJDBCServer.jar;D:\crystal reports 2D:\crystal reports 2021\Common\4.0\jdva|沮吸,包含到库中■女Jt下截:'最近访问的典共享* 刻录 飙建立1供 名称°山iib .licenseJj|xsd _________________________CRConfig.atnnl惨改曰期 类型 )2021/6/12 0:16 文彳犊 2021/6/12 Q02 玄件美 2021/6/12 0;01 文件夹 2010:53XML 皿008\Common\4.0\java/lib/CRDBXMLServer.jar;D:\crystal reports 2021\Common\4.0\java/lib/CRDBJavaB eansServer.jar;D:\crystal reports 2021\Common\4.0\java/lib/external/CRDBXMLExternal.jar;D:\crystal rep orts2021\Common\4.0\java/lib/external/log4j.jar;D:\crystal reports 2021\Common\4.0\java/lib/CRDBSForceServer.jar;D:\crystal reports 2021\Common\4.0\java/lib/external/CRDBSForceExternal.jar;${CLASSPATH} </Classpath>15<IORFileLocation >${TEMP} </IORFileLocation >16<JavaServerTimeout >1800</JavaServerTimeout >17<JavaServerStartupTimeout >30</JavaServerStartupTimeout >18<JVMMaxHeap >64000000 </JVMMaxHeap >19<JVMMinHeap >32000000</JVMMinHeap >20<NumberOfThreads >100</NumberOfThreads >21 </DataDriverCommon >22<JDBC>23<CacheRowSetSize > 100</CacheRowSetSize >24<JDBCURL ></JDBCURL >25<JDBCClassName ></JDBCClassName >26<JDBCUserName ></ JDBCUserName >27<JNDIURL ></JNDIURL >28<JNDIConnectionFactory ></JNDIConnectionFactory >29<JNDIInitContext >/</JNDIInitContext >30<JNDIUserName >weblogic </JNDIUserName >31<GenericJDBCDriver >32<Default>33<ServerType >UNKNOWN </ServerType>34<QuoteIdentifierOnOff >ON </QuoteIdentifierOnOff >35<StoredProcType >Standard</StoredProcType > 36<LogonStyle >Standard</LogonStyle >37</Default > 38<Sybase>39<ServerType >SYBASE </ServerType >40<QuoteIdentifierOnOff >OFF</QuoteIdentifierOnOff >41<DriverClassName >com.sybase.jdbc2.jdbc.SybDriver </DriverClassName >42<StoredProcType >Standard</StoredProcType >43<LogonStyle >MySQL </LogonStyle >44</Sybase>45</GenericJDBCDriver >46</JDBC>47<XML >48<CacheRowSetSize >100</CacheRowSetSize >49<PreReadNBytes >4096 </ PreReadNBytes >50<MaxCacheXMLSize >153600</MaxCacheXMLSize >51<XMLLocalURL ></XMLLocalURL >52<SchemaLocalURL ></ SchemaLocalURL >53<XMLHttpURL ></XMLHttpURL >54<SchemaHttpURL ></SchemaHttpURL >55<RepositoryPath >D:\crystal reports 2021\Common\4.0\java/lib/external </RepositoryPath >56<ExternalNamespace >D:\crystal reports 2021\Common\4.0\java/xsd/wsdl.xsd;D:\crystal reports 2021\C ommon\4.0\java/xsd/wsdl_encoding.xsd </ ExternalNamespace >57<SocketTimeout >60000 </SocketTimeout >58</XML >59<JavaBeans>60<CacheRowSetSize > 100</CacheRowSetSize >61 <JavaBeansClassPath></JavaBeansClassPath> 62</JavaBeans>63<SForce>64<CacheRowSetSize > 100</CacheRowSetSize >65<QueryBatchSize >2000</QueryBatchSize >66<SocketTimeout >600000 </SocketTimeout >67<UseProxy>FALSE </UseProxy>68<ProxyAddress >69</ProxyAddress >70<ProxyPort >71</ProxyPort>72<BatchLookupCacheJoinSize >200</BatchLookupCacheJoinSize > 73</SForce>74</Javaserver-configuration >75</CrystalReportEngine-configuration >在xml文件中,红色局部,即是我们添加的内容,即把jar包的路径添加到面去.6.而在此之前,我们需要进行如下操作:即把所用到的: mysql-connector-java-5.1.10-bin.jar <Classpath> 里包放到如下列图所示目录.◎9卜计算机►Software〔D;) ♦crystal reports 2021 ♦Common ►4,0 ♦javd * lib ♦文件因编翳匡I X(Y)工具CD辂助⑭组织, 囹翻开, 刻录新建文件夫瞄下裁K颠通最近访间的枝置庠i噂瑚囹片Fl g.鼠迅善下裁』假设乐,土Eofnvare (DiJ名稀*停改日朋J ,r. crlovjar2007/10/18 23:50utable Jar File._ crlovexternal.jar2007/10/4 14; 54Executable Jar File了七crlovm a nifest-j a r2007/10/4 14: S4ExecLitable Jar File,iu Cry^ ta 1 For mu 1 a t J ar2007/10/19 2:02Exec □tahlfr Jar Fik产.Cry5UlReportingCommcMi Jar2007/10/19 2;01Executable Jar File.勺eLnjs405.jar2007/10/18 21:16ExEutablu Jar File]J| flashjar2007/10/19 4:13Exec utablJar File-_ JSONCopyrighttxt2007/10/5 21;02TXT ^4t legaey_£L_plugins j^r2007/10/18 21:56Executable Jar Fil& .• loggingjar2007/10/18 21t20Execirtable Jar File M et a"f||eR.e nd2007/10/18 22:14Executable Jsr File1 m/5 q 1- cornector java *5.1.10-bin.jar 120L4/5/1& 14:19Exec utable Jar File rasappjar2007/10/18 22;47Executable Jar File|叫rascore.jar2007/10/18 2247EjcNirtahl日Jar File.rascore_en Jjr2007/10/18 2247Exec utabl» Jar File-r, sco rt_zh_CN .jar2007/10/18 2247Exucirt自blu J^r File效果图:JDBC连接数据库?创立一个以JDBC连接数据库的程序,包含7个步骤:1、加载JDBC驱动程序:在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM (Java虚拟机), 这通过ng.Class 类的静态方法forName(String className) 实现.例如:try {//加载MySql的驱动类Class.forName( "com.mysql.jdbc.Driver" );} catch (ClassNotFoundException e){System.out.println( "找不到驱动程序类,加载驱动失败!");e.printStackTrace();}成功加载后,会将Driver类的实例注册到DriverManager 类中.2、提供JDBC连接的URL?连接URL定义了连接数据库时的协议、子协议、数据源标识.?书写形式:协议:子协议:数据源标识协议:在JDBC中总是以jdbc开始子协议:是桥连接的驱动程序或是数据库治理系统名称.数据源标识:标记找到数据库来源的地址与连接端口.例如:(MySql的连接URL)jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;useUnicode= true :表示使用Unicode 字符集.如果characterEncoding 设置为gb2312 或GBK,本参数必须设置为true . characterEncoding=gbk :字符编码方式.3、创立数据库的连接?要连接数据库,需要向java.sql.DriverManager 请求并获得Connection 对象,该对象就代表一个数据库的连接.?使用DriverManager 的getConnectin(String url , String username ,String password ) 方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得.例如://连接MySql数据库,用户名和密码都是rootString url = "jdbc:mysql://localhost:3306/test〞;String username = "root" ;String password = "root" ;try {Connection con =DriverManager.getConnection(url , username , password );} catch (SQLException se){System.out.println( "数据库连接失败!");se.printStackTrace() ;}4、创立一个Statement?要执行SQL语句,必须获得java.sql.Statement 实例,Statement 实例分为以下3 种类型:1、执行静态SQL语句.通常通过Statement 实例实现.2、执行动态SQL语句.通常通过PreparedStatement 实例实现.3、执行数据库存储过程.通常通过CallableStatement 实例实现.具体的实现方式:Statement stmt = con.createStatement() ;PreparedStatementpstmt = con.prepareStatement(sql) ;CallableStatementcstmt =con.prepareCall( "{CALL demoSp(? , ?)}" ) ;5、机行SQL语句Statement 接口提供了三种执行SQL 语句的方法:executeQuery 、executeUpdate和execute1、ResultSetexecuteQuery(String sqlString) :执行查询数据库的SQL 语句,返回一个结果集(ResultSet )对象.2、int executeUpdate(String sqlString) :用于执行INSERT、UPDATE 或DELETE 语句以及SQL DDL 语句,如:CREATE TABLE 和DROP TABLE 等3、execute(sqlString): 用于执行返回多个结果集、多个更新计数或二者组合的语句.具体实现的代码:ResultSetrs = stmt.executeQuery( "SELECT * FROM ..." );int rows = stmt.executeUpdate( "INSERT INTO ..." );boolean flag = stmt.execute(String sql);6、处理结果两种情况:1、执行更新返回的是本次操作影响到的记录数.2、执行查询返回的结果是一个ResultSet 对象.? ResultSet 包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问.?使用结果集(ResultSet )对象的访问方法获取数据:while (rs.next()){String name = rs.getString( "name");String pass = rs.getString( 1) ; // 此方法比拟高效}(列是从左到右编号的,并且从列1开始)7、关闭JDBC对象操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:1、关闭记录集2、关闭声明3、关闭连接对象if (rs != null ){ //关闭记录集try {rs.close() ;} catch (SQLException e){e.printStackTrace() ;}}if (stmt != null ){ // 关闭声明try {stmt.close();} catch (SQLException e){e.printStackTrace();}}if (conn != null ){ //关闭连接对象try {conn.close();} catch (SQLException e){e.printStackTrace();}}。
水晶报表教程
水晶报表教程水晶报表是一种常见的数据可视化工具,可以帮助用户将数据转化为易于理解和分析的图表和报表。
下面是一个简单的水晶报表教程,介绍如何使用水晶报表创建和设计报表。
步骤1:安装和启动水晶报表软件首先,您需要安装水晶报表软件。
访问SAP官网下载并安装最新版本的水晶报表软件。
步骤2:连接到数据源打开水晶报表软件后,选择“文件”菜单中的“数据集”选项。
然后选择您要使用的数据源类型(如数据库、Excel 文件等),并创建一个数据集连接。
根据您选择的数据源类型,您可能需要提供相关的连接信息和凭据(例如数据库服务器名称、数据库名称、用户名和密码等)。
步骤3:创建报表一旦成功连接到数据源,您就可以开始创建报表了。
首先,选择“文件”菜单中的“新建”选项,然后选择报表类型(如表格、柱状图、折线图等)。
接下来,从左侧的报表工具栏中选择适当的工具来设计和配置报表布局。
您可以添加和编辑标题、页眉、页脚、数据字段等。
步骤4:配置报表数据在创建报表布局之后,您需要配置报表数据。
从左侧的报表工具栏中选择“数据”选项卡,并选择要显示在报表中的数据字段。
您还可以对数据进行排序、筛选、分组等操作,以进一步定义报表的显示方式。
步骤5:设置报表样式报表的样式设置对于提高可视化效果非常重要。
您可以在报表工具栏中选择“样式”选项卡来为报表选择合适的颜色、字体、边框等样式。
步骤6:预览和保存报表在完成报表设计后,您可以使用预览功能来查看报表的效果。
选择“文件”菜单中的“预览”选项,在预览模式下查看报表。
如果满意报表的效果,选择“文件”菜单中的“保存”选项,将报表保存到指定的位置。
以上就是一个简单的水晶报表教程,希望对您有所帮助。
请注意,水晶报表是一种复杂的工具,还有许多高级功能可以探索和学习。
您可以参考水晶报表的官方文档和教程,深入了解和使用更多功能。
水晶报表开发
1.新建一个数据集(DataSet1.xsd),这个数据集就是水晶报表的数据源。
2.设计报表样式,设置数据源时选择你新建的数据集3.在程序中编写代码,加载数据DataSet1 dataset = new DataSet1();SqlDataAdapter ap = new SqlDataAdapter();ap.Fill(DataSet1,"这里的表名必须和新建数据集中的表名一样");4.CrystalReport CrystalReport1 = new CrystalReport();CrystalReport1.setdatasource(ds);就是新建一个CrystalReport文件。
CrystalReport CrystalReport1 = new CrystalReport();你所实力化的类型就是刚才新建的CrystalReport文件,你还要加CrystalReportViewer1.ReportSource = CrystalReport1;CrystalReportViewer1在工具栏中有,它是承载报表文件的控件5.Imports CrystalDecisions.CrystalReports.EngineImports CrystalDecisions.WebImports CrystalDecisions.SharedPublic Class Form1Public tempdb As StringPublic temp As StringDim strqx2(10000)Public constr As String = "uid=sa;pwd=sa2000;database=smallsys;server=oa"Public mycon As New System.Data.SqlClient.SqlConnection(constr)Dim x As IntegerDim xx As IntegerPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadIf mycon.State = ConnectionState.Closed ThenTrymycon.Open()Catch ex As ExceptionMsgBox("数据库连接失败!", MsgBoxStyle.Exclamation, "提示")End TryEnd IfDim mcom As New SqlCommand("select remark from RPTdbinfo", mycon)Dim myr As SqlDataReader = mcom.ExecuteReaderWhile myr.ReadEnd Whilemyr.Close()Dim rpt As New CachedCrystalReport1CrystalReportViewer1.ReportSource = rptTreeView1.Enabled = FalseEnd SubPrivate Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelecttemp = TreeView1.SelectedNode.TextTryokey()Catch ex As ExceptionEnd TryEnd SubSub okey()If temp <> "" ThenDim rdPublishers As New ReportDocument()rdPublishers.Load(tmppath(temp))Dim strUserID As String = ""Dim strPassword As String = ""If Trim(tmpkind(CStr(temp))) = "ERP" ThenstrUserID = "sa"strPassword = "******"rdPublishers.SetDatabaseLogon(strUserID, strPassword)End IfIf Trim(tmpkind(temp)) = "MES" ThenstrUserID = "sa"strPassword = "******"rdPublishers.SetDatabaseLogon(strUserID, strPassword)End IfIf Trim(tmpkind(temp)) = "OA" ThenstrUserID = "sa"strPassword = "******"rdPublishers.SetDatabaseLogon(strUserID, strPassword)End IfCrystalReportViewer1.ReportSource = rdPublishersEnd IfEnd SubFunction tmppath(ByVal temp As String) As StringDim strpathDim dbase As New Data.DataSetDim dc As SqlDataAdapterdc = New SqlDataAdapter("select * from RPTpath where RPTname='" & temp & "'", mycon) dc.Fill(dbase, "tbid")strpath = dbase.Tables("tbid").Rows(0)("RPTpath")‘???Return strpathEnd FunctionFunction tmpkind(ByVal temp2 As String) As StringDim strkindDim dbase As New Data.DataSetDim dc As SqlDataAdapterdc = New SqlDataAdapter("select * from RPTpath where RPTname='" & temp2 & "'", mycon) dc.Fill(dbase, "tbid")strkind = dbase.Tables("tbid").Rows(0)("RPTkind")Return strkindEnd FunctionPrivate Sub 首次运行必读RToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 首次运行必读RToolStripMenuItem.Clickinfor.Show()End SubPrivate Sub 关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem.ClickEnd SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim strkind As StringDim strqx As StringDim dbase As New Data.DataSetDim dc As SqlDataAdapterdc = New SqlDataAdapter("select * from users where uid='" & Trim(TextBox1.Text) & "'", mycon)dc.Fill(dbase, "tbid")strkind = Trim(dbase.Tables("tbid").Rows(0)("pass"))strqx = Trim(dbase.Tables("tbid").Rows(0)("uqx"))If strkind =Trim(TextBox2.Text) ThenTreeView1.Enabled = Truexx = 0For x = 1 To 10000 Step 5If Mid(strqx, x, 4) <> "" Thenstrqx2(xx) = Mid(strqx, x, 4)xx = xx + 1ElseExit ForEnd IfNextElseMsgBox("Password is wrong!")End If'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TreeView1.Nodes.Clear()Dim deptmp(100)If mycon.State = ConnectionState.Closed Then mycon.Open()Dim mcomm As New SqlCommand("select distinct dep from RPTpath", mycon)Dim myrm As SqlDataReader = mcomm.ExecuteReaderDim k As Integer = 0While myrm.Readdeptmp(k) = Trim(myrm(0))k = k + 1End Whilemyrm.Close()Dim h As Integer = 0Dim y As Integer = 0For h = 0 To k - 1 '部门数量TreeView1.Nodes.Add(Trim(deptmp(h)))' For y = 0 To y = xx - 1 '报表权限数量dc=New SqlDataAdapter("select * from RPTpath where dep='"&Trim(deptmp(h))&"' ", mycon)dc.Fill(dbase, "tbid1")If (dbase.Tables("tbid1").Rows.Count > 0) ThenDim i As IntegerFor i = 0 To dbase.Tables("tbid1").Rows.Count - 1For y = 0 To xx - 1If Trim(dbase.Tables("tbid1").Rows(i)("rptid")) = strqx2(y) Then TreeView1.Nodes(h).Nodes.Add(Trim(dbase.Tables("tbid1").Rows(i)("rptname"))) End IfNextNextEnd Ifdbase.Clear()NextMenuStrip1.TabIndex = 0TreeView1.TabIndex = 9End SubEnd Class'*****************************************************************'*crystal report 的使用示例'*适用版本:9.0'*情况:此为在水晶报表软件中制作报表(rpt文件)的调用方式'*菜单->工程->引用->选择:'*1、Crystal Reports 9 ActiveX Desioner Desion and Runtime Library'*2、Crystal Reports 9 activeX Desioner Run Time Library'*好多朋友有这个问题:报表显示后数据没有刷新,解决方法如下:'*1、在报表的设计界面,菜单“文件”--“选项”-“建立报表”选项卡--把“将数据与报表一起保存”前的勾去掉即可'*2、调用报表对象的DiscardSavedData方法'*****************************************************************Option ExplicitDim Report As New CrystalReport1Dim wjfilesys As FileSystemObject 'FSO 对象,用于文件操作Dim WithEvents CrSecRH As Section '报表显示区对象Dim capp As New CRAXDDRT.Application '报表集合对象Dim carp As New CRAXDRT.Report '报表集合中的报表对象Dim carsubp As New CRAXDRT.Report '报表集合对象中的子报表对象Dim Pic2 As OLEObject '报表对象中的Ole对象Dim mytxt As CRAXDRT.TextObject '报表对象中的Textbox对象Private Sub Combo1_Change() '放大(缩小)比例CRViewer91.Zoom (CInt(Combo1.Text))End SubPrivate Sub Command1_Click() '显示第一页CRViewer91.ShowFirstPageEnd SubPrivate Sub Command10_Click() '打印报表CRViewer91.PrintReportEnd SubPrivate Sub Command11_Click()CRViewer91.showclosebuttonEnd SubPrivate Sub Command2_Click() '刷新报表CRViewer91.RefreshEnd SubPrivate Sub Command3_Click() '显示上一页CRViewer91.ShowPreviousPageEnd SubPrivate Sub Command4_Click() '显示下一页CRViewer91.ShowNextPageEnd SubPrivate Sub Command5_Click() '显示最后一页CRViewer91.ShowLastPageEnd SubPrivate Sub Command6_Click() '在报表内容内搜索If (txtSearch.Text <> "") ThenCRViewer91.SearchForText (txtSearch.Text)End IftxtSearch.Text = ""End SubPrivate Sub Command7_Click() '导入出PDFDim myExportFile As StringmyExportFile = App.Path + "\temp.pdf"If wjfilesys.FileExists(myExportFile) Thenwjfilesys.DeleteFile (myExportFile)End IfReport.ExportOptions.DiskFileName = myExportFileReport.ExportOptions.FormatType = crEFT PortableDocFormat Report.ExportOptions.DestinationType = crEDTDiskFileReport.ExportOptions.PDFExportAllPages = TrueReport.Export (False)End SubPrivate Sub Command8_Click() '导出到ExcelDim myExportFile As StringmyExportFile = App.Path + "\temp.xls"If wjfilesys.FileExists(myExportFile) Thenwjfilesys.DeleteFile (myExportFile)End IfReport.ExportOptions.DiskFileName = myExportFileReport.ExportOptions.FormatType = crEFT Excel97Report.ExportOptions.DestinationType = crEDTDiskFileReport.ExportOptions.PDFExportAllPages = TrueReport.Export (False)End SubPrivate Sub Command9_Click() '导出到WORDDim myExportFile As StringmyExportFile = App.Path + "\temp.doc"If wjfilesys.FileExists(myExportFile) Thenwjfilesys.DeleteFile (myExportFile)End IfReport.ExportOptions.DiskFileName = myExportFileReport.ExportOptions.FormatType = crEFT WordForWindowsReport.ExportOptions.DestinationType = crEDTDiskFileReport.ExportOptions.PDFExportAllPages = TrueReport.Export (False)End SubPrivate Sub Form_Load()Screen.MousePointer = vbHourglassDim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim strsql As StringDim i As IntegerIf cn.State = adStateOpen Then cn.Close'SQL SERVER连接方式With cn.Provider = "sqloledb".ConnectionString = "data source=dd;initial catalog=dfd;user id=sa;password=aaa".OpenEnd With'Mdb的连接方式With cn.Provider = "Microsoft.Jet.OLEDB.4.0".ConnectionString = "Data Source=" + App.Path + "\Test.mdb;Persist Security Info=False" .OpenEnd Withstrsql = "select * from carsort"If rs.State = adStateOpen Then rs.CloseWith rs.ActiveConnection = cn.CursorLocation = adUseClient.Open strsql, cn, adOpenDynamic, adLockOptimisticEnd WithSet carp = capp.OpenReport(App.Path + "\CryStalTest.rpt") '取报表对象Set carsubp = carp.OpenSubreport("myhgyp") '取子报表对象Set CrSecRH = carp.Sections("PageHeaderSection1") '取报表头显示区对象Set Pic2 = carp.Sections("PageHeaderSection1").ReportObjects("picture1")'取报表头显示区中的Ole对象Set mytxt = CrSecRH.ReportObjects("mytxt")For i = 1 To carp.Database.Tables.Count '设置报表的数据源If carp.Database.Tables.Item(i).Name = "carsort" Thencarp.Database.Tables(i).SetDataSource rsEnd IfNextFor i = 1 To carsubp.Database.Tables.Count '设置子报表的数据源If carp.Database.Tables.Item(i).Name = "carsort" Thencarsubp.Database.Tables(i).SetDataSource rsEnd IfNextScreen.MousePointer = vbHourglass'第一种设置参数的方式(carp报表集合对象)carp.ParameterFields(1).ClearCurrentValueAndRangecarp.ParameterFields(1).AddCurrentValue ("myhgyp")carp.ParameterFields(2).ClearCurrentValueAndRangecarp.ParameterFields(2).AddCurrentValue (CInt("3"))'第二种设置参数的方式(carp报表集合对象)carp.ParameterFields.GetItemByName("gg").ClearCurrentValueAndRangecarp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myh11" & vbCrLf & "-2gyp") carp.ParameterFields.GetItemByName("ff").ClearCurrentValueAndRangecarp.ParameterFields.GetItemByName("ff").AddCurrentValue (CInt("673"))carp.DiscardSavedDataCRViewer91.ReportSource = carpCRViewer91.ViewReportScreen.MousePointer = vbDefaultCRViewer91.Zoom 100'----------------------Screen.MousePointer = vbDefaultSet wjfilesys = CreateObject("Scripting.FileSystemObject")End SubPrivate Sub CrSecRH_Format(ByVal pFormattingInfo As Object)'格式化报表头显示区中的对象Set Pic2.FormattedPicture = LoadPicture(App.Path & "\tsconfig.bmp") 'changes the pic in the Report Headermytxt.SetText Format(mytxt.Text, "####年##月##日") '格式化TextBox中的文本显示方式End SubPrivate Sub Form_Resize() '设置报表显示区域CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd Sub###一、在使用自带的水晶报表时,请注册,否则只能使用30次二、使用CrystalReportViewer进行预览,CrystalReportViewer控件允许在应用程序中查看Crystal ReportReportSource属性用于设置要查看哪个报表。
java与水晶报表结合
使用eclipse在jsp上显示水晶报表(转)2008-09-10 20:23:32| 分类:Java | 标签:|举报|字号大中小订阅我使用的开发IDE是eclipse3.2,服务器是tomcat5.5新建一个Crystal reports web项目在Target runtime选择apache tomcat v5.5下一步中crystal reports java reporting component、dynamic web module、java是默认选中的,这三个是必需的,你也可添加struts,后面的设置会要求你添加struts的类库。
在最后面默认加入示例的数据库和报表。
这样一个Crystal Reports web项目就建立了(上面的步骤应该是地球人都可以完成吧)在里面有个CrystalReport1.rpt和CrystalReport_viewer.jsp右键CrystalReport_viewer.jsp->运行方式->Run on Server,点击完成。
你应该就可以看到一个空的水晶报表了吧(为什么空的,当然啦,CrystalReport1.rpt本身是空的)在看看sample reports文件夹里面,有4个示例的.rpt报表文件,右击其中任何一个,选中Crystal Reports-》创建查看器JSP,就会创建一个*-viewer.jsp文件。
运行这个文件,你应该可以看到一个水晶报表了吧。
我想这对大部分人应该都是没有问题的,剩下的事情就是好好分析这个项目里面所有的东东了-------------------------------------------------------------------------------------------------------------------------------------------------------上面什么东西是在任何项目中实现都必须的呢?为此我特意建立一个新的tomcat项目,最好建一个简单的jsp页面测试下你的tomcat项目是否可以正常运行.通过本人的实验,在其他项目中JSP运行水晶报表的话,需要的类文件跟配置.1. 添加一个用户库如CrystalReports Libraries,把下面的*.jar添加进去commons-collections-3.1.jar,commons-configuration-1.2.jar,commons-lang-2.1.jar,commons-logging.jar,Concurrent.jar,CrystalCharting.jarCrystalCommon.jarCrystalContentModels.jarCrystalDatabaseConnectors.jarCrystalExporters.jarCrystalExportingBase.jarCrystalFormulas.jarCrystalQueryEngine.jarCrystalReportEngine.jarCrystalReportingCommon.jarderby.jaricu4j.jarjrcadapter.jarjrcerom.jarkeycodeDecoder.jarlog4j.jarMetafileRenderer.jarmsbase.jarmssqlserver.jarmsutil.jarrasapp.jarrascore.jarReportPrinter.jarrpoifs.jarserialization.jarURIUtil.jarwebreporting.jarwebreporting-jsf.jarxercesImpl.jarxml-apis.jarXtreme.jar(总共36个jar,里面有一些在其他的库已经有的了,在项目中添加这个自定义库就行了)2. 把上个例子中的crystalreportviewers文件夹放在WEB-INF文件夹同一目录下。
java中使用水晶报表
首先在界面上放置两个dataTimePicker控件,分别取名dtpStart,dtpEnd,可以任意选择起止时间,一个“测试报表”按钮(本案例该按钮起到刷新报表作用),取名btnReport,还有crytalReportView控件是少不了的(要不然怎么查看报表呢:)),采用默认名称,Form界面就这些东西。
既然是PUSH模式,就必须给它一个“骨架”,在项目中添加新项选择数据集,如图示:名称随意(我这里是默认名DataSet1),然后打开数据集设计界面,右击->添加->DataTable,此时界面已多出DataTable1,右击DataTable1->添加->列,输入列名dtValue,在属性框中更改其数据类型为System.DateTime,如图示:继续添加两列(根据需求而定,这里的列相当于数据库中的字段),TextType(System.String),iCount(System.Int32),记得保存,此时“骨架”构造完毕,此时还是一个空匣子。
往项目中添加一模板rpt文件,跟刚才添加数据集过程类似,我这边继续采用默认名,打开rpt文件,会有一个“字段资源管理器”框,右击数据库字段->数据库专家,会弹出一个数据库专家界面,在这个界面我们把刚才构造的“骨架”放到报表中来,如图示:在数据库字段中把要显示的字段拖放到报表详细资料节,如图示:然后插入交叉表,该是本文的重点之一:右击报表尾空白处->插入->交叉表,在交叉表专家中设置如下:重点也就是这样,很简单吧:)然后我们设置下日期和数字的显示格式,右击日期字段dtValue对象->设置对象格式相应的数字对象也设置下这样交叉表部分就算完成了,最后我们再根据设置的起止时间进行数据过滤(本文另一重点)这里我们用两个参数来接收这两个起止时间值,在字段资源管理器中右击参数字段->新建,如图示同理再新建一参数(注意类型的选择),取名periodEnd,然后在报表空白处点右键->报表->选择专家,此时会弹出选择专家界面点确定后在设置如下:最终运行效果如下。
JavaSwing制作水晶效果
JavaSwing制作水晶效果一、序言关于“Java做不好桌面”的争论已经由来已久。
虽然Swing和Java2D已经有超过十年的历史,也有JIDE、JGoodies、TWaver等不少开源Swing组件,但是用Java做桌面程序仍然不是一件轻松的事。
本《Java也惊艳》系列文章,就是想通过一些简单生动的例子,和大家一起认识Java、探索Swing。
其实你只需要多一点创意、多一点耐心,你的Java程序也可以“惊艳”!本文就带您一起进入Java的“水晶之恋”。
二、立体水晶效果受苹果公司的影响,现在立体水晶风格的界面非常流行。
Java也可以吗?我们不妨先尝试一下用Java绘制一个立体水晶风格的按钮到底有多难。
一个立体的水晶按钮应当有一个图标、一个圆角矩形区域、边框以及一些立体反光效果,如下图:简单思路如下:先画矩形区域,然后画图标,然后设置clip并画高亮反光区域,最后画外部边框。
具体实现比较简单,主要代码如下:Color color = TWaverUtil.getRandomColor();RoundRectangle2D body = new RoundRectangle2D.Float(x, y, size, size, size / 3, size / 3);//draw bodyg2d.setColor(color);GradientPaint paint = new GradientPaint(x,y,color.darker(),x,y + size,color.brighter().brighter());g2d.setPaint(paint);g2d.fill(body);//draw imageg2d.setClip(body);Image image = TWaverUtil.getImage("/glass/" + i + ".png");g2d.drawImage(image,x + (size - image.getWidth(null)) / 2,y + (size - image.getHeight(null)) / 2,null);g2d.setClip(null);//draw highlight.Shape highlightArea = createHighlightShape(x, y, size, body);g2d.setColor(new Color(255, 255, 255, 150));g2d.fill(highlightArea);//draw outline.g2d.setColor(color.darkGray);g2d.draw(body);其中,对高亮区域的计算,可以用一个圆心在左上方的大圆形和矩形进行剪切:private static Shape createHighlightShape(int centerX, int centerY, int size, Shape body) {double myRadius = size * 4;double x = centerX - size * 2.3;double y = centerY - size * 3.2;Ellipse2D.Double circle = new Ellipse2D.Double(x, y, myRadius, myRadius);Area area = new Area(circle);area.intersect(new Area(body));return area;}运行程序效果如下:三、更多变化根据上面例子稍作形状变换,可以画出立体水晶球的按钮。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用eclipse在jsp上显示水晶报表(转)2008-09-10 20:23:32| 分类:Java | 标签:|举报|字号大中小订阅我使用的开发IDE是eclipse3.2,服务器是tomcat5.5新建一个Crystal reports web项目在Target runtime选择apache tomcat v5.5下一步中crystal reports java reporting component、dynamic web module、java是默认选中的,这三个是必需的,你也可添加struts,后面的设置会要求你添加struts的类库。
在最后面默认加入示例的数据库和报表。
这样一个Crystal Reports web项目就建立了(上面的步骤应该是地球人都可以完成吧)在里面有个CrystalReport1.rpt和CrystalReport_viewer.jsp右键CrystalReport_viewer.jsp->运行方式->Run on Server,点击完成。
你应该就可以看到一个空的水晶报表了吧(为什么空的,当然啦,CrystalReport1.rpt本身是空的)在看看sample reports文件夹里面,有4个示例的.rpt报表文件,右击其中任何一个,选中Crystal Reports-》创建查看器JSP,就会创建一个*-viewer.jsp文件。
运行这个文件,你应该可以看到一个水晶报表了吧。
我想这对大部分人应该都是没有问题的,剩下的事情就是好好分析这个项目里面所有的东东了-------------------------------------------------------------------------------------------------------------------------------------------------------上面什么东西是在任何项目中实现都必须的呢?为此我特意建立一个新的tomcat项目,最好建一个简单的jsp页面测试下你的tomcat项目是否可以正常运行.通过本人的实验,在其他项目中JSP运行水晶报表的话,需要的类文件跟配置.1. 添加一个用户库如CrystalReports Libraries,把下面的*.jar添加进去commons-collections-3.1.jar,commons-configuration-1.2.jar,commons-lang-2.1.jar,commons-logging.jar,Concurrent.jar,CrystalCharting.jarCrystalCommon.jarCrystalContentModels.jarCrystalDatabaseConnectors.jarCrystalExporters.jarCrystalExportingBase.jarCrystalFormulas.jarCrystalQueryEngine.jarCrystalReportEngine.jarCrystalReportingCommon.jarderby.jaricu4j.jarjrcadapter.jarjrcerom.jarkeycodeDecoder.jarlog4j.jarMetafileRenderer.jarmsbase.jarmssqlserver.jarmsutil.jarrasapp.jarrascore.jarReportPrinter.jarrpoifs.jarserialization.jarURIUtil.jarwebreporting.jarwebreporting-jsf.jarxercesImpl.jarxml-apis.jarXtreme.jar(总共36个jar,里面有一些在其他的库已经有的了,在项目中添加这个自定义库就行了)2. 把上个例子中的crystalreportviewers文件夹放在WEB-INF文件夹同一目录下。
这个就是你能看到水晶报表的基本框架,相当于.net里面的水晶报表控件了的源代码了。
3. 把crystal-tags-reportviewer.tld放在WEB-INF下,主要标签4. web.xml 在<web-app>中间添加,主要是读入crystalreportviewers<context-param><param-name>crystal_image_uri</param-name><param-value>crystalreportviewers</param-value></context-param><context-param><param-name>crystal_image_use_relative</param-name><param-value>webapp</param-value></context-param>5. 把CRConfig.xml放在src文件夹下,水晶报表的配置文件,如果你有注册,注册码也会在这文件里面CRConfig.xml<?xml version="1.0" encoding="UTF-8"?><CrystalReportEngine-configuration><reportlocation>../..</reportlocation><timeout>0</timeout><ExternalFunctionLibraryClassNames><classname/></ExternalFunctionLibraryClassNames></CrystalReportEngine-configuration>配置超时间隔利用CRConfig.xml 文件,您可以配置确定何时丢弃不活动报表源的超时间隔(以分钟为单位)。
这是必要的,因为不活动报表源仍然会消耗系统资源(如数据库连接、服务器内存以及临时文件使用的磁盘空间)。
可以通过在CRConfig.xml 文件中设置timeout 标记的值来指定超时间隔。
默认情况下,超时间隔为10 分钟。
通过将该值设置为0,可以将Java Reporting Component 配置为没有超时。
超时间隔仅适用于不活动报表-- 正在处理的报表不会因超出此值而超时。
每次成功完成一个报表源请求时,超时定时器将会重置。
如果在超时间隔内没有使用某个报表源,则会丢弃该报表源,并将其资源提供给其他进程使用。
6. 在jsp页面插入这段代码<%@ taglib uri="/crystal-tags-reportviewer.tld" prefix="crviewer" %><crviewer:viewer reportSourceType="reportingComponent" viewerName="rcname-viewer" reportSourceVar="rcname" isOwnPage="true"><crviewer:report reportName="rcname.rpt" /></crviewer:viewer>感觉像在用.net里面的水晶报表控件一样,不只viewer,连partviewer也可以的.在(一)中的配置保持不变,前一篇是用crviewer标签来实现jsp显示水晶报表的这篇文章教你如何自己写代码来享受水晶报表的report_source.jsp<%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%//Crystal Java Reporting Component (JRC) imports.%><%-- jrcerom.jar--%><%@page import="com.crystaldecisions.reports.sdk.*" %><%-- rascore.jar--%><%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %><%//水晶报表的位置final String REPORT_NAME = "view_report.rpt";%><%try ...{//打开报表ReportClientDocument reportClientDoc = new ReportClientDocument();reportClientDoc.open(REPORT_NAME, 0);//把报表源放进session,传递到报表显示页面session.setAttribute("reportSource", reportClientDoc.getReportSource());//转到报表显示页面response.sendRedirect("CrystalReportViewer.jsp");}catch(ReportSDKException ex) ...{out.println(ex);}catch(Exception ex) ...{out.println(ex);}%>上面的可以封装到javabean里面reportClientDoc.getDatabaseController().logon(USERNAME, PASSWORD);设置数据库的登陆用户,如果浏览这个报表的用户需要设置不同的权限的话,那就需要设置上面这个了CrystalReportViewer.jsp<%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%//Crystal Report Viewer imports.%><%-- webreporting.jar--%><%@page import="com.crystaldecisions.report.web.viewer.*"%><%-- rascore.jar--%><%@page import="com.crystaldecisions.reports.sdk.*" %><%//建立一个viewer对象实例,并设置CrystalReportViewer viewer = new CrystalReportViewer();viewer.setOwnPage(true);viewer.setOwnForm(true);viewer.setPrintMode(CrPrintMode.ACTIVEX);//从session中取报表源Object reportSource = session.getAttribute("reportSource");viewer.setReportSource(reportSource);//显示水晶报表viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);%>第二种方法直接用一个页面CrystalReportViewer.jsp<%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%//Crystal Java Reporting Component (JRC) imports.%><%-- jrcerom.jar--%><%@page import="com.crystaldecisions.reports.sdk.*" %><%-- rascore.jar--%><%@page import="com.crystaldecisions.sdk.occa.report.lib.*" %><%-- webreporting.jar--%><%@page import="com.crystaldecisions.report.web.viewer.*"%><%//水晶报表的位置final String REPORT_NAME = "view_report.rpt";%><%try ......{//打开报表ReportClientDocument reportClientDoc = new ReportClientDocument();reportClientDoc.open(REPORT_NAME, 0);//把报表源放进session,传递到报表显示页面//session.setAttribute("reportSource", reportClientDoc.getReportSource());//建立一个viewer对象实例,并设置CrystalReportViewer viewer = new CrystalReportViewer();viewer.setOwnPage(true);viewer.setOwnForm(true);viewer.setPrintMode(CrPrintMode.ACTIVEX);//从session中取报表源//Object reportSource = session.getAttribute("reportSource");//viewer.setReportSource(reportSource);viewer.setReportSource(reportClientDoc.getReportSource());//显示水晶报表viewer.processHttpRequest(request, response,this. getServletConfig().getServletContext(), null);//转到报表显示页面//response.sendRedirect("CrystalReportViewer.jsp");}catch(ReportSDKException ex) ......{out.println(ex);}catch(Exception ex) ......{out.println(ex);}%>个人感觉第一种方法好,报表源跟显示分开,安全,重用方便在.net中,你可以很容易的用sql语句过滤报表数据,但在CR4E中没这样的功能设定,但可以通过编写代码完成。