加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

使用实体框架在ASP.Net中创建报表

发布时间:2020-12-15 18:55:50 所属栏目:asp.Net 来源:网络整理
导读:我们正在寻求将Microsoft Reports – SSRS添加到我们的内部网站之一。 数据库安装了所有报告功能。 该网站正在使用Entity Framework 4的所有数据。 我已经能够创建一个报表使用老式的方式创建一个DataSet(* .XSD),这很好。 我的问题是,是否可能利用现有的
我们正在寻求将Microsoft Reports – SSRS添加到我们的内部网站之一。

数据库安装了所有报告功能。

该网站正在使用Entity Framework 4的所有数据。

我已经能够创建一个报表使用老式的方式创建一个DataSet(* .XSD),这很好。

我的问题是,是否可能利用现有的实体框架在网站的报告所需的数据?而不是必须重新发明轮子,并制作一个完整的DataSet,以及关系等。

这是一个网站,而不是应用程序,所以这(http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-an-asp-net-report-using-visual-studio-2010-part-1.aspx)似乎不适用;我看不到DataSource(在教程的第2部分)

更新

作为旁注,我们希望避开昂贵的第三方控制等。

此外,另一种方式来看看这个问题可能是从实体框架实体模型生成* .XSD;这可能吗?这不是理想,虽然会让我们开始运行..

解决方法

下面是我如何在我的一个.NET winForms应用程序中设置报告数据源的快速示例。
public  void getMyReportData()
    {
        using (myEntityDataModel v = new myEntityDataModel())
        {

            var reportQuery = (from r in v.myTable
                                   select new
                                   {
                                       l.ID,l.LeaveApplicationDate,l.EmployeeNumber,l.EmployeeName,l.StartDate,l.EndDate,l.Supervisor,l.Department,l.Col1,l.Col2,.......,l.Address
                                   }).ToList();


            reportViewer1.LocalReport.DataSources.Clear();
            ReportDataSource datasource = new ReportDataSource("nameOfReportDataset",reportQuery);
            reportViewer1.LocalReport.DataSources.Add(datasource);

            Stream rpt = loadEmbededReportDefinition("Report1.rdlc");
            reportViewer1.LocalReport.LoadReportDefinition(rpt);
            reportViewer1.RefreshReport();

            //Another way of setting the reportViewer report source

            string exeFolder = Path.GetDirectoryName(Application.ExecutablePath);
            string reportPath = Path.Combine(exeFolder,@"rdlcReportsReport1.rdlc");
            reportViewer1.LocalReport.ReportPath = reportPath;

            reportParameter p = new ReportParameter("DeptID",deptID.ToString());
            reportViewer1.LocalReport.SetParameters(new[] { p });

        }
    }




    public static Stream loadEmbededReportDefinition(string reportName)
        {
            Assembly _assembly = Assembly.GetExecutingAssembly();
            Stream _reportStream = _assembly.GetManifestResourceStream("ProjectNamespace.rdlcReportsFolder." + reportName);

            return _reportStream;
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读