2

ASP.NETアプリケーションのRDLCレポートをレイアウトしようとしています。私はエンティティフレームワークを使用しており、EDMXデザイナから生成されたエンティティのリストを返す部分クラスを持っています。問題を単純化するために、すべてのファイルは正しく名前空間が設定され、同じプロジェクト内にあります。

私はここでサンプルを処理しようとしています:http: //msdn.microsoft.com/en-us/library/ms251692 (VS.100).aspx

...ActionResultを介してASP.NETMVCの応答ストリームにレポートをレンダリングすることを目的としています。

「レポートの設計」セクションのステップ2で、「グローバル」を選択するように指示されています。この時点で、エンティティが使用可能になります。残念ながら、グローバルは存在せず、モデルからIList静的メソッドを参照する他の方法を見つけることができません。

さらに、「データソース」ツールウィンドウがないため、(昔のIDEのように)オブジェクトデータソースをレポートに追加する方法がないように見えます。

「データのレポート」ツールウィンドウがありますが、データソースを追加するオプションはありません(データセットを作成したい場合を除きますが、作成しません)。データセットアプローチを使用すると、EFから生成されたオブジェクトに基づいてレポートをレイアウトできません。

エンティティ参照(オブジェクトデータソース)をレポートに追加して、モデルオブジェクトを認識できるようにするにはどうすればよいですか?

4

1 に答える 1

6

誰かが興味を持っている場合は、Rendering an RDLC directly to the Response stream in ASP.NET MVCの記事で、Raj Kaimal の助けを借りて修正を見つけることができました。

Raj のソリューションには、ラッパー オブジェクト (リポジトリ パターン) の作成が含まれていました。その後、EF オブジェクトを使用してレポートできますが、IEnumerables を返す (オプションで静的な) メンバーを持つクラスを使用する必要があります。デザイナーが型を認識できるようにソリューションを構築し、リポジトリの結果をデータ ソース (およびデータ セット) としてレポートに追加します。

于 2010-01-29T19:08:55.423 に答える