《C# WinForm实践开发教程》chp7.水晶报表技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章学习目标:
• 理解水晶报表的作用和优点
• 使用水晶报表专家创建水晶报表
• 在窗体中使用水晶报表和报表绑定
简介 7-1
汇总信息?
产品部的薪金详细信息
财务部的薪金详细信息
市场部的薪金详细信息
报表-格式化且 按顺序显示信息 有条理的数据记 录表示方式
水晶报表简介 7-2
用表格形式显示的数据
姓名: Allen John 职位:分析员 部门:20 薪金:10000 姓名: 职位: 部门: 薪金: David Blake 销售员 40 6500 姓 名 Turner 职位: 部门: 薪金: 姓 名 Jones 职位: 部门: 薪金: Jack 姓名: 职位: 行政人员 部门: 10 薪金: 3200 : : Mark Lee 经理 30 12000 姓名: 职位: 部门: 薪金: 姓名: 职位: 部门: 薪金: Chan Cho 销售员 40 7600 Adam Johns 分析员 20 9500
Susan 姓 名 : Scott William 行政人员 职位: 销售员 10 部门: 40 4500 薪金: 8500
需要手动计算每个部门的总薪金
水晶报表简介 7-3
姓名 Jack Turner Susan Jones Allen John 职位 行政人员 行政人员 分析员 部门 10 10 20 薪金 3200 4500 10000
建立水晶报表文件 7-7
4、使用Push模式
第一步:设计一个DataSet
建立水晶报表文件 7-7
4、使用Push模式
第二步:创建一个.rpt文件同时将其指定给上一步建立的DataSet
4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代 替前面的直接连接数据。
5)建立.rpt文件之后,右击“详细资料”-->“添加/删除数据库”
建立水晶报表文件 7-7
4、使用Push模式
第五步:运行后我们将看见一张空的报表,主要原因是DataSet对象 所复制的仅仅是空的物理表的模式结构,而实质的数据必须通过编程 的方式才可以实现。
在代码中访问数据库并把数据存入DataSet,代码见下:
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第五步:设计页眉部分。由于报表左侧线 段无法通过工具箱的控件实现,故通过绘 图软件实现这部分内容。通过右键点击页 眉处,选择图片,将制作好的图片插入左 侧页眉处。 而后,以该图片的高设定为页眉高。从工 具箱之中拖拽框对象,此处需要注意的是, 绘制边框时候,页眉和详细资料西部一起 框住,这样产生的报表样式可以统一美观。
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第六步:选择工具箱之中的线条对象,在页眉处绘制出四个单元格,准备添加相关的 文字信息。
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第七步:用右键点击报表界面,在弹出的菜单中选择数据库->数据库专家,在弹出的OLE DB(ADO)界面中选择 OLE DB Provider SQL Server,并配置数据库服务器连接信息。选择完成后,打开菜单中的水晶报表项里面的字 段资源管理器,贮备将展开的数据库字段拖拽到报表界面上面。
crystalReportViewer1.ReportSource = dlg.FileName; }
}
Windows窗体中水晶报表的使用 7-6
显示报表文件 水晶报表的操作分 为两部分 设计报表文件
建立水晶报表文件 7-7
1、 执行模式
水晶报表取数据可以使用下面的方法实现: – Pull 模式: 被请求时,水晶报表直接根据指定的驱动连接数据 库然后组装这些数据,当然这种方式不需要编写任何代码。 – Push 模式: 此时开发者不得不自己编写代码连接数据并组装 DataSet,同时将它传送至报表。在这种情况下,通 过使用连接共享以及限制记录集合的大小,可以使用 报表性能最大化。
水晶报表的功能
运行时自定义 报表查看器与其他 控件之间的交互
水晶报表
借助交互式界面更 加容易地创建报表
报表作为Web服务
Windows窗体中水晶报表的使用 7-5
新建Windows项目 添加CrystalReportViewer 控件 添加“选择报表”按钮 添加按钮响应事件
private void btnSelect_Click(object sender, System.EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "打开水晶报表文件"; dlg.Filter = "水晶报表文件(*.rpt)|*.rpt| 所有文件|*.*"; if(dlg.ShowDialog()==DialogResult. OK) {
建立水晶报表文件 7-7
4、使用Push模式
第一步:设计一个DataSet
(1) 右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集” (2)从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表 (位于PUBS数据库中)。 (3)此时在数据集中就会有一个Stores表的结构图。
Windows程序设计
--------------基于C#语言
主讲教师:钱 哨 本课学时:72课时 联系方式:qianshao@bjjtxy.bj.cn
第七章、水晶报表技术
CONTENT
本章主要内容介绍
5.1 5.2 5.3 windows和窗体 Visual Stutio .net IDE简介 事件处理
建立水晶报表文件 7-7
4、使用Push模式
基本步骤
1. • 设计一个DataSet 2. • 创建一个.rpt文件同时将其指定给上一步建立的 DataSet。 3. • 在aspx页面中拖放一个CrystalReportViewer 控件 同时将其与前面的rpt文件建立联系。 4. • 在代码中访问数据库并把数据存入DataSet 5. • 调用DataBind方法。
部门 10 的总薪金是 7700
有条理的表示数据记录 Adam Johns 20 9500 分析员 更容易汇总所需的信息 部门 20 的总薪金是 19500
Mark Lee 经理 30 部门 30 的总薪金是 12000
12000
Chan Cho
David Blake Scott William
销售员
3、Pull模式的使用
(7)这时你就能在“数据库专家” 窗口中看到我们选择的数据库。 扩展 “Pubs”数据库,扩展“表”,选择 “employee”表并将其加到“选定的 表”区中,单击“确定”按钮。
(8)现在在“字段资源浏览器”中就 会在左边“数据库字段”区中显示你选 择的表,以及表中的字段。
建立水晶报表文件 7-7
某高校为合作办学院校,现有三所合作院校,且成绩单据的格式 完全不一致,纸质报表样式如下:【详见学生成绩单据报表图片】
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
数据库分析【数据库分析报告见电子文档】
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第二步:将纸张大小设置成为B5纸,纵向 第一步:建立一个空的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模式
第四步:建立一个Crystal Report Viewer 控件,并 设定其属性,此处与PULL模式下是一致的。同时注意将生成的dataset对象 拖拽到窗体界面中。
3、Pull模式的使用
(9)拖放需要的字段进入报表的“详细资料”区。字段名将会自动出 现在”页眉“区。如果你想修改头部文字,则可以右击“页眉”区中 的文字,选择”编辑文本对象“选项并进行编辑。保存并浏览信息。
建立水晶报表文件 7-7
3、Pull模式的使用
(10)回到前面的WebForm中, 拖放一个CrystalReport Viewer控 件到页面中去。 (11)调出Crystal Report Viewer控件的属性 窗口,选择“ReportSource”区点击下拉列 表。 此时你能够从Crystal Report Viewer 控件中 看到使用一些虚拟数据组成的报表文件的预 览。
建立水晶报表文件 7-7
2、报表类型
(1)Strongly-typed 报表: 当你将报表文件加入到项目中去时,它就变成了一个了 “ strongly-typed“报表。在这些情况下,你将拥有直接创建报 表的对象的权力,这将减少一些代码并且能够提供一些 性能。 (2)Un-Typed 报表: 这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在这种情况下,你不得不使用水晶报表 的”ReportDocuemt“对象建立一个实例,并且”手动“地调 用报表。
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第八步:将页眉处文字按照下图写入,并配置字体大小,同时用线条对象勾勒出表格的基本数 据分布区域。拖拽过来的属性字段删除页眉部分后,将实际字段分别排列在详细资料的空格内。
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第三步:再选择页面设置,配置页面的 上下左右的边距。
具体的边距要求参照WORD文档对于页 面的设置参数。
7-8 水晶报表文件设计案例
案例1:打印某高校学生成绩单案例
第四步:从报表的工具箱中选择文本对象,拖到报表页眉 处,键入“网络管理”字样后,点击右键选择设置对象格 式,建立如下图的报表页眉样式。
(2)在“Crystal Report 库”中选择“作为空白 报表”单选按钮,最后单击“确定”。
建立水晶报表文件 7-7
3、Pull模式的使用
(3)出现水晶报表设计器。 (4)右击报表中的“详细资料区”,选择“数 据库”->“数据库专家...“。在弹出的“数据 库专家”中,扩展“OLE DB(ADO)”选项, 此时会弹出另外一个“OLE DB(ADO)”窗口。
建立水晶报表文件 7-7
3、Pull模式的使用
(5)在"OLE DB (ADO)" 弹出 窗口中,选择"Microsoft OLE DB Provider for SQL Server" 然后"Next" (6)指定连接的信息(选择Pubs库), 单击“下一步”,最后单击“完成”按 钮。
建立水晶报表文件 7-7
建立水晶报表文件 7-7
3、Pull模式的使用
(1)首先创建rpt文件,并使用水晶报表设计接口设置一些必 须的数据连接。 (2)拖放一个CrystalReportViewer控件至aspx页面,设置它 的属性指定我们上一步创建的.rpt文件。
建立水晶报表文件 7-7
3、Pull模式的使用Fra Baidu bibliotek
(1)在右击“解决方案游览器”,在弹出的菜单中选择“添加”--“添加新项” -->“Crystal Report”
销售员 销售员
40
40 40
7600
6500 8500
部门 40 的总薪金是 22700
水晶报表简介 7-4
• 水晶报表是 Visual Studio 环境(包括 Visual Studio.NET)中用于创建报表的标准 工具 • 利用水晶报表可以创建交互式的优质报表 • 不仅能为 WinForms 和 WebForms 创建报 表,还能将报表作为Web 服务存放在 Web 服务器上 • “水晶报表设计器”界面用于创建并格式 化报表,大大减少代码编写量