c# - Feed RDLC (Local) report 来自 List (Entity FrameWork) 的报告

标签 c# winforms entity-framework report rdlc

我给自己一个 BiningList 的学生( Entity Framework 创建的类)。

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

此类包含多个属性,例如:

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

有人可以帮我吗?

最佳答案

选项 1 - 使用设计器

  1. 打开“添加新项目”窗口,方法是按 Ctrl +Shift +A 或从“项目”菜单选择“添加新项目...”。
  2. 从窗口中选择报告向导
  3. 在“报表向导”窗口中,单击“数据源”组合框前面的“新建...”按钮。
  4. 完成“数据源配置向导”。在第一页中选择对象并单击下一步按钮,然后在下一页中,从树中找到您的业务对象并选中它附近的复选框并单击完成 按钮关闭数据源配置向导。
  5. 完成“报告向导”。业务对象将被选为报表的数据源,因此请按照向导单击下一步,然后在“排列字段”页面中,从“< strong>Available fields' 到 'Σ Values' 通过拖放列表。在下一页中的“选择布局”和“选择样式”,然后单击完成
  6. 打开一个 Form,然后从 Toolbox 中将一个 Report Viewer 控件放在该窗体上。
  7. 通过点击 Smart tag icon 打开“Report Viewer Tasks”然后从组合框中选择“选择报告”。然后 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 设置报告,则该属性应该是嵌入资源中报告的名称。如果它以项目的默认 namespace 开头,如果您的报告位于解决方案资源管理器中的文件夹中,则以文件夹名称继续,最后是报告名称。

关于c# - Feed RDLC (Local) report 来自 List (Entity FrameWork) 的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38692746/

相关文章:

c# - 修复 TableLayoutPanel 中每一行的行高

c# - 尝试创建开始最小化的表单时出现 StackOverflowException

c# - Windows 窗体分隔符控件

c# - 改进 LINQ to EF 生成的 SQL 查询

c# - DISM.exe 返回代码?

c# - LINQ to Nhibernate 性能

c# - MVC 6 中的自定义 Razor View 引擎

c# - 何时使用 Observable.FromEventPattern 而不是 Observable.FromEvent?

asp.net-mvc - virtual 关键字、Include 扩展方法、延迟加载、预先加载——加载相关对象实际上是如何工作的

c# - 为什么 Entity Framework 可以在本地工作但不能在 azure 上工作