220 likes | 332 Views
信息系统开发 (C#). 目标. 理解水晶报表的作用和优点 使用水晶报表专家创建水晶报表 在窗体中使用水晶报表和报表绑定. 简介. 汇总信息?. 报表-格式化且有条理的数据记录表示方式. 产品部的薪金详细信息. 财务部的薪金详细信息. 市场部的薪金详细信息. 按顺序显示信息. 水晶报表简介. 用表格形式显示的数据. 需要手动计算每个部门的总薪金. 水晶报表简介. 有条理的表示数据记录 更容易汇总所需的信息. 水晶报表简介. 水晶报表是 Visual Studio 环境(包括 Visual Studio.NET )中用于创建报表的标准工具
E N D
目标 • 理解水晶报表的作用和优点 • 使用水晶报表专家创建水晶报表 • 在窗体中使用水晶报表和报表绑定
简介 汇总信息? 报表-格式化且有条理的数据记录表示方式 产品部的薪金详细信息 财务部的薪金详细信息 市场部的薪金详细信息 按顺序显示信息
水晶报表简介 用表格形式显示的数据 需要手动计算每个部门的总薪金
水晶报表简介 有条理的表示数据记录 更容易汇总所需的信息
水晶报表简介 • 水晶报表是 Visual Studio 环境(包括 Visual Studio.NET)中用于创建报表的标准工具 • 利用水晶报表可以创建交互式的优质报表 • 不仅能为 WinForms 和 WebForms 创建报表,还能将报表作为Web 服务存放在 Web 服务器上 • “水晶报表设计器”界面用于创建并格式化报表,大大减少代码编写量
水晶报表的功能 报表查看器与其他控件之间的交互 运行时自定义 水晶报表 借助交互式界面更加容易地创建报表 报表作为Web服务
水晶报表查看器 拖放
CrystalReportViewer 的属性、方法和事件 命名规则: 在CrystalReportViewer控件前加“crv” 正确地命名:crvSalesReport 、 crvBalanceSheetReport
使用水晶报表专家 可帮助用户创建多种报表、绘制各种图形、设置报表的整体格式、连接数据库,以及根据用户的选择指定数据库中的记录等。 创建窗体后,在添加新项中添加“Crystal Report”,将自动启动水晶报表设计器,进入“标准报表专家”中。 “标准报表专家”可帮助定义报表的数据源、选择要使用的数据记录并对其进行分组,还可以格式化报表对象和布局。
使用水晶报表专家 选择水晶报表
使用水晶报表专家 扩展 OLE DB(ADO) 部分 用于 SQL Server 的 OLE DB 提供程序
使用水晶报表专家 可以将表的所有字段或指定字段添加到报表中。 选择所需的表并将其插入到报表中。
水晶报表应用程序示例 • 水晶报表支持 ADO.NET 数据集。 • 可以使用各种数据源创建 ADO.NET 数据集。 • 使用 ADO.NET 数据集创建报表需遵循以下步骤。 • 生成一个 数据集 对象。 • 连接至 ADO.NET 数据集 对象。 • ADO.NET 数据集设计器用来创建只包含数据结构而不包含实际数据的 DataSet 对象。 • 要在报表上显示实际数据,可将数据库中的数据传递至 ADO.NET 对象模型中的 DataSet 对象中。 • 将这个已填入数据的 DataSet 传递至报表引擎。 • 最后,将报表对象绑定至 WinForms 中相应水晶报表查看器上。
水晶报表应用程序示例 新建 Windows 应用程序,从菜单中选择“项目” “新建项目” 在“类别”区域中展开“本地项目项”,选择“数据”, 从“模板”区域选择“数据集” 使用“服务器资源管理器”窗口创建新的链接 将服务器资源管理器中的 Book 表拖至“数据集”选项卡
水晶报表应用程序示例 从“生成”菜单中选择“生成解决方案” 为该项目生成一个数据集对象 注意:生成的数据集对象不包含实际的数据,只包含对数据库结构的描述
水晶报表应用程序示例 向该窗体添加水晶报表项。选择“Crystal Report 库”窗口中的默认项 可用于指定一个或多个字段来汇总特定组 在“标准报表专家”窗口中展开“项目数据”文件夹 展开 ADO.NET 数据集,并选择 DataSet 对象 选择 Book 表,单击“插入表”。在“字段”选项卡中添加所有列 在“组”选项卡中选择 Publisher列,单击“添加”, 将选中的列添加到“分组依据”中
水晶报表应用程序示例 创建报表后,将数据填充到数据集对象中,并在报表查看器中显示数据 默认情况下,“汇总字段”部分显示数据类型为数字的所有字段,因为只能对这种数据类型执行统计操作
水晶报表应用程序示例 创建报表后,将其与需要该报表的应用程序中的报表查看器进行绑定。打开“工具箱”,并将 CrystalReportViewer 控件拖放到窗体上,即在窗体上添加了水晶报表查看器。 CrystalReportViewer包含允许自定义和控制报表的外观及行为的属性 将 System.Data.SqlClient 命名空间添加到该窗体中 在类声明部分中添加以下代码 public BooksCrystalReport objBooksCrystalReport = new BooksCrystalReport ();
水晶报表应用程序示例 在 InitializeComponent() 方法后的构造函数中添加代码 string strCon="server=SQLDB;uid =sa; password=; database = Book"; string strSelect="select * from Book"; SqlConnection objSqlConnection = new SqlConnection(strCon); SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter (strSelect,objSqlConnection); //为BooksDataset数据集声明一个实例 DataSet objDataSet = new BooksDataset(); //将数据填充到数据集实例objDataSet中 objSqlDataAdapter.Fill (objDataSet, "Books"); objBooksCrystalReport=new BooksCrystalReport(); //设置水晶报表实例的数据源 objBooksCrystalReport.SetDataSource(objDataSet.Tables["Books"]); // 将含有数据的报表对象绑定到 水晶报表查看器上 crvBooksReportViewer.ReportSource = objBooksCrystalReport;
水晶报表应用程序示例 • 使用报表设计器可以将图表插入到水晶报表中 • 在水晶报表中可使用选择公式筛选记录 • 可在窗体的 Load 事件中指定选择公式 private void frmBooksReport_Load(object sender, System.EventArgs e) { this.crvBooksReportViewer.SelectionFormula= "{Book.Price} >= 70"; this.crvBooksReportViewer.RefreshReport(); }
总结 • 水晶报表是用于创建报表的标准工具 • 水晶报表的优点包括: • 运行时自定义 • 报表查看器与其他控件之间的交互 • 报表作为 Web 服务 • 开发 Windows 应用程序时,可以使用CrystalReportViewer控件将报表绑定到 WinForms窗体上 • ADO.NET 数据集设计器用于创建只包含数据结构而不包含实际数据的数据集对象 • 水晶报表中的选择公式可用于计算字段和汇总,确定如何显示报表的输出结果