《C_WinForm实践开发教程》chp7水晶报表技术

上传人:无*** 文档编号:183195190 上传时间:2023-01-29 格式:PPTX 页数:44 大小:1.96MB
返回 下载 相关 举报
《C_WinForm实践开发教程》chp7水晶报表技术_第1页
第1页 / 共44页
《C_WinForm实践开发教程》chp7水晶报表技术_第2页
第2页 / 共44页
《C_WinForm实践开发教程》chp7水晶报表技术_第3页
第3页 / 共44页
点击查看更多>>
资源描述
-基于C#语言主讲教师:钱 哨本课学时:72课时联系方式:qianshaobjjtxy.bj Windows程序设计第七章、水晶报表技术n本章主要内容介绍5.1 windows和窗体5.2 Visual S IDE简介5.3 事件处理CONTENT本章学习目标:本章学习目标:理解水晶报表的作用和优点 使用水晶报表专家创立水晶报表 在窗体中使用水晶报表和报表绑定简介 7-1产品部的薪金详细信息财务部的薪金详细信息市场部的薪金详细信息按顺序显示信息汇总信息?报表格式化且有条理的数据记录表示方式水晶报表简介 7-2姓名:Allen John职位:分析员部门:20薪金:10000姓 名:J a c k Turner职位:行政人员部门:10薪金:3200姓名:Mark Lee职位:经理部门:30薪金:12000姓名:Chan Cho职位:销售员部门:40薪金:7600姓名:David Blake职位:销售员部门:40薪金:6500姓 名:S u s a n Jones职位:行政人员部门:10薪金:4500姓 名:S c o t t William职位:销售员部门:40薪金:8500姓名:Adam Johns职位:分析员部门:20薪金:9500用表格形式显示的数据需要手动计算每个部门的总薪金水晶报表简介 7-3Jack Turner行政人员103200Susan Jones行政人员104500部门部门 10 的总薪金是的总薪金是 7700Allen John分析员2010000Adam Johns分析员209500部门 20 的总薪金是 19500 Mark Lee经理3012000部门部门 30 的总薪金是的总薪金是 12000 Chan Cho销售员407600David Blake销售员406500Scott William销售员408500部门部门 40 的总薪金是的总薪金是 22700 有条理的表示数据记录更容易汇总所需的信息水晶报表简介 7-4 水晶报表是 Visual Studio 环境包括 Visual Studio.NET中用于创立报表的标准工具 利用水晶报表可以创立交互式的优质报表 不仅能为 WinForms 和 WebForms 创立报表,还能将报表作为Web 效劳存放在 Web 效劳器上“水晶报表设计器界面用于创立并格式化报表,大大减少代码编写量水晶报表的功能运行时自定义报表查看器与其他控件之间的交互报表作为Web效劳借助交互式界面更加容易地创立报表水晶报表水晶报表Windows窗体中水晶报表的使用 7-5u 新建Windows工程u 添加CrystalReportViewer 控件u 添加“选择报表按钮u 添加按钮响应事件private void btnSelect_Click(object sender,System.EventArgs e)OpenFileDialog dlg=new OpenFileDialog();dlg.Title=翻开水晶报表文件;dlg.Filter=水晶报表文件(*.rpt)|*.rpt|所有文件|*.*;if(dlg.ShowDialog()=DialogResult.OK)crystalReportViewer1.ReportSource=dlg.FileName;Windows窗体中水晶报表的使用 7-6水晶报表的操作分为两部分显示报表文件设计报表文件建立水晶报表文件 7-71、执行模式执行模式水晶报表取数据可以使用下面的方法实现:Pull 模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据,当然这种方式不需要编写任何代码不需要编写任何代码。Push 模式:此时开发者不得不自己编写代码连接数据并组装不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。在这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。建立水晶报表文件 7-72、报表类型、报表类型1Strongly-typed 报表:报表:当你将报表文件参加到工程中去时,它就变当你将报表文件参加到工程中去时,它就变成了一个了成了一个了“strongly-typed“报表。在这些报表。在这些情况下,你将拥有直接创立报表的对象的权力,情况下,你将拥有直接创立报表的对象的权力,这将减少一些代码并且能够提供一些这将减少一些代码并且能够提供一些性能。性能。2Un-Typed 报表:报表:这里的报表并不直接包含在工程中,因此称这里的报表并不直接包含在工程中,因此称为为un-typed 报表。在这种情况下,你不报表。在这种情况下,你不得不使用水晶报表的得不使用水晶报表的ReportDocuemt“对对象建立一个实例,并且手动象建立一个实例,并且手动“地调用报表。地调用报表。建立水晶报表文件 7-73、Pull模式的使用模式的使用1首先创立首先创立rpt文件,并使用水晶报表设计文件,并使用水晶报表设计接口设置一些必须的数据连接。接口设置一些必须的数据连接。2拖放一个拖放一个CrystalReportViewer控件至控件至aspx页面,设置它的属性指定我们上一步创页面,设置它的属性指定我们上一步创立的立的.rpt文件。文件。建立水晶报表文件 7-73、Pull模式的使用模式的使用1在右击“解决方案游览器,在弹出的菜单中选择“添加“添加新项“Crystal Report2在“Crystal Report 库中选择“作为空白报表单项选择按钮,最后单击“确定。建立水晶报表文件 7-73、Pull模式的使用模式的使用3出现水晶报表设计器。4右击报表中的“详细资料区,选择“数据库“数据库专家.“。在弹出的“数据库专家中,扩展“OLE DB(ADO)选项,此时会弹出另外一个“OLE DB(ADO)窗口。建立水晶报表文件 7-73、Pull模式的使用模式的使用5在OLE DB(ADO)弹出窗口中,选择MicrosoftOLE DB Provider for SQL Server 然后Next6指定连接的信息(选择Pubs库),单击“下一步,最后单击“完成按钮。建立水晶报表文件 7-73、Pull模式的使用模式的使用7这时你就能在“数据库专家窗口中看到我们选择的数据库。扩展“Pubs数据库,扩展“表,选择“employee表并将其加到“选定的表区中,单击“确定按钮。8现在在“字段资源浏览器中就会在左边“数据库字段区中显示你选择的表,以及表中的字段。建立水晶报表文件 7-73、Pull模式的使用模式的使用9拖放需要的字段进入报表的“详细资料区。字段名将会自动出现在页眉“区。如果你想修改头部文字,那么可以右击“页眉区中的文字,选择编辑文本对象“选项并进行编辑。保存并浏览信息。建立水晶报表文件 7-73、Pull模式的使用模式的使用10回到前面的WebForm中,拖放一个CrystalReport Viewer控件到页面中去。(11)调出Crystal Report Viewer控件的属性窗口,选择“ReportSource区点击下拉列表。此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的报表文件的预览。建立水晶报表文件 7-74、使用使用Push模式模式1.设计一个DataSet2.创立一个.rpt文件同时将其指定给上一步建立的DataSet。3.在aspx页面中拖放一个CrystalReportViewer 控件同时将其与前面的rpt文件建立联系。4.在代码中访问数据库并把数据存入DataSet5.调用DataBind方法。根本步骤根本步骤建立水晶报表文件 7-74、使用使用Push模式模式第一步:设计一个第一步:设计一个DataSet1 右击“解决方案浏览器,选择“添加-“添加新项-“数据集2从“效劳器资源管理器中的“SQL Server中拖放“Stores表位于PUBS数据库中。3此时在数据集中就会有一个Stores表的结构图。建立水晶报表文件 7-74、使用使用Push模式模式第一步:设计一个第一步:设计一个DataSet建立水晶报表文件 7-74、使用使用Push模式模式第二步:创立一个第二步:创立一个.rpt文件同时将其指定给上一步建立的文件同时将其指定给上一步建立的DataSet4)使用上面的介绍过的方法创立此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。5)建立.rpt文件之后,右击“详细资料-“添加删除数据库6)在“数据库专家窗口中,展开“工程数据代替以前的OleDb,展开“ADO.Net数据集-“DataSet1,选择“Stores表。7)将“Stores表添加到“选定的表中,点击“确定建立水晶报表文件 7-74、使用使用Push模式模式第二步:创立一个第二步:创立一个.rpt文件同时将其指定给上一步建立的文件同时将其指定给上一步建立的DataSet建立水晶报表文件 7-74、使用使用Push模式模式第三步:在第三步:在aspx页面中拖放一个页面中拖放一个CrystalReportViewer 控件同时将其与前面的控件同时将其与前面的rpt文件建立联系。文件建立联系。建立水晶报表文件 7-74、使用使用Push模式模式第四步:第四步:建立一个建立一个Crystal Report Viewer 控件,并控件,并设定其属性,此处与设定其属性,此处与PULL模式下是一致的。同时注意将生成的模式下是一致的。同时注意将生成的dataset对象对象拖拽到窗体界面中。拖拽到窗体界面中。建立水晶报表文件 7-74、使用使用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:打印某高校学生成绩单案例:打印某高校学生成绩单案例第七步:用右键点击报表界面,在弹出的菜单中选择数据库-数据库专家,在弹出的OLE DB(ADO)界面中选择OLE DB Provider SQL Server,并配置数据库效劳器连接信息。选择完成后,翻开菜单中的水晶报表项里面的字段资源管理器,贮备将展开的数据库字段拖拽到报表界面上面。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显示出来,即翻开当前工程的form1窗体。总结 水晶报表是用于创立报表的标准工具 水晶报表的优点包括:运行时自定义 报表查看器与其他控件之间的交互 报表作为 Web 效劳 开发 Windows 应用程序时,可以使用CrystalReportViewer控件将报表绑定到 WinForms窗体上 ADO.NET 数据集设计器用于创立只包含数据结构而不包含实际数据的数据集对象 水晶报表中的选择公式可用于计算字段和汇总,确定如何显示报表的输出结果
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!