c# 报表练习笔记
2013-03-11 14:50
344 查看
报表数据来自数据库
A-1.创建DataSet。选择“服务器资源管理器”下的数据连接,选择数据库的某个表,拖到xsd的面板中。
A-2.添加报表。“报表数据”,“新建数据集...”。“对象”,选择刚才生成的DataSet。可以看到数据集中出现刚才的表格。最上面填充数据集名称,这个名称下面会用到,所以尽量不随意命名。下面数据绑定的过程中可能会用。
A-3.添加完报表数据后,继续编辑报表。从工具箱中拖出“表”、“文本框”..等控件来设计报表的前台。
A-4.绑定数据。在输入框中右键,“表达式”,在=后面编写输入框要表现的信息。常用:="工程师:" & First(Field!Designer.Value, "Employees")。其中'&'连接两段独立的信息,"First"表示第一条数据,"Field!"说明哪个字段名称,"Employees"是表名。如果信息是一段固定的文字,可直接通过输入框输入。(此处没有理解表的组有什么作用)
A-5.完成以上步骤后,设计前台WinForm。新建一个WinForm,拖入控件"ReportViewer"。
A-6.进入后台,编写绑定数据函数。
[b]报表数据来自本地XML[/b]
B-1.创建DataSet。"工具箱","DataTable“,新增和编辑表的列。
B-2.A-1/A-2/A-3/A-4
B-3.创建一个XML文件,将其属性改为“复制到输出目录--始终复制”。并在xml中编写内容,内容与创建的DataSet的表结构一样。数据一一对应。最终会将xml的数据读取到DataSet的表中,通过前台呈现出来。
B-4.A-5/A-6。绑定数据的函数如下。
[b]数据集中有多个表格[/b],也就是说报表数据来源自多个表格。
1.创建完DataSet后,在DataSet中创建多个DataTable。可以是数据库也可以是自定义。以自定义为例。
2.创建报表。在报表的报表数据中添加数据集,多次添加,将最终需要获取表现出来的DataTable全部添加到数据集中。
3.编辑完报表之后,创建XML数据。同样需要构造所有的表格数据。
4.界面绑定数据的函数如下:
练习项目
遗留问题:编辑rdlc报表的过程中,“分组”是什么意思?reportViewer可以设置绑定报表,为什么有的时候绑定完了之后会自动生成Adapter.fill,而有时候又不行呢?同样的数据,同样的操作,在两个解决方案中打开,一个会自动在Load里面生成Fill(),同时自动添加DataSet,Adapter,BindingData,另一个只生成了BindingData......
A-1.创建DataSet。选择“服务器资源管理器”下的数据连接,选择数据库的某个表,拖到xsd的面板中。
A-2.添加报表。“报表数据”,“新建数据集...”。“对象”,选择刚才生成的DataSet。可以看到数据集中出现刚才的表格。最上面填充数据集名称,这个名称下面会用到,所以尽量不随意命名。下面数据绑定的过程中可能会用。
A-3.添加完报表数据后,继续编辑报表。从工具箱中拖出“表”、“文本框”..等控件来设计报表的前台。
A-4.绑定数据。在输入框中右键,“表达式”,在=后面编写输入框要表现的信息。常用:="工程师:" & First(Field!Designer.Value, "Employees")。其中'&'连接两段独立的信息,"First"表示第一条数据,"Field!"说明哪个字段名称,"Employees"是表名。如果信息是一段固定的文字,可直接通过输入框输入。(此处没有理解表的组有什么作用)
A-5.完成以上步骤后,设计前台WinForm。新建一个WinForm,拖入控件"ReportViewer"。
A-6.进入后台,编写绑定数据函数。
DsDataBaseTableAdapters.AAA_0228TableAdapter AAA_0228TableAdapter = new DsDataBaseTableAdapters.AAA_0228TableAdapter(); DsDataBase ds = new DsDataBase(); AAA_0228TableAdapter.ClearBeforeFill = true; AAA_0228TableAdapter.Fill(ds.AAA_0228); ReportDataSource dataSource1 = new ReportDataSource("DataSet1", ds.Tables["AAA_0228"]); reportViewer1.LocalReport.DataSources.Add(dataSource1); reportViewer1.LocalReport.ReportEmbeddedResource = "ReportPractise.ReportDataBase.ReportDataBase.rdlc";
[b]报表数据来自本地XML[/b]
B-1.创建DataSet。"工具箱","DataTable“,新增和编辑表的列。
B-2.A-1/A-2/A-3/A-4
B-3.创建一个XML文件,将其属性改为“复制到输出目录--始终复制”。并在xml中编写内容,内容与创建的DataSet的表结构一样。数据一一对应。最终会将xml的数据读取到DataSet的表中,通过前台呈现出来。
B-4.A-5/A-6。绑定数据的函数如下。
using (var ds = new DataSet()) { ds.ReadXml("ReportXML\\BasicInfo.xml"); ReportDataSource dataSource1 = new ReportDataSource("DataSet1", ds.Tables["BasicInfo"]); reportViewer1.LocalReport.DataSources.Add(dataSource1); reportViewer1.LocalReport.ReportEmbeddedResource = "ReportPractise.ReportXML.ReportXML.rdlc"; }
[b]数据集中有多个表格[/b],也就是说报表数据来源自多个表格。
1.创建完DataSet后,在DataSet中创建多个DataTable。可以是数据库也可以是自定义。以自定义为例。
2.创建报表。在报表的报表数据中添加数据集,多次添加,将最终需要获取表现出来的DataTable全部添加到数据集中。
3.编辑完报表之后,创建XML数据。同样需要构造所有的表格数据。
4.界面绑定数据的函数如下:
using (var ds = new DataSet()) { ds.ReadXml("ReportMultiTable\\TestResult.xml"); ReportDataSource dataSource1 = new ReportDataSource("dsMain", ds.Tables["Main"]); ReportDataSource dataSource2 = new ReportDataSource("dsDetail", ds.Tables["Detail"]); reportViewer1.LocalReport.DataSources.Add(dataSource1); reportViewer1.LocalReport.DataSources.Add(dataSource2); reportViewer1.LocalReport.ReportEmbeddedResource = "ReportPractise.ReportMultiTable.ReportMultiTable.rdlc"; }
练习项目
遗留问题:编辑rdlc报表的过程中,“分组”是什么意思?reportViewer可以设置绑定报表,为什么有的时候绑定完了之后会自动生成Adapter.fill,而有时候又不行呢?同样的数据,同样的操作,在两个解决方案中打开,一个会自动在Load里面生成Fill(),同时自动添加DataSet,Adapter,BindingData,另一个只生成了BindingData......
相关文章推荐
- c# 报表练习笔记(一)
- c# 报表练习笔记(二)——父子报表 + 分组 + 图片
- c# 报表练习笔记二——父子报表 + 分组 + 图片
- C#小练习笔记:生成个玫瑰线图案
- 我的学习笔记(在C#里用MVC实现水晶报表)
- c#学习笔记 - 《c#入门经典》 3.5练习5源码。
- 报表练习笔记三——我的代码
- C#学习笔记之——一些练习(包含了一些out的使用,string的使用,StringBuilder的使用,类的属性,最大公约数的求法,还有英雄,武器类的设置)
- C#学习笔记—二维数组的练习
- 报表练习笔记三——我的代码
- 报表与数据仓库运算-练习笔记
- .Net学习笔记----2015-07-22(C#基础复习10,面向对象2个小练习)
- 报表与数据仓库运算-练习笔记1
- C# 水晶报表笔记
- C#小练习笔记:生成个玫瑰线图案
- C#小练习笔记:生成个玫瑰线图案
- 报表与数据仓库运算-练习笔记2
- C#学习笔记
- C#2005 .NET3.0高级编程学习笔记———C#基础
- 使用C#和Excel进行报表开发(1)