亜音速オブジェクトコレクションをMicrosoftレポート(rdlc)にバインド
質問
SubSonicで生成されたコレクションを「ビジネスオブジェクトデータソース」として使用できる人はいますか? Microsoftレポート(rdlc)とは? SubSonicクラスコードを生成しましたが、何らかの理由で、レポートデータソースウィンドウにクラスが潜在的なオブジェクトコレクションデータソースとして表示されません。
これを機能させるために必要なことはありますか?
事前に感謝します... vsdotnetguy
解決 3
Thxクリスとアダム、
ここに私が見つけた答えがあります。
私の場合、SubSonicオブジェクトコレクションを使用して、実行時にメインおよびサブレポートデータソースを動的に設定したかったのです。ただし、データソース列のドラッグアンドドロップを使用してレポートレイアウトを設計したかったのです。
しかし、SubSonicコレクションがウェブサイトデータソースに表示されないため、ドラッグアンドドロップを使用してレポートを設計できませんでした。
ただし、後でObjectDataSourceコントロールを使用してコントロールバインディングを行っているときに、SubSonicコレクションがWebサイトDataSourcesウィンドウに表示され、レポートレイアウトをドラッグアンドドロップできることに気付きました。
したがって、実行時にレポートデータソースを動的に設定し、既にプロジェクトにあるObjectDataSourceコントロールを使用していない場合は、aspxページの1つにダミーのObjectDataSourceコントロールを追加する必要があります。これにより、ビジネスオブジェクトのデータソースがレポートデザイナーに表示されます。
他のヒント
以前にビジネスオブジェクトからReporting Serviceレポートをロードしました(NHibernateを介してロードされました-これは正確ではありませんが、引数としては十分に近いです)。
キーポイントのカップル: 1. 1つのオブジェクトのみを返す場合でも、Listでオブジェクトを返します。 2. FLATビジネスオブジェクトが必要です。そのためには、DTO変換を実行する必要があります。フラットとは、ビジネスオブジェクトで使用できる最も複雑なプロパティが文字列と数値(int、decimal、double)であることを意味します。次のような値を取得する予定の場合: myObject.Customer.Name、忘れてください。 CustomerNameプロパティを作成します。 3.複数の場所からのデータが必要な場合は、レポートをサブレポートに分割してください。データソースキーからキーオフして、レポートに返すデータを決定します。
覚えているように、これを追加します。これを行ってから数か月が経ちました。
はい、完了しました。レポートを含むプロジェクトがSubSonicプロジェクトを参照していることを確認するだけです(明らかに:)。
Visual Studioが少し中断され、SubSonicで生成されたオブジェクトをデータソースウィンドウに再入力する前に再起動が必要になる場合もあることがわかりました。