我给自己一个 BiningList
的学生( Entity Framework 创建的类)。
我只想从中提供我的 RDLC
报告,而不是使用 DataSet
或存储过程。
此类包含多个属性,例如:
string Name;
string FamilyName;
string Mid;
DateTime Birth;
...
有人可以帮我吗?
最佳答案
选项 1 - 使用设计器
- 打开“添加新项目”窗口,方法是按 Ctrl +Shift +A 或从“项目”菜单选择“添加新项目...”。
- 从窗口中选择报告向导
- 在“报表向导”窗口中,单击“数据源”组合框前面的“新建...”按钮。
- 完成“数据源配置向导”。在第一页中选择对象并单击下一步按钮,然后在下一页中,从树中找到您的业务对象并选中它附近的复选框并单击完成 按钮关闭数据源配置向导。
- 完成“报告向导”。业务对象将被选为报表的数据源,因此请按照向导单击下一步,然后在“排列字段”页面中,从“< strong>Available fields' 到 'Σ Values' 通过拖放列表。在下一页中的“选择布局”和“选择样式”,然后单击完成。
- 打开一个
Form
,然后从 Toolbox 中将一个Report Viewer
控件放在该窗体上。 - 通过点击 打开“Report Viewer Tasks”然后从组合框中选择“选择报告”。然后
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
设置报告,则该属性应该是嵌入资源中报告的名称。如果它以项目的默认 namespace 开头,如果您的报告位于解决方案资源管理器中的文件夹中,则以文件夹名称继续,最后是报告名称。
关于c# - Feed RDLC (Local) report 来自 List (Entity FrameWork) 的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38692746/