7

ado.net データセットを使用してレポート (SSRS) を開発した経験がありました。現在、ADO.net を使用していないがエンティティ フレームワークを使用しているが、エンティティ フレームワークがデータテーブルまたはデータセットを返さないアプリケーションに取り組んでいます。私は知りたいです

  1. レポート サービスでエンティティ フレームワークによって返される Collection またはカスタム オブジェクトを使用する方法はありますか?
  2. エンティティ フレームワークは、何らかの形でデータ テーブルまたはデータセットを返します。

または、エンティティ フレームワークによって返されたコレクションから手動でデータ テーブル/データセットを作成する必要があります。

記録のために、エンティティ フレームワークからストアド プロシージャを実行して結果セットを取得しています。

4

1 に答える 1

3
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.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;
    }

元のソース: Entity Framework を使用して ASP.Net でレポートを作成する

于 2013-12-10T06:06:51.403 に答える