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

前端之家收集整理的这篇文章主要介绍了使用实体框架在ASP.Net中创建报表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在寻求将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,@"rdlcReports\Report1.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;
        }
原文链接:https://www.f2er.com/aspnet/254170.html

猜你在找的asp.Net相关文章