从列表(entity framework)提供RDLC(本地)报告报告
我得到了一个学生的BiningList
(entity framework创建的类)。
我只想从中提供我的RDLC
报告,而不是使用DataSet
或存储过程。
该类包含多个属性,如:
string Name; string FamilyName; string Mid; DateTime Birth; ...
任何人都可以帮助我吗?
选项1 – 使用设计师
- 按Ctrl + Shift + A打开“ 添加新项 ”窗口,或从“ 项目 ”菜单中选择“ 添加新项目… ”。
- 在窗口中,选择“报告向导”
- 在“ 报告向导 ”窗口中,单击“ 数据源 ”combobox前面的“ 新建… ”按钮。
- 完成“ 数据源配置向导 ”。 在第一页中选择Object并单击Next按钮,然后在下一页中,从树中找到您的业务对象并选中它旁边的复选框,然后单击Finish按钮关闭数据源配置向导。
- 完成“ 报告向导 ”。 将选择业务对象作为报告的数据源,因此请按照向导单击“ 下一步” ,然后在“ 排列字段 ”页面中,通过拖放将“ 可用字段 ”中的一些文件添加到“ Σ值 ”列表中。 在下一页“ 选择布局 ”和“ 选择样式 ”中,单击“ 完成” 。
- 打开一个
Form
然后从工具箱中将一个Report Viewer
控件放在表单上。 - 单击打开“ 报告查看器任务 ” 然后从combobox中选择“报告 ”。 然后将
BindingSource
添加到表单中。 -
双击
Form
以处理Load
事件并将此代码添加到事件处理程序:var data = db.Students.ToList(); this.studentBindingSource.DataSource = data; this.reportViewer1.RefreshReport();
选项2 – 使用代码
将ReportViewer
控件放在窗体上并处理窗体的Load
事件并编写以下代码:
var data = db.Students.ToList(); var reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource(); reportDataSource1.Name = "DataSet1"; reportDataSource1.Value = data; this.reportViewer1.LocalReport.DataSources.Add(reportDataSource1); this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportSample.Report1.rdlc"; this.reportViewer1.RefreshReport();
reportDataSource1.Name
应该是报表定义中DataSet
名称。 要查看它,请打开报告,然后在“报告数据”窗口的“数据集”节点下,查看数据集名称。
如果使用ReportEmbeddedResource
设置报告,则该属性应为嵌入资源中报告的名称。 如果它以项目的默认名称空间开头,并且如果您的报告位于解决方案资源管理器中的文件夹中,则继续使用文件夹名称,最后是报告名称。