web-dev-qa-db-ja.com

オブジェクトデータソースを使用したVisualStudio 2010ローカルSSRSレポート(.rdlc)

ReportViewer 2005および2008をローカル処理モードで使用して、手に負えないほど多くのプロジェクトを作成しました。すべてのVisualStudio2005または2008ASP.NETWebフォームプロジェクト。レポートには常にオブジェクトデータソースのフレーバーを使用していました。

今夜、同じ機能をVisual Studio 2010 MVC 2プロジェクトに追加しようとしましたが、惨めに失敗しました。まず、[新しいアイテムの追加]> [レポート]> [レポート]は、2005年のRDLCレポートではなく、2008年のRDLCになりました。次に、DataSetを追加しようとすると、IEnumerables(Of Stuff)を返す静的メソッドを使用してデータプロキシクラスを作成する通常のメソッドが、[データソース]ドロップダウンのソースとして表示されません。

Empty Data Source

第三に、私のonlyオプションは、データベース接続を追加することです。選択できる「オブジェクトデータソース」はありません。

Database connections only

私は困惑しています。私がほのめかしたように、ReportViewerコントロールを使用して実際にレポートをレンダリングすることには何の問題もありません。私ができないことは、ドメインオブジェクトのリストをReportViewerに送り込んでレポートを表示できるように、Visual Studio2010を使用してこれらの新しい2008年レポートでデータソースを設定する方法を理解することです。

[〜#〜]更新[〜#〜]

さらに調査を重ねた結果、MVCプロジェクトではオブジェクトデータソースをプロジェクト内で使用できないことがわかりました。私の問題の1つの解決策は、ソリューション内に別のプロジェクトを作成することです。Webアプリケーション、サービス、またはクラスライブラリだけで、レポートを追加してそれに応じて設計します。

私はまだここで代替案を探しています。

20
Cᴏʀʏ

ここにいくつかの解決策があります。 2つ目は、アセンブリを不必要に複製する必要がないため、はるかに優れています。

解決策1 (はい)

質問自体に追加され、投稿 Visual Studio 2010レポートビューアー-オブジェクトデータソース で説明されているように、プロジェクト用に別のライブラリを作成し、そこにrdlcファイルを追加するだけです。これはMVCWebアプリケーションプロジェクトタイプ自体のバグのようであるため、他のプロジェクトタイプ(クラスライブラリなど)は機能するはずです。データソース構成ウィザードは次のようになります。

data source configuration wizard

解決策2 (より良い)

ASP.NET MVCのRDLCレポートでWebサイトのデータソースを表示または追加できない で理解されているように、。aspxページをどこにでも追加できますVisual Studioをだまして適切なデザインタイムライブラリを取り込むために、MVCプロジェクトに追加します。

次の手順を実行してください。

  • すべてのウィンドウを閉じる
  • クリーン&リビルドソリューション
  • WebForm1.aspxをプロジェクトに追加します
  • RDLCファイルを開き、ドロップダウンからデータソースを選択します。

    DataSource Dropdown

7
KyleMit

簡単な答え:はい、RDLC 2008でオブジェクトデータソースを使用できます(直感的ではありません)。方法は次のとおりです。

RDLCページを開きます([デザイン]ビューで)。しばらくすると、VisualStudioの上部に[データ]タブが表示されます。 「新しいデータソースの追加」を選択し、「オブジェクト」を選択して、「次へ」を選択します。そこから、バインドできるオブジェクトのリストを確認できます。プロジェクトからDTO /ビジネスオブジェクト/その他を選択し、[完了]をクリックします。 Visual Studioの左側にある[レポートデータ]サイドバータブに、追加されたオブジェクトが表示されます。生成したデータソース名をコピーします(「MyProject_MyObject」のようになります)。

これで、コントローラーで、そのDTO/BusinessObjectのIEnumerableをプルし、次のようにデータパラメーターとデータソース名として渡すことができます(申し訳ありませんが、VB構文):

ReportDataSource reportDataSource =
            new ReportDataSource("MyProject_MyObject", myIEnumerable);
5
Robert Corvus

同じ問題が発生しましたが、レポートとエンティティクラスをWebAplicationとは別のプロジェクトに移動しました。移動すると、ウィザードにデータベース接続以外のオプションが表示されるため、オブジェクトデータソースをC#ライブラリに追加します。次に、 この投稿 を使用してレポート定義を取得し、.aspxに埋め込みます。このヘルプを期待してください!!

1
Chuck o Crips

データソースのドロップダウンにソースが表示されない

私は数日前に同じ問題を抱えていました。 VS10用のSP1をインストールすることで解決しました。 http://www.Microsoft.com/download/en/details.aspx?id=23691

0
radbyx

同じ問題が発生し、 this の指示(Zilong Luの回答)に従いました。レポートのハンドラーが表示され、グローバルデータソースのオプションが表示されなくなったら、接続ウィザードだけでした。プロジェクトを右クリックして、ビルドをクリックしました。この後、グローバルデータソースを再度追加しようとしましたが、接続ウィザードが表示されませんでしたが、グローバルデータソースオプションは表示されました。

0
Uriel Carrillo

私が見ているものが表示されているかどうかはわかりませんが、プライベートコンストラクターを持つクラス(同じクラスのリストを返すパブリック静的メソッドがある場合でも)がリストに表示されないように見えます。

Visual Studioレポートの新しいデータセットに表示するオブジェクトデータソースの基準?

0
Cade Roux