VB中水晶报表使用讲解学习

合集下载

水晶报表使用经验(不断扩充中) [6页]

水晶报表使用经验(不断扩充中) [6页]

水晶报表使用经验(不断扩充中)一:水晶报表获取数据库字段前一段的课程中我讲了关于如何获取报表的数据库字段,当时讲的方法是使用OLE DB建立新的数据链接,通过SQL语句来获取要在报表中绑定的数据库字段的,从而避免了使用强类型数据集,实际上这是使用了PULL模式,在实际应用上它会两次链接到数据库,会造成性能损失。

下面我介绍一下使用“仅字段定义”方法来获取数据库字段:1. 1:建立新报表。

2:在“数据库专家”中选择“创建新连接”中的“仅字段定义”。

如下图:在弹出的窗体中选择“创建文件”,如下图:在弹出的“数据库定义工具”中输入字段名称、选择字段类型即可编辑所需要的字段了,(如下图)。

创建完字段后关闭窗体,弹出窗体,选择“保存”会生成ttx类型的文件,(如下图),此文件无须放到项目中,删掉也无所谓,亦可以保留以待日后更改。

以上是通过“仅定义字段”方法来获取绑定字段的方法。

通过这种方法来获取字段更快捷灵活,且不会占用数据库资源,而且也不用使用强类型数据集。

二:样式表的应用。

初始状态:一个web页,一个CrystalReportViewer控件,使用CrystalReportViewer控件加载rpt文件。

实现方法有两种:1:在web页的Html 编码内进行样式表的引用,然后在rpt文件中的要进行设置的对象的CssClass属性写入样式名称即可。

2:在CrystalReportViewer控件的CssFileName属性中写入样式表文件的相对路径,然后再在rpt文件中在设置即可。

三:含有子报表的报表的显示问题。

初始:使用“仅字段定义”方法定义了两个表,一个用在主报表上,一个用在子报表上。

设计完报表后,示例代码如下:RPT.PingShenForLiGang rpt = new CRForCA.RPT.PingShenForLiGang();System.Data.DataSet ds = BuildDS();rpt.SetDataSource(ds);this.CrystalReportViewer1.ReportSource = rpt;这样做在运行时会弹出窗体要什么验证的,所以需要对子报表的数据进行绑定,那么,如何解决呢?引用命名空间:using CrystalDecisions.CrystalReports.Engine;以上代码改为:RPT.PingShenForLiGang rpt = new CRForCA.RPT.PingShenForLiGang();System.Data.DataSet ds = BuildDS();//获取子报表SubreportObject oSubreport1 =(SubreportObject)rpt.DetailSection3.ReportObjects["Subreport5"];ReportDocument oSub1 = oSubreport1.OpenSubreport("mytest");//绑定子报表oSub1.SetDataSource(ds);//绑定主报表rpt.SetDataSource(ds);this.CrystalReportViewer1.ReportSource = rpt;需要对子报表在进行数据绑定,这样就会解决这个问题了。

Visual Studio 2008 水晶报表快速入门

Visual Studio 2008 水晶报表快速入门

Visual Studio 2008 水晶报表快速入门医手先新建一个Web项目: CrystalWebApp为项目添加新项: CrystalReport1.rpt在弹出的对话框,选择作为空白报表。

用向导当然更方便,但在这里,白手起家或许能更好地理解。

在工具箱选择 Text Object,拖到报表头。

写些字,设置字体之类的。

在属性选项卡设置它的名字为 txtTitle 以供将来程序访问。

水晶报表对于程序员来说其实跟 Repeater 控件是很相似的。

于是需要数据和字段名。

在Repeater 控件中你可以很随意地指定要绑定的字段名。

在程序还没有真正运行之前,这个字段名可以没有任何表的字段名跟它匹配,也可以没有任何类的属性名跟它匹配。

但在水晶报表中,字段名在设计阶段就必须是真实存在的。

还能稍感安慰的是,水晶报表一旦设计好之后,就能像 Repeater 控件那样绑定任意类型的对像。

而不必是设计时指定字段来源的表或类。

所以我们现在要创造些真实存在的字段名……create table TabTest(UserID int,UserName nvarchar(50),Age int,Birthday datetime)你可以用 Access 或者 Excel 来创造真实存在的字段名,但我这里是使用 SQL Server。

