VB中如何利用水晶报表控件实现报表设计
- 格式:pdf
- 大小:134.48 KB
- 文档页数:3
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中如何使用水晶报表。
水晶报表简介水晶报表(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中的使用方法,以更好地完成各种报表任务。
常用报表大约有:列表式的报表;带有分类、汇总式的报表;以及带有各种 图形、图表的报表。
下面就这两种方法举例说明几种报表的 制作。
直接使用 Crystal ActiveX 控件生成报表使用 Crystal ActiveX 控件应先建立数据库, CrystalVB 如何调用 Crystal Reports VB 如何调用 Crystal Reports shkingdee 在 VB 中利用 Crystal ActiveX 控件制作报表 在自行开发的应用软件中,一般都需要制作报表。
我们可以 利用 Crystal Reports (也称水晶报表)方式,调用 通过其他( Print 方法直接输出, TextBox 等)控件输出报表, 使用 OLE 技术与 Word 和 Excel 连接输出报表。
Crystal Reports 方式需要许多文件支持, 通常需要耗用更多的系统资 源,但与其他方法 相比,具有容易实现、功能强大、报表样式丰富的特点。
Crystal ActiveX 控件制作报表一般有两种方法: 1. 直接使用 Crystal ActiveX 控件生成报表。
2. 先用 CRW32.EXE 产生 RPT 报表文件, 然后在控件 中引用 RPT 文件。
ActiveX 控件支持流行的数据库类型,女口:Access、xBase、Paradox。
直接使用CrystalActiveX 控件只能制作简单的列表式报表。
1. 新建一个工程,在窗体Form1 上添加Data 控件,Crystal ActiveX 控件,命令按钮。
2.在Data 控件上将DatabaseName 属性设置为要生成报表的数据库名称,如Biblio.mdb 。
设置RecordSource 属性为数据库中表名称或SQL 查询语句。
这里我们设置成表Authors 。
3.在Crystal ActiveX 控件上设置DataSource 属性为Datal,设置ReportSource 属性为3。
在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。
建立水晶报表的过程:▪ 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条线,而在详细资料部分只需文字下面绘制一条线,原因是报表页眉和页脚都是出现一次的地方,绘制的效果是编辑的效果,而详细资料部分是个模板位置,仅需要设置一行就可以产生无数行效果,而每一行都有下画线,这样上行的下画线将成为下行的上画线。
首先下载安装水晶报表插件1)SAP Crystal Reports, version for Visual Studio 2010 -包括了报有DLL的水晶报表文件2)SAP Crystal Reports, version for Visual Studio 2010 -水晶报表部署时用到的文件3)SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)只支持32位系统的包4)SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)安装完成之后,用VS2010新建一个web应用程序或者网站项目,之后在项目里面添加一个水晶报表文件之后新建表格成功之后在项目里添加一个实体类public class demo{public demo(){ }public demo(string id, string name) {this.id = id; = name;}private string id;//编码public string Id{get { return id; }set { id = value; }}private string name;//名称public string Name{get { return name; }set { name = value; }}}之后打开刚才新建的水晶报表,找到下图所示点击确定即可,之后按照箭头所示,拖动字段。
之后新建参数字段:之后按照箭头所指,拖动参数字段到报表页面新建一个web页面WebForm1.aspx,添加以代码using System.Collections;using System.Collections.Generic;using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;using CrystalDecisions.Web;public partial class WebForm1 : System.Web.UI.Page{protected CrystalReportSource CrystalReportSource1 = new CrystalReportSource();protected CrystalReportViewer CrystalReportViewer1 = new CrystalReportViewer();protected void Page_Load(object sender, EventArgs e){List<demo> dmList = new List<demo>();for (int i = 0; i <= 10000; i++){demo dm1 = new demo("10001", "demo1");demo dm2 = new demo("10002", "demo2");demo dm3 = new demo("10003", "demo3");demo dm4 = new demo("10004", "demo4");dmList.Add(dm1);dmList.Add(dm2);dmList.Add(dm3);dmList.Add(dm4);}ReportDocument rd = null;rd = new ReportDocument();rd.Load(Server.MapPath("CrystalReport6.rpt"));//这个表示我们刚才新建的水晶报表rd.SetDataSource(dmList);//rd.ParameterFields["Title"].CurrentValues.AddValue("标题");//"运行综合指标" rd.ParameterFields["ID"].CurrentValues.AddValue("ID");//"站点"rd.ParameterFields["Name"].CurrentValues.AddValue("名字");//"报警次数"this.CrystalReportViewer1.ReportSource = rd;this.CrystalReportSource1.DataBind();form1.Controls.Add(CrystalReportViewer1);form1.Controls.Add(CrystalReportSource1);}}之后在浏览器里面浏览发现每行数据间隔太大,回到VS打开刚才新建的报表,缩减一下图中所示的间距之后浏览间距合理。
创建简单水晶报表步骤1:打开VS工具,新建解决方案和项目2:先创建一个一个ds文件,在ds文件中添加一个datatable,并添加需要显示的列(此处的列和你从数据库中查询出来的字段名称相同),右击属性,选择相应字段的相应类型3:创建水晶报表文件(rptShow)选择标准- 在项目数据中找到刚刚创建好的数据集,并选择相应的datatable至右面的文本框中,点击完成,创建好报表文件。
5-1:在我做的报表文件中主要遇到的一个困难是求和;所以这里特别记录下1:新建【运行总计字段】并取名,这里设计名称为:Sum_Qty从报表字段中选择需要求和的字段,在汇总类型中选择和即可,此种方法为其一,还有一种方法则是建立好名称后,在公式工作室选择公式--→函数-→选择需要的函数并把相应的字段填充进去,我这里需要的是数量的求和,所以,选择好后是Sum(Qty) 即可,然后直接把之前创建好的名称放在报表文件中。
2:求和不同类型的数据,则需要进行判断,在我的数据库中有金和石两种数据,所以我要对石和金进行统计并求和。
同样需要创建运行总计字段,Sum_Qty,进入到公式工作室,找到刚刚创建好的运行总计字段名称(Sum_Qty),在右面的空白处写上判断格式:if UOM=’G’ then金的重量字段4:调整好相应的格式,再新建一个项目文件(这里是针对winform程序,web的我还没试过,等试了再写)5:在form表单中拉近一个报表显示控件,如图:6:编写代码实现报表的显示:Dim rpt As New rptDetails ------rptDetails 指的前文创建的报表文件名称Dim ds As New dsSummary.DeatilsQtyDataTable ------dsSummary(创建的数据集文件,DeatilsQtyDataTable 指的是数据集中,你想要使用的数据表,在此使用时,它会自动加上DataTable后缀,其实代表的就是你数据集中的DeatilsQty)rpt.SetDataSource(DBHelper.GetDetailsSummary(ds, PosCodes, txtFrom.Text.Trim,txtTo.Text.Trim)) -----调用方法(该方法返回的是dataTable类型)Me.rptShowDetails.ReportSource = rpt ---填充报表7:完成,显示效果如图:。
在visual studio 中创建水晶报表并连接数据源(C#)step 1 :新建一个Windows应用程序,命名为createCReport,默认窗体为Form1.cs。
step 2 :在“解决方案资源管理器”窗口中右击当前项目名称,选择“添加”/“新建项”命令,在出来的对话框中选择Crystal报表(Reporting/“Crystal报表”),点击“添加”。
step 3 :出现下列对话框,选中相应项,点击确定。
step 4 :出现“标准报表创建向导”对话框,在其中建立数据源连接,连接数据库之前,需要根据所要连接的数据源来选择相应的提供程序。
单击“创建新连接”项左侧的加号,双击子项OLE DB(ADO),弹出“OLE DB(ADO)”对话框。
表中选择下图这项;单击下一步。
step 6 :弹出连接信息对话框,依次在各下拉列表中选择服务器(即要连接的SQLServer服务器名称),数据库。
可根据不同的身份验证模式登录SQL Server来进行不同的设置,如果要用“Windows账户验证模式”登录,则选中“集成安全”复选框;如果要用“SQL Server账户验证模式”登录,则分别在“用户ID”与“密码”文本框中输入信息,并取消选中“集成安全”复选框;单击“完成”,返回“标准报表创建向导”对话框。
选择要操作的数据表。
这里选的是authors。
单击下一步。
表的创建。
step 8 :让水晶报表中的数据能够显示在窗体中,要使用CrystalReportViewer控件,从工具箱中向Form1窗体拖放一个此控件,然后将其ReportSource属性设置为要显示的水晶报表,这里设置为CrystalReport11 [createCReport.CrystalReport1],运行程序。