0

テーブル内にサブレポートを含む (rdlc) レポートがあります。生成されたサブレポートのインスタンスごとに、LocalReport.SubreportProcessingイベントが発生します。これはドキュメントと一致しています

ただし、これらの各イベントでは、最初に割り当てられた DataTable のみがレポート内で使用されているようです。ReportFactory.ReturnNextDataTable行ごとに適切な DataTable が返されていることを確認でき ますが、DataTable の最初のインスタンスが複数回繰り返されているようです。

呼び出しごとに ( を使用してe.DataSources.Clear()) レポートの DataSources をクリアしようとしましたが、違いはありません。

これが私のコードです:

void AddData(object sender, SubreportProcessingEventArgs e)
        {  
            DataTable merged = ReportFactory.ReturnNextDataTable;
            e.DataSources.Add(new ReportDataSource("RATES", merged)); //Subsequent DataTables ignored      
        }

私はこれについて根本的に間違った方向に進んでいると感じずにはいられません。何か案は?

4

2 に答える 2

1

私は解決策を見つけました: http://social.msdn.microsoft.com/Forums/es-PY/sqlreportingservices/thread/04f72cea-caea-48c5-82e9-f6b2b962717d

私の場合、Report Viewer 9.0 (2008) から Report Viewer 11.0 (2012) への移行後に問題が発生します。

于 2013-03-05T13:12:38.570 に答える
1

Stephane CLARISSE の回答に続いて、ソースからの抜粋を次に示します。

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

これは SSRS のバグのようです。回避策は、メイン レポートから渡される任意のデータ型でダミー パラメータを作成することです。これが私の問題をどのように解決したかです

サブレポートにダミー パラメータを追加しました ダミー パラメータ

メイン レポートでは、ダミー パラメータのデータ型と一致するダミー パラメータの任意のフィールドを渡しました。私の場合、整数(eventID)です

メイン レポート プロパティ

于 2016-12-29T05:43:29.973 に答える