从列表(entity framework)提供RDLC(本地)报告报告

我得到了一个学生的BiningList (entity framework创建的类)。

我只想从中提供我的RDLC报告,而不是使用DataSet或存储过程。

该类包含多个属性,如:

 string Name; string FamilyName; string Mid; DateTime Birth; ... 

任何人都可以帮助我吗?

选项1 – 使用设计师

  1. Ctrl + Shift + A打开“ 添加新项 ”窗口,或从“ 项目 ”菜单中选择“ 添加新项目… ”。
  2. 在窗口中,选择“报告向导”
  3. 在“ 报告向导 ”窗口中,单击“ 数据源 ”combobox前面的“ 新建… ”按钮。
  4. 完成“ 数据源配置向导 ”。 在第一页中选择Object并单击Next按钮,然后在下一页中,从树中找到您的业务对象并选中它旁边的复选框,然后单击Finish按钮关闭数据源配置向导。
  5. 完成“ 报告向导 ”。 将选择业务对象作为报告的数据源,因此请按照向导单击“ 下一步” ,然后在“ 排列字段 ”页面中,通过拖放将“ 可用字段 ”中的一些文件添加到“ Σ值 ”列表中。 在下一页“ 选择布局 ”和“ 选择样式 ”中,单击“ 完成”
  6. 打开一个Form然后从工具箱中将一个Report Viewer控件放在表单上。
  7. 单击打开“ 报告查看器任务智能标记图标 然后从combobox中选择“报告 ”。 然后将BindingSource添加到表单中。
  8. 双击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设置报告,则该属性应为嵌入资源中报告的名称。 如果它以项目的默认名称空间开头,并且如果您的报告位于解决方案资源管理器中的文件夹中,则继续使用文件夹名称,最后是报告名称。