《C#-Win实践开发教程》chp7.水晶报表技术.ppt_第1页
《C#-Win实践开发教程》chp7.水晶报表技术.ppt_第2页
《C#-Win实践开发教程》chp7.水晶报表技术.ppt_第3页
《C#-Win实践开发教程》chp7.水晶报表技术.ppt_第4页
《C#-Win实践开发教程》chp7.水晶报表技术.ppt_第5页
免费预览已结束,剩余39页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-基于C#语言,主讲教师:钱哨本课学时:72课时联系方式:qianshao,Windows程序设计,第七章、水晶报表技术,本章主要内容介绍5.1windows和窗体5.2VisualSIDE简介5.3事件处理,CONTENT,本章学习目标:,理解水晶报表的作用和优点使用水晶报表专家创建水晶报表在窗体中使用水晶报表和报表绑定,简介7-1,产品部的薪金详细信息,财务部的薪金详细信息,市场部的薪金详细信息,按顺序显示信息,汇总信息?,报表格式化且有条理的数据记录表示方式,水晶报表简介7-2,用表格形式显示的数据,需要手动计算每个部门的总薪金,水晶报表简介7-3,有条理的表示数据记录更容易汇总所需的信息,水晶报表简介7-4,水晶报表是VisualStudio环境(包括VisualStudio.NET)中用于创建报表的标准工具利用水晶报表可以创建交互式的优质报表不仅能为WinForms和WebForms创建报表,还能将报表作为Web服务存放在Web服务器上“水晶报表设计器”界面用于创建并格式化报表,大大减少代码编写量,水晶报表的功能,运行时自定义,报表查看器与其他控件之间的交互,报表作为Web服务,借助交互式界面更加容易地创建报表,水晶报表,Windows窗体中水晶报表的使用7-5,新建Windows项目添加CrystalReportViewer控件添加“选择报表”按钮添加按钮响应事件,privatevoidbtnSelect_Click(objectsender,System.EventArgse)OpenFileDialogdlg=newOpenFileDialog();dlg.Title=打开水晶报表文件;dlg.Filter=水晶报表文件(*.rpt)|*.rpt|所有文件|*.*;if(dlg.ShowDialog()=DialogResult.OK)crystalReportViewer1.ReportSource=dlg.FileName;,Windows窗体中水晶报表的使用7-6,建立水晶报表文件7-7,1、执行模式水晶报表取数据可以使用下面的方法实现:Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据,当然这种方式不需要编写任何代码。Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。,建立水晶报表文件7-7,2、报表类型(1)Strongly-typed报表:当你将报表文件加入到项目中去时,它就变成了一个了“strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。(2)Un-Typed报表:这里的报表并不直接包含在项目中,因此称为un-typed报表。在这种情况下,你不得不使用水晶报表的”ReportDocuemt“对象建立一个实例,并且”手动“地调用报表。,建立水晶报表文件7-7,3、Pull模式的使用(1)首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。(2)拖放一个CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。,建立水晶报表文件7-7,3、Pull模式的使用,(1)在右击“解决方案游览器”,在弹出的菜单中选择“添加”“添加新项”“CrystalReport”,(2)在“CrystalReport库”中选择“作为空白报表”单选按钮,最后单击“确定”。,建立水晶报表文件7-7,3、Pull模式的使用,(3)出现水晶报表设计器。,(4)右击报表中的“详细资料区”,选择“数据库”“数据库专家.“。在弹出的“数据库专家”中,扩展“OLEDB(ADO)”选项,此时会弹出另外一个“OLEDB(ADO)”窗口。,建立水晶报表文件7-7,3、Pull模式的使用,(5)在OLEDB(ADO)弹出窗口中,选择MicrosoftOLEDBProviderforSQLServer然后Next,(6)指定连接的信息(选择Pubs库),单击“下一步”,最后单击“完成”按钮。,建立水晶报表文件7-7,3、Pull模式的使用,(7)这时你就能在“数据库专家”窗口中看到我们选择的数据库。扩展“Pubs”数据库,扩展“表”,选择“employee”表并将其加到“选定的表”区中,单击“确定”按钮。,(8)现在在“字段资源浏览器”中就会在左边“数据库字段”区中显示你选择的表,以及表中的字段。,建立水晶报表文件7-7,3、Pull模式的使用,(9)拖放需要的字段进入报表的“详细资料”区。字段名将会自动出现在”页眉“区。如果你想修改头部文字,则可以右击“页眉”区中的文字,选择”编辑文本对象“选项并进行编辑。保存并浏览信息。,建立水晶报表文件7-7,3、Pull模式的使用,(10)回到前面的WebForm中,拖放一个CrystalReportViewer控件到页面中去。,(11)调出CrystalReportViewer控件的属性窗口,选择“ReportSource”区点击下拉列表。此时你能够从CrystalReportViewer控件中看到使用一些虚拟数据组成的报表文件的预览。,建立水晶报表文件7-7,4、使用Push模式,设计一个DataSet创建一个.rpt文件同时将其指定给上一步建立的DataSet。在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。在代码中访问数据库并把数据存入DataSet调用DataBind方法。,基本步骤,建立水晶报表文件7-7,4、使用Push模式,第一步:设计一个DataSet,(1)右击“解决方案浏览器”,选择“添加”-“添加新项”-“数据集”(2)从“服务器资源管理器”中的“SQLServer”中拖放“Stores”表(位于PUBS数据库中)。(3)此时在数据集中就会有一个Stores表的结构图。,建立水晶报表文件7-7,4、使用Push模式,第一步:设计一个DataSet,建立水晶报表文件7-7,4、使用Push模式,第二步:创建一个.rpt文件同时将其指定给上一步建立的DataSet,4)使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。5)建立.rpt文件之后,右击“详细资料”-“添加删除数据库”6)在“数据库专家”窗口中,展开“项目数据”(代替以前的OleDb),展开“ADO.Net数据集”-“DataSet1”,选择“Stores”表。7)将“Stores”表添加到“选定的表”中,点击“确定”,建立水晶报表文件7-7,4、使用Push模式,第二步:创建一个.rpt文件同时将其指定给上一步建立的DataSet,建立水晶报表文件7-7,4、使用Push模式,第三步:在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。,建立水晶报表文件7-7,4、使用Push模式,第四步:建立一个CrystalReportViewer控件,并设定其属性,此处与PULL模式下是一致的。同时注意将生成的dataset对象拖拽到窗体界面中。,建立水晶报表文件7-7,4、使用Push模式,第五步:运行后我们将看见一张空的报表,主要原因是DataSet对象所复制的仅仅是空的物理表的模式结构,而实质的数据必须通过编程的方式才可以实现。,在代码中访问数据库并把数据存入DataSet,代码见下:,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,某高校为合作办学院校,现有三所合作院校,且成绩单据的格式完全不一致,纸质报表样式如下:【详见学生成绩单据报表图片】,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,数据库分析【数据库分析报告见电子文档】,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第一步:建立一个空的rpt文件,首先进行整个报表的纸张大小设置,这一点对于后期打印报表和报表布局非常重要,第二步:将纸张大小设置成为B5纸,纵向,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第三步:再选择页面设置,配置页面的上下左右的边距。,具体的边距要求参照WORD文档对于页面的设置参数。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第四步:从报表的工具箱中选择文本对象,拖到报表页眉处,键入“网络管理”字样后,点击右键选择设置对象格式,建立如下图的报表页眉样式。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第五步:设计页眉部分。由于报表左侧线段无法通过工具箱的控件实现,故通过绘图软件实现这部分内容。通过右键点击页眉处,选择图片,将制作好的图片插入左侧页眉处。而后,以该图片的高设定为页眉高。从工具箱之中拖拽框对象,此处需要注意的是,绘制边框时候,页眉和详细资料西部一起框住,这样产生的报表样式可以统一美观。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第六步:选择工具箱之中的线条对象,在页眉处绘制出四个单元格,准备添加相关的文字信息。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第七步:用右键点击报表界面,在弹出的菜单中选择数据库-数据库专家,在弹出的OLEDB(ADO)界面中选择OLEDBProviderSQLServer,并配置数据库服务器连接信息。选择完成后,打开菜单中的水晶报表项里面的字段资源管理器,贮备将展开的数据库字段拖拽到报表界面上面。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第八步:将页眉处文字按照下图写入,并配置字体大小,同时用线条对象勾勒出表格的基本数据分布区域。拖拽过来的属性字段删除页眉部分后,将实际字段分别排列在详细资料的空格内。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第九步:配置报表页脚部分,从工具箱中拖拽文本,线条和框对象共同组成下图页脚的样式。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第十步:右键点击报表页面,选择报表-节专家,在打开的节专家设计器里面,勾选在页面底部打印功能。此功能可以使得报表页脚仅仅在最后一页的底部显示。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第十一步:整体设计完成后的报表如下图所示,点击主报表预览,可以预览报表基本样子。,7-8水晶报表文件设计案例,案例1:打印某高校学生成绩单案例,第十二步:回到form1界面,从水晶报表中拖出一个crystalReportViewer对象,并配置该crystalReportViewer对象的reportsource属性为刚才设计的rpt文件。运行form1,程序一切正常,主要问题是:报表头非动态变化的数据;显示的学生成绩内容并非一个班的,而是所有的学生成绩。每门课程的百分比非动态变化的,毕竟每个教师给出的百分比都不尽相同。报表页脚的信息是静态不变的。很显然,离真实的动态报表还是相距甚远。,7-8水晶报表文件设计案例,案例2:水晶报表定制案例,第一步:将第四章ADO.NET中案例中的类库businesslayer.cs和databaselayer.cs,以及案例14窗体文件form14.cs,form14.designer.cs,form14.resx复制到水晶报表项目中,指定窗体文件form14.cs为首页运行。,7-8水晶报表文件设计案例,案例2:水晶报表定制案例,第二步:运行窗体文件form14.cs,调整并运行后状态如下图所示。期望当点击打印按钮时候,可以将某班级某课程的水晶报表通过刚才建立的案例1显示出来,即打开当前项目的form1窗体。,7-9水晶报表文件设计案例,案例2:水晶报表定制案例,第二步:运行窗体文件form14.cs,调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论