【问题标题】:Feed RDLC (Local) report report from List (Entity FrameWork)从列表(实体框架)馈送 RDLC(本地)报告报告
【发布时间】:2016-08-01 07:01:32
【问题描述】:

我给自己找了一个 BiningList 的学生(实体框架创建的类)。

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

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

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

谁能帮帮我?

【问题讨论】:

    标签: c# winforms entity-framework report rdlc


    【解决方案1】:

    选项 1 - 使用设计器

    1. 按 Ctrl +Shift +A 或从“添加新项目”窗口>项目”菜单选择“添加新项目...”。
    2. 从窗口中选择报告向导
    3. 在“报表向导”窗口中,单击“数据源”组合框前面的“新建...”按钮。
    4. 完成“数据源配置向导”。在第一页选择 Object 并单击 Next 按钮,然后在下一页中,从树中找到您的业务对象并选中它附近的复选框并单击 Finish 按钮关闭数据源配置向导。
    5. 完成“报告向导”。业务对象将被选为报表的数据源,所以按照向导点击Next,然后在'Arrange Fields'页面中,添加一些来自'可用字段' 到'Σ 值' 列表。下一页中的“选择布局”和“选择样式”并点击Finish。
    6. 打开Form 并从工具箱 中将Report Viewer 控件放在表单上。
    7. 点击,然后从组合框中点击“Choose Report”,打开“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 设置报告,则该属性应为嵌入资源中报告的名称。如果它以项目的默认名称空间开头,如果您的报告位于解决方案资源管理器的文件夹中,则以文件夹名称继续,最后是报告的名称。

    【讨论】:

    • 惊人的答案老兄!谢谢
    猜你喜欢
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多