CrystalReport水晶报表教程详解
- 格式:pdf
- 大小:4.07 MB
- 文档页数:26
a. Report Header:此區內容只會顯示在報表第一頁最上面,一般都設為隱藏(Hide),隱藏方式為在Report Header按下滑鼠右鍵選擇[Hide(Drill-Down OK)]Select Data Source視窗後,點選[Browse]按鈕,畫面會出現視窗,此時選擇TTX檔案點選滑鼠右鍵會出現功能表,選擇[New]欄位輸入該參數的名稱後點選[OK]按鈕,此時Field Explorer新增的參數,如下圖此時將此參數拖拉到要放置的位址,即完成此參數的新增,稍後會說明如何透過程式傳選擇要新增的欄位拖曳到Detail 欄位內,即完成報表欄位新增Group的欄位及排序方式,之後按確定,個區塊。
Group Header內可放置GroupGroup Footer內可放置Group結束時所需顯示的資料,如小計Subtotal,Grandtotal,Summary名稱後,按確定後Subtotalubtotal 自動新增到因為是作小計的功能,所以只能選擇資料型態為Number按確定後Subtotalubtotal 自動新增到主要功能為依照欄位值及Group作資料總計、判斷最大值及最小值、統計個數等,增Group名稱後,按確定後Subtotalubtotal 自動新增到的功能主要為資料分開產生但是須顯示到同一報表上或處理時所使用,操作方如欲將入現有報表,則點選[Choose a report],然後點選[Browse]立新報表,則點選[Create a subreport],然後輸入Report Name,點選,此時畫面出現[Subreport Export]視窗,如下圖[Database]欄位,選擇要加入subreport的TTX,然後按[Add]新增。
新增完後,進行下一步,如下圖選擇要在subreport顯示的欄位,按下[Add]後新增即可,完成後按[OK]crystal report ActiveX元件:點選功能表[專案]-[設定引用項目],將[Crystal Report 8。
WinForm中使⽤CrystalReport⽔晶报表——基础,分组统计,⾃定义数据源开篇本篇⽂章主要是帮助刚开始接触CrystalReport报表的新⼿提供⼀个循序渐进的教程。
该教程主要分为三个部分1)CrystalReport的基本使⽤⽅法;2)使⽤CrystalReport对数据进⾏分组求和;3)CrystalReport如何使⽤⾃定义的数据源(如内存中的DataTable表)三个⽅⾯来写。
相信看懂了这个教程之后,对于⾃⼰项⽬中的实现报表这⼀功能,应该就能轻松的应对了。
⼀ CrystalReport模板的制作及显⽰A模板的制作1、右键【项⽬属性】添加⼀个⽔晶报表(在vs中需要安装CrystalReport模块,不同vs版本下载不同的CrystalReport版本:CrystalReport下载链接:)2、添加报表的设计界⾯如下:⼀个报表包括(报表头,页眉,详细资料,报表尾,页眉)5个基本部分。
3、现在我们需要给新建的报表添加⼀个数据源,右键左边的【数据库字段】选择相应的数据源,进⾏绑定。
我这⾥选择的是sqlserver数据库。
4、输⼊数据库的登录信息,然后选择需要绑定的数据库表,除了绑定数据表之外,还可以绑定sql语句查询的结果,以及存储过程和视图,下⾯给出绑定数据库表格,和绑定sql查询。
1)绑定数据库表格2)点击连接下⾯的【添加命令】绑定sql语句。
5、绑定数据库之后在报表左侧的【字段管理器】中就会出现该表以及sql查询结果的的相应表头字段。
6、把相应的字段在报表视图中进⾏布局。
到此⽔晶报表的模板已经做好了。
注意:页眉中的userName,courseName,score是可以更改。
B模板的显⽰1、⾸先在窗体上拖⼀个CrystalReportView控件作为显⽰报表模板。
2、在form_load事件⾥⾯写如下代码:CrystalReport1 cr = new CrystalReport1();//实例化⼀个报表模板this.crystalReportViewer1.ReportSource = cr;//为报表显⽰控件设置数据源3、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。
水晶报表讲义[键入文字]水晶报表课程讲义苏州工业园区博思企业管理咨询有限公司1 / 58[键入文字]第一章水晶报表的作用 ..................................................................... ............................... 4 第二章做一个简单的报表 ..................................................................... .............................. 4 第三章报表打印位置与打印机设置 ..................................................................... ................ 6 1、报表打印位置 ..................................................................... ............................................ 6 2、打印机设置 ..................................................................... ................................................ 7 第四章数据库专家 ..................................................................... ............................................ 7 第五章报表中字段 ..................................................................... ............................................ 7 1、数据库字段 ..................................................................... ................................................ 7 2、公式字段 ..................................................................... .................................................... 8 3、sql表达式字段 ..................................................................... .......................................... 8 4、参数字段 ..................................................................... .................................................... 8 5、运行总计字段 ..................................................................... .......................................... 10 6、特殊字段 ..................................................................... .................................................. 11 7、文本字段 ..................................................................... .................................................. 11 8、图片字段 ..................................................................... .................................................. 12 第六章排序、分组、过滤 ..................................................................... .............................. 14 1、排序 ..................................................................... .......................................................... 14 2、分组 ..................................................................... .......................................................... 15 3、过滤 ..................................................................... .......................................................... 16 第七章多节报表 ..................................................................... .............................................. 17 1、防止可变长度的对象相互覆盖 ..................................................................... .............. 17 2、当字段为空时消除空白行 ..................................................................... ...................... 18 3、在特定情况下添加空白行 ..................................................................... ...................... 19 4、使对象延续到后续节 ..................................................................... .............................. 21 第八章图表 ..................................................................... ...................................................... 21 1、图表类型 ..................................................................... .................................................. 21 2、使用数据库中字段绘制图表 ..................................................................... .................. 28 3、使用汇总或小计字段上绘制图表 ..................................................................... .......... 34 4、在交叉表中绘制图表 ..................................................................... .............................. 38 第九章 OLE对象 ..................................................................... .. (38)2 / 58[键入文字]1、插入静态OLE对象 ..................................................................... .................................. 39 2、插入嵌入对象 ..................................................................... .......................................... 39 3、插入链接对象 ..................................................................... .......................................... 40 第十章交叉表 ..................................................................... .................................................. 41 1、交叉表示例 ..................................................................... .............................................. 41 2、在交叉表中插入图表 ..................................................................... .............................. 43 第十一章报表警报 ..................................................................... .......................................... 46 第十二章公式 ..................................................................... .................................................. 47 1、公式的用途 ..................................................................... .............................................. 48 2、公式的创建 ..................................................................... .............................................. 48 第十三章自定义函数 ........................................................................................................... 50 1、自定义函数的使用 ..................................................................... .................................. 50 第十四章子报表 ..................................................................... .............................................. 53 1、子报表与主报表之间的区别 ..................................................................... .................. 53 2、何时使用子报表 ..................................................................... ...................................... 53 3、将不相关的报表组合到单个报表中 ..................................................................... ...... 54 4、一对多查询 ..................................................................... .............................................. 55 5、协调无法链接的数据 ..................................................................... .............................. 57 6、在单个报表中显示相同数据的不同视图 ...................................................................583 / 58[键入文字]第一章水晶报表的作用一、创建所能想象的任何报表Crystal Reports 几乎可以从任何数据源生成您需要的报表。
水晶报表初级使用——直接与数据库连接
1、使用步骤
添加报表控件,在工具箱中,拖拽CrystalReportViewer到Default.aspx中。
如下图。
选择数据源,选择数据表源的下拉列表框,在选择新建报表源...,如下图。
新建报表源,当点击新建报表源,是出现对话框,如下图。
给报表控件指定名称,并为报表控件指定报表文件。
由于不存在报表文件,需要新建报表文件。
点击下拉列表,选择新建报表。
出现如下对话框。
创建新报表,给新报表命名。
确定,再确定
出现的对话框,使用报表向导,使用标准。
确定,出现如下对话框。
选择数据源,如下图。
出现如下对话框。
选择如下数据源,如图。
下一步,出现对话框,选择服务器,选择数据库,按情况勾选集成安全项,如下图。
注意:需确保服务器的服务已经打开。
查看方法:开始》所有程序》Microsoft SQL Server2008》配置工具》SQL Server 配置管理器,进入界面,如下图。
查看红框部分状态。
出现对话框,添加表,如下图。
点击下一步,出现对话框,选择要显示的字段,此处全选,如下图。
下一步,出现分组依据对话框,忽略,点击下一步,再点下一步,点击完成。
进入界面,如下图。
编辑数据表的显示样式。
忽略。
点击主报表预览。
如下图
保存,浏览网页如下图,在Toolbar工具条中,可实现报表的导出和打印功能。
同时可不显示工具条,将True改为Faulse设置如下图。
一.建立普通报表1、从工具箱托CrystalReportViewer1控件到页面如:web.aspx页面2、单击菜单栏网站—添加新项---crystal报表----- CrystalReport1.rpt3、建立数据模板(“数据集Dataset1”)用来向报表中拖入字段1. 在项目中新建一个架构文件:a. 在处理方案资源管理器中,右击项目名,指向“增加”,然后单击“增加新项”。
b. 在“增加新项”对话框的“类别”区域,展开文件夹,然后选择“数据集”。
c. 在“模板”区域选择“数据集”。
d. 默许文件名:Dataset1.xsd。
E.在dataset1.Xsd页签单击鼠标右键----添加-----datatable------弹出表名为“DataTable1”的数据表窗体(即假数据表),在该窗体单击鼠标右键------添加-------列便在该表中产生了一个字段,点击该字段,在右侧属性列表框中可以编辑该字段如字段名称、类型。
依次添加字段(注意:该表中添加的字段数目、字段名称和类型一定要和cs文件中所要打印的“真数据集(即用SQL语句查询的数据)”的字段数目、字段名称和类型相吻合)。
这就创立了一个新的架构文件(Dataset1.xsd)。
4、在CrystalReport1.rpt页签内左侧----用鼠标右键----单击数据库字段-----数据库专家-------项目数据 数据集---------- Dataset1(即建立的假数据集)--------单击“》”按钮--------确定按钮。
此时“数据库字段”节点下就产生了子节点即datatable1表(即新建立的假数据表)---其中的字段便可以拖到报表中使用了。
二、建立单元格合并报表1右键单击“组名字段”节点------组专家-----单击需要合并的字段-----单击“>”按钮----加入后点击确定按钮2、右键单击报表中的“GroupHeaderSection1”------节专家-------勾选“延伸到后续节”点击确定按钮即可。
水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005(下文以VS2005简称)集成在一起。
喜欢水晶报表的朋友可以方便使用了。
我把水晶报表在vs2005的使用方法总结一下,供大家参考。
首先介绍一下我用的软件环境:Microsoft Visual Studio 2005;Microsoft SQL Server 2005【数据用例】服务器:SQLEXPRESS数据库名:Test数据库表:T【说明】水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。
拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。
推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL 语句而生成的dataset对像。
也就是说,推模式是用dataset组装水晶报表。
水晶报表组件介绍。
水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。
在FORM项目里是分别是crystalReport,CrystalReportViewer。
CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。
另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成。
下面分别介绍具体操作方法:拉模式(PULL):在拉模式中如要在水晶报表中的SQL语句加上条件参数时要用{?参数名}方式给出。
例:“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名以下例子中所用到的水晶报表文件中使用的SQL语句是“Select T1, T2, T3 FROM T Where T1=''{?parm}''” parm就是参数名。
NET水晶报表首先要从概念入手,水晶报表(Crystal Report)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。
1、.NET水晶报表的好处1)利用水晶报表可以进行数值求平均值,画图等2)利用水晶报表可以把文件导出不同的格式(word等)2、.NET水晶报表的两种格式1)pull模式,不利用DataSet,直接从数据库中取出数据2) push模式,使用DataSet,利用它进行数据的加载和处理等3. .NET水晶报表使用的库1)水晶报表的引擎(CREnging.dll),作用:合并数据,装换格式2)水晶报表设计器(CRDesigner.dll),作用:设计标题,插入数据等3)水晶报表查看控件(CRWebFormViewer.DLL)4)需要引入的命名空间ing CrystalDecisions.CrystalReports.Engine;ing CrystalDecisions.Shared;4、Pull模式下使用水晶报表1)创建rpt文件2)拖放CrystalReportViewer3)绑定5、读取.NET水晶报表文件3.private void ReadCRV(cryatalReportViewer crv)4. {5. openFileDialog dlg=new OpenFileDialog();6.dlg.Title="打开水晶报表文件";7.dlg.Filter="水晶报表文件(*.rpt)|*.rpt|所有文件|*.*";8. if(dlg.showDialog()==DialogResult.OK)9. {10.crv.ReportSource=dlg.FileName;11. }12. }6. B/S下读取报表的文件13.private void ReadCRV(cryatalReportViewer crv,File file)14. {15. string strName=file.PostedFile.FileName;16. if(strName.Trim()!="")17. {18.crv.ReportSource=strName19. Session["fileName"]=strName;20. }21. }在B/S中要防止数据源的丢失22.priavte void Page_Load(object sender,System.EventArgs e)23. {24. if(Session["fileName"]!=null)25. {26.crv.ReportSource=Session["fileName"].ToString();27. }28. }7. 假如直接从数据库中读取数据采用PULL模式可能出现错误(登录的用户名和密码不对)29.private void ReadCRV(CrystalReportViewer crv,CrystalReport cr)30. {31. ReportDocument reportDoc=new ReportDocument();32. reportDoc.Load(Server.MapPath(cr));//要加载的rpt文件的名字33. //解决登录的问题34. TableLogOnInfo logonInfo = new TableLogOnInfo();35. foreach(Table tb in ReportDoc.Database.Tables)36. {37.logonInfo=tb.LogOnInfo;38.logonInfo.ConnectionInfo.ServerName="(loacl)";39.logonInfo.ConnectionInfo.DatabaseName="Pubs";erId="sa";41.logonInfo.ConnectionInfo.Password="";42. tb.ApplyLogOnInfo(logonInfo);43. }44.crv.ReportSource=reportDoc;45. }8. 采用Push模式,直接在数据源读取46.private void BindReport(CrystalReportViewer crv)47. {48. string strProvider="Server=(local);DataBase=pubs;uid=sa;pwd=";49. CrystalReport cr=new CrystalReport();50. DataSet ds=new DataSet();51. SqlConnection conn=new SqlConnection(strProvider);52. conn.open();53. string strSql="select * from jobs";54. SqlDataAdapter dap=new SqlDataAdapter(strSql,conn);55. adp.Fill(ds,"jobs");56. cr.SetDataSource(ds);57.cr crv.ReportSource=cr;58. }9. 导出水晶报表的文件59.private void ExportCrv(CrystalReport cr)60. {61. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();62.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();63.cr.ExportOptions.ExportFormatType= ExportFormatType.PortableDocFormat;64.dOpt.DiskFileName="C:\output.pdf";65.cr.ExportOptions.DestinationOptions=dOpt;66. cr.Export();67.68. }69. private void ExportCrv(CrystalReport cr,string strType,string strPath)70. {71. DiskFileDestionOptions dOpt=new DiskFileDestionOptions();72.cr.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile();73. switch(strType)74. {75. case "RTF":76.cr.ExportOptions.ExportFormatType=ExportFormatType.RichText;77.dOpt.DiskFileName=strPath;78. break;79. case "PDF":80.cr.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;81.dOpt.DiskFileName=strPath;82. break;83. case "DOC":84.cr.ExportOptions.ExportFormatType=ExportFormatType.WordForWindows;85.dOpt.DiskFileName=strPath;86. break;87. case "XLS":88.cr.ExportOptions.ExportFormatType=ExportFormatType.Excel;89.dOpt.DiskFileName=strPath;90. break;91. default;92. break;93.94. }95.cr.ExportOptions.DestinationOptions=dOpt;96. cr.Export();97.98. }10 B/S下水晶报表的打印99.priavte void PrintCRV(CrystalReport cr)100. {101. string strPrinterName=@"printName";102. PageMargins margins=cr.PrintOptions.PageMargins; 103.margins.bottomMargin = 250;104.margins.leftMargin = 350;105.margins.rightMargin = 350;106.margins.topMargin = 450;107. cr.PrintOptions.ApplyPageMargins(margins);108.cr.PrintOptions.printerName=strPrinterName;109. cr.PrintToPrinter(1,false,0,0)//参数设置为0,表示打印所用页110. }。