在 "字段资源管理器" 的 "数据库字段" 上按右键,选择 "数据库专家..."。

在弹出的对话框中,创建新连接==>OLE DB (ADO)(Access 或者 Excel 应点 "数据库文件" 前的 "+" 号)。

在弹出的对话框,选择 "SQL Native Client" 作为提供程序。

按提示一步步地做,直到连上数据库。

选择表 TabTest,把它弄到右边的框中。

再点击确定。

VB中水晶报表使用

VB中水晶报表使用

VB中水晶报表使用在VB中,水晶报表是非常常用的工具之一。

可以利用水晶报表来生成各种报表,如销售报表、库存报表等。

本篇文档将介绍VB中如何使用水晶报表。

水晶报表简介水晶报表(Crystal Reports)是由美国公司Crystal Decisions开发并推广的一款报表工具。

它能够通过与各种数据源连接,并结合VB等开发语言,使用丰富的报表设计工具,输出格式优秀、易于管理的报表。

水晶报表常被应用在财务、人力资源、生产管理等领域。

使用步骤步骤一:安装水晶报表在VB中使用水晶报表前,需要先安装相关组件。

水晶报表可以从Crystal Decisions官网下载,也可以通过在线安装程序直接安装。

步骤二:在VB中添加水晶报表安装完毕后,在VB工具箱中,通过右键单击“工具箱” -> “选择工具箱项目”,勾选“Crystal Report Viewer”和“Crystal Reports ActiveX Designer”,点击“确定”即可将水晶报表添加到工具箱中。

步骤三:设计报表在VB中建立一个报表项目,添加CrystalReport控件,然后我们就可以在报表设计器中进行样式、数据源、布局等相关设置。

设计完报表后即可在VB中引用并使用。

步骤四:运行报表在VB程序中,调用所设计的水晶报表,将数据源传入水晶报表中,再查看实际输出效果。

这一步需要注意传入的数据源要与报表设计器中设计的数据源一致,否则将无法正常输出报表。

注意事项1.数据源要与报表设计器中的数据源一致,否则报表将无法正常输出;2.在VB程序中使用水晶报表时,需要在程序头部声明相关引用;3.如果需要在VB项目中修改已经设计好的水晶报表,需要先关闭VB工程,再进行报表修改操作;4.水晶报表设计器中能够支持的数据源类型非常多,如Excel、XML、Access、Oracle等,使用中需要根据实际情况进行选择。

总结通过本文对VB中水晶报表的介绍,我们可以清楚的了解到水晶报表的作用及在VB中的使用方法,以更好地完成各种报表任务。

水晶报表的使用

水晶报表的使用

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等。

在vb6中连接水晶报表使用心得

在vb6中连接水晶报表使用心得

在vb6中连接水晶报表使用心得在vb6中连接水晶报表使用心得VB6中使用水晶报表并动态设置数据源首先引用Crystal Reports 9 ActiveX Designer Run Time Library 再添加Crystal Repotr View Control 9控件在工程资源管理器中右键--添加--Crystal Reports 9 新建一个Crystal Reports9报表设置数据源后将要显示的字段加入报表内。

