2010-12-01 15 views
1

私のアプリケーションでは、テーブルセル内に1つのサブレポートを含むレポートがあります。 SubreportProcessingイベントハンドラ内では、サブレポートのインスタンスごとに異なるデータセットを提供します。 VS 2008ではこれはうまくいった。しかし、VS2010に切り替えてレポートファイル形式をアップグレードすると、動作が変更されました。マスターテーブル内のすべてのサブレポートインスタンスに、最初のテーブル行に入力したデータが含まれるようになりました。私のコードは次のようになりますSSRSテーブル/タブリックスセル内のサブレポートの使用

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) 
{ 
    // _index is a global variable that is reset to zero in the DataBind procedure. 
    Trip currentTrip = _trips[_index]; 

    e.DataSources.Add(new ReportDataSource("DataSourceName", currentTrip.Items)); 

    _index++; 
} 

これは意図した動作ですか?どのようにして、テーブル内の同じサブレポートの複数のインスタンスに対して異なるデータセットを提供することができますか?

ありがとうございます。

ウラジスラフ

+0

SubreportProcessingイベントに接続するコードを共有してもよろしいですか?レポートを作成した直後か、それとも後の段階でそれを行いますか? – Marcel

+1

私は、InitializeComponent()関数の呼び出しに続いて、Formのコンストラクタ内で手動で行います。 – Exulted

答えて

2

は、いくつかのチャンスをうかがって、私のコードをいじりの後、私は回避策を見つけました。解決策は、サブレポートにダミーパラメータを作成し、tablixデータセットのフィールドにバインドする必要があります。サブレポートパラメータとtablixデータセットフィールドの両方が型互換性がある限り、どのフィールドも機能します。サブレポートのパラメータで何もする必要はありませんが、SSRSでは、同じサブレポートの複数のインスタンスを表示します。これは、Tablixの各行に対して個別のインスタンスを表示します。

これは他の人にとっても役立ちます。

Vladislav

関連する問題