窗体代码部分:Dim m_Report As New CrystalReport1 '(这个CrystalReport1是你建立的报表的名称)Dim m_Connection As ADODB.Connection '(建立一个ADO 连接)Dim adoRS As ADODB.RecordsetPrivate Sub Form_Load()Dim SQL As StringDim strConnect As String' Create and bind the ADO Recordset objectSet m_Connection = New ADODB.ConnectionSet adoRS = New ADODB.Recordset' Open the connectionstrConnect = "你的数据库连接字符串"m_Connection.Open strConnectSQL = "查询语句"adoRS.Open SQL, m_Connection, adOpenDynamic,adLockBatchOptimisticm_Report.Database.SetDataSource adoRS'(动态设置报表数据源)Screen.MousePointer = vbHourglassCRViewer1.ReportSource = m_ReportCRViewer1.ViewReport '(显示报表)Screen.MousePointer = vbDefaultEnd Sub显示打印机设置动话框报表名.PrinterSetup Me.hWnd用代码设置纸张大小报表名.PaperSize =crPaperA4是否显示右上角水晶报表的图标CRViewer1.EnableAnimationCtrl = Not CRViewer1.EnableAnimationCtrl是否显示导出报表按钮CRViewer1.EnableExportButton = Not CRViewer1.EnableExportButton是否显示关闭按钮CRViewer1.EnableCloseButton = Not CRViewer1.EnableCloseButton是否显示左侧树列表CRViewer1.EnableGroupTree = Not CRViewer1.EnableGroupTree是否显示导航CRViewer1.EnableNavigationControls = Not CRViewer1.EnableNavigationControls是否显示弹出菜单CRViewer1.EnablePopupMenu = Not CRViewer1.EnablePopupMenu是否显示打印按钮CRViewer1.EnablePrintButton = Not CRViewer1.EnablePrintButton是否显示刷新按钮CRViewer1.EnableRefreshButton = Not CRViewer1.EnableRefreshButton是否显示工具栏CRViewer1.EnableT oolbar = Not CRViewer1.EnableT oolbar 是否显示比例调整窗口CRViewer1.EnableZoomControl = Not CRViewer1.EnableZoomControl报表显示的样式CRViewer1.DisplayBackgroundEdge = Not CRViewer1.DisplayBackgroundEdge报表控件是否有边框CRViewer1.DisplayBorder = Not CRViewer1.DisplayBorder是否显示报表的选项卡CRViewer1.DisplayTabs = Not CRViewer1.DisplayTabsvb中调用水晶报表生成的*.rpt文件CrystalReport1.ReportFileName = App.Path & "liuhan.rpt"CrystalReport1.WindowTitle = "打印预览"CrystalReport1.WindowState = crptMaximized '使打印预览窗口最大化********CrystalReport1.Destination = crptToWindow '到窗口***********************'CrystalReport1.Destination = crptToPrinter'到打印机********************CrystalReport1.PrinterDriver = 1CrystalReport1.PrintReport解决水晶报表更新数据后需按刷新问题报表名.DiscardSavedData。

vb net数据库使用技巧——制作水晶报表Crystal Report

vb net数据库使用技巧——制作水晶报表Crystal Report

建立水晶报表的过程:▪ 1 设置DataSet数据源,建立数据集▪可以根据向导制作,过程简单。

▪ 2 建立报表▪使用上面的DataSet数据源,可以采用向导或手工,操作基本相同。

▪ 3 显示报表▪建立一个窗体(在此窗体中显示报表),▪窗体中添加crystalReportViewer控件(此控件用于显示具体的报表)▪在报表显示前指定一个DATESET作为数据源为报表的各个字段赋值▪把此报表指定给crystalReportViewer控件数据表说明[货物信息表](1)添加数据集(2)添加控件前的设置,如此图的dsn 设置点[新建连接]按钮后弹出界面(4)回到上一个界面后,点下一步请选择使用SQL语句,否则将一次多出四个存储过程,相对来说比较混乱。

而我们这里用的数据集仅目的是为了建立报表的时候可以设置报表字段。

(5)继续点下一步(6)点查询生成器,添加需要的数据库表(7)可以随意设置,自动会生成SQL语句,也可以点[执行查询]察看效果(8)点确定回到向导设置界面出现SQL语句(9)下一步保持默认(10)点完成(11)得到的数据集右键点配置,可以得到SQL 语句同时可以修改SQL点预览数据可以察看SQL语句执行结果(12)重点:这里的数据集对象是为了进行报表的设置,也就是说在报表设计的时候可以直接指定哪个位置显示什么字段,而字段的可以从上面做的数据集中直接拖出,比较方便。

如果报表显示的时候应该动态的为此报表提供查询出的数据集,提供数据集的方法依然是通过代码执行存储过程或者SQL语句来完成的ADAPTER对象的FILL方法。

因此我们拷贝上面查询分析器生成的SQL语句制作一个存储过程二)建立报表自动会弹出,选择报表向导拖动我们刚才设置的数据集到右边选择字段下一步这里我们不需要分组,所以不用设置下一步我们不需要筛选,如果需要筛选,右面图是个筛选例子最后设置报表风格,右面可以清楚显示预览效果,自己选择,建议标准符合常规建立的新报表如下设置页眉(1)报表页眉是每个报表的标题部分,默认状态时不显示,点击右键之后选择变为可显示状态可以拖动下面的页眉部分,来调整报表页眉的大小工具中拖个文本对象到报表页眉写字并设置大小拖个温州大学图标到界面上预览报表这种效果是正常的,数据很随意报表一般都有表格把文字隔开,如上图报表效果不美观,需要添加表格线注意可疑在页眉中标题的上下画2条线,而在详细资料部分只需文字下面绘制一条线,原因是报表页眉和页脚都是出现一次的地方,绘制的效果是编辑的效果,而详细资料部分是个模板位置,仅需要设置一行就可以产生无数行效果,而每一行都有下画线,这样上行的下画线将成为下行的上画线。

水晶报表知识汇总

水晶报表知识汇总

Crystal水晶报表基础知识汇总(一)制作B/S的朋友肯定对Crystal Report绝不陌生功能强大,方便我在网上查找了许多关于Crystal Report的资料对其做了整理、调试在自己学习的同时,也希望拿出来与大家分享不足之处请多指教一、Crystal报表的建立水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PU SH)拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像也就是说,推模式是用dataset组装水晶报表水晶报表组件介绍:水晶报表在VS2005中有两种组件:WEB项目中分别是CrystalReportSource,CrystalReportViewerFORM项目里是分别是CrystalReport,CrystalReportViewerCrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成WINFORM中的建立:1.首先建立一个新的项目工程,在项目中添加一个Crystal报表在报表的创建向导中我们创建一个新的OLE DB (ADO)连接,以便于我们对SQL数据库中表的连接2.在弹出的连接类型窗口内,选择Microsoft OLE DB Provider for SQL Server一项,以确立报表的数据连接为SQL服务类3.在连接信息当中选择所需使用的服务器名,并输入相应用户ID和密码,选择好报表所要连接的数据库后,新的数据库连接便建立完成此时,我们可以从报表数据连接窗口中看到我们所创建的报表,并选择需要的表,进行数据连接4.此后,我们可以根据报表向导进行表间关联、排序索引设置、;样式选择等表的初始化设置完成Crystal 报表与SQL服务器内数据连接以后,我们可以在报表中预览所创建的报表样5.对Crystal报表进行保存后,在WINFORM的窗口中建立CrystalReportViewer控件,生成水晶报表的预览窗口在建立中,我们可以根据需要对该控件的添加项进行筛选,包括显示工具栏、显示组树、显示状态栏三项6.在WINFORM窗口中添加ReportDocument控件,并为该控件选择一个需要进行类型化的Report表单WEBFORM中的建立:建立方法与WINFORM方式基本相同,但不需要建立ReportDocument 在建立过程中一定注意,在.aspx 设计器中建立CrystalReportViewer与CrystalReportsource两个控件,前者用作水晶报表的预览,后者起到报表与预览连接的作用,负责建立CrystalReportViewer与Crystal报表间的连接二、报表数据的连接拉模式(PULL):WINFORM中建立连接:方式一:如果该页面只调用固定的一个Crystal报表,可以直接在CrystalReportViewer中进行选择报表,将Crystal 报表与其进行绑定方式二:如果页面需根据具体要求,调用不同的报表进行显示,那么我们就需要通过对报表的连接的设置来完成这一功能程序如下://CrystalReport1.rpt是水晶报表文件的名称;CrystalReport11是从工具箱加到页面上的CrystalDocument crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");//运用CrystalDocument读取所需Crystal表单路径;crystalReport11.SetDatabaseLogon("sa", "", @"BENQ-JA Y", "Userdatabase");//进行CrystalDocument连接服务器的设置,其中第一参数:用户名;第二参数:密码;第三参数:服务器名;第四参数:数据库名crystalReportViewer1.ReportSource = crystalReport11;//将CrystalReportViewer的报表源指向CrystalDocumentWEBFORM中建立连接:方式一:在CrystalReportSource中直接对表单源进行配置,选择需要宣示的表单在CrystalReportViewer中将报表源指定为CrystalReportSource,即可在该网页中生成指定报表的水晶报表方式二:通过程序进行具体配置,将所需Crystal报表与预览页面进行连接实现报表的灵活性选择程序如下:// CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));//读取Crystal表单所在路径,将其与CrystalReportSource进行绑定CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "", @"BENQ-JA Y", "UserDatabase");//进行数据库连接,参数一:用户名;参数二:密码;参数三:服务器名;参数四:数据库名CrystalReportSource1.DataBind();//对CrystalReportSource进行数据绑定CrystalReportViewer1.ReportSource = CrystalReportSource1;//将预览源指定为CrystalReportSourceCrystalReportViewer1.DataBind();//对CrystalReportViewer进行数据绑定推模式(PUSH):在推模式下,必须建立DataSet数据集,用来进行数据源填充在推模式中编程组装的DataSet里的SQL 语句中的字段要与水晶报表里的SQL语句字段一致WINFORM中建立连接:程序如下:string sql = "select * from UserInfor";string conn = "server=BENQ-JA Y;Database=UserDatabase;uid=Sa;Pwd=;";DataSet ds = new DataSet();SqlConnection con1 = new SqlConnection(conn);SqlCommand cmd1 = new SqlCommand(sql, con1);SqlDataAdapter sqlad = new SqlDataAdapter();sqlad.SelectCommand = cmd1;//获得一个TRANSACT-SQL存储过程,用于在数据源中选择记录sqlad.Fill(ds, "sql");//填充SQL命令所指定的行crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");crystalReport11.SetDataSource(ds.Tables["sql"]);crystalReportViewer1.ReportSource = crystalReport11;WEBFORM中建立连接:程序如下:string sql = "select * from UserInfor";string con1 = "server=BENQ-JA Y;Database=UserDatabase;uid=sa;pwd=;";DataSet ds = new DataSet();SqlConnection con = new SqlConnection(con1);SqlCommand com = new SqlCommand(sql, con);SqlDataAdapter sqlad = new SqlDataAdapter();sqlad.SelectCommand = com;sqlad.Fill(ds, "sql");CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt")); CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);CrystalReportSource1.DataBind();CrystalReportViewer1.ReportSource = CrystalReportSource1;CrystalReportViewer1.DataBind();三、报表打印水晶报表的CrystalReportViewer中默认配备的工具栏可实现打印功能,但其功能比较单一,无法进行打印机选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB中水晶报表使用第一步:在VB工程中Project菜单加入"Add Crystal Report 9",报表名使用默认即可。

这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:Option Explicitdim Report as New Cystal1Private Sub Form_Load()Screen.MousePointer = vbHourglass '调用水晶报表时置鼠标为沙漏状CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改CRViewer91.ViewReportScreen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状End SubPrivate Sub Form_Resize()CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd Sub第二步:点击Crystal Report设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。

最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。

第三步:该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。

代码如下:Public conn As New ADODB.ConnectionPublic rs As New ADODB.Recordset第四步:关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。

Private Sub Command1_Click()Dim connstr As StringIf conn.State = adStateOpen Then conn.Closeconnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\prtest.mdb;Persist Security Info=False" 'prtest.mdb是程序当前目录的测试Access数据库conn.ConnectionString = connstrconn.Openconn.CursorLocation = adUseClientIf rs.State = adStateOpen Then rs.Closers.Open "test", conn, adOpenKeyset, adLockReadOnly' Report.Database.SetDataSource rs, 3, 1 '此行取消Form2.Show 1 '数据库连接完成后,调用Form2水晶报表工程End Sub需要提请大家注意的是,上面代码中的Report.Database.SetDataSource rs, 3, 1是初用水晶报表的程序员容易犯的错误,使用该语句后将造成数据库和水晶报表的连接失败。

如何动态调用水晶报表呢?请看第五步。

第五步:创建水晶报表和数据库数据源的连接,需要修改上面Form2的代码。

Option Explicit'dim Report as New Cystal1'上面一行取消Private Sub Form_Load()Dim oApp As New CRAXDRT.ApplicationDim oRpt As CRAXDRT.ReportDim reportName As String'上面三行是新增加的Screen.MousePointer = vbHourglassreportName = "\rpt\Pr1.rpt"'定义要引用的rpt文件Set oRpt = oApp.OpenReport(App.Path & reportName, 1)oRpt.Database.SetDataSource rs '连接水晶报表和数据源oRpt.ReadRecordsCRViewer91.ReportSource = oRpt '启用水晶报表的预览功能CRViewer91.ViewReportScreen.MousePointer = vbDefaultEnd SubPrivate Sub Form_Resize()CRViewer91.Top = 0CRViewer91.Left = 0CRViewer91.Height = ScaleHeightCRViewer91.Width = ScaleWidthEnd SubPrivate Sub Form_Unload(Cancel As Integer)'Set Report = NothingSet rs = NothingSet conn = NothingUnload Form2End Sub上面介绍了在VB中使用水晶报表进行报表开发的一种方法,该方法简单易用,适合初学者上手。

[ 结束]中使用水晶报表总结水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。

一、在使用自带的水晶报表时,请注册,否则只能使用30次二、使用CrystalReportViewer进行预览CrystalReportViewer控件允许在应用程序中查看Crystal Report。

ReportSource 属性用于设置要查看哪个报表。

该属性设置之后,报表显示在查看器中。

报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。

1. 打开“工具箱”,并将一个CrystalReportViewer 拖到窗体上,我们命名为rptVew。

2. 通过拖放操作将Windows 窗体查看器调整到希望的大小并将其移动到所需位置。

3. 当运行应用程序时,报表将显示在查看器中。

三、创建新报表1. 指向“添加”,单击“添加新项”。

2. 在“添加新项”对话框中,从“模板”区域选择Crystal Report,将报表命名为rptClient,单击“打开”。

3. 在Crystal Report 库中,选择下列选项之一:·使用报表专家—指导您完成报表的创建过程,并将您的选择添加到Crystal Report Designer。

·作为空白报表—打开Crystal Report Designer。

·来自于现有的报表—创建新报表,它与指定的另一报表设计相同。

注意Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。

您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。

4. 单击“确定”按钮。

如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。

为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问Crystal Report Designer 和您的报表四、是否需要动态设置数据源?Crystal Reports 通过数据库驱动程序与数据库连接。

每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。

拉和推模型为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。

拉模型在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。

使用这种模型时,与数据库的连接和为了获取数据而执行的SQL 命令都同时由Crystal Reports 本身处理,不需要开发人员编写代码。

如果在运行时无须编写任何特殊代码,则使用拉模型。

推模型相反,推模型需要开发人员编写代码以连接到数据库,执行SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。

该方法使您可以将连接共享置入应用程序中,并在Crystal Reports 收到数据之前先将数据筛选出来。

四、从 数据集制作报表从数据库创建数据集对象1. 在项目中新建一个架构文件:a. 在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”。

b. 在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”。

c. 在“模板”区域选择“数据集”。

d. 接受默认名称DataSet1.xsd。

这就创建了一个新的架构文件(DataSet1.xsd),以后将用它来生成强类型数据集。

该架构文件将显示在 数据集设计器中。

2. 指定数据库位置:a. 在服务器资源管理器中,右击“数据连接”并选择“添加连接”。

b. 在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序(例如Microsoft OLE DB Provider for SQL Server)。

c. 单击“连接”选项卡,然后指定您的数据库所在位置。

在所需位置输入服务器和登录信息。

d. 单击“确定”按钮。

此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面。

3. 在解决方案资源管理器中,双击DataSet1.xsd (如果它尚不是活动视图)。

DataSet1.xsd 现在应显示在“数据集”选项卡中。

4. 若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到DataSet1.xsd 的“数据集”选项卡上。

5. 单击“保存DataSet1.xsd”来保存“Dataset1.xsd”文件。

6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。

数据集对象提供数据的描述,从它可以向Crystal report 添加表。

使用Crystal Report Designer 中的“数据库专家”从 数据集对象添加表。

请在使用“报表专家”创建新报表时调用“数据库专家”。

或者,要从一个已经使用 建立好的报表中访问“数据库专家”,请在Report Designer 中右击,指向“数据库”,然后单击“添加/删除数据库”。

将报表连接到 数据集对象1. 在“数据库专家”中,展开“项目数据”文件夹。

相关文档
最新文档