1

ASP.Net WebForms ReportViewer コントロールを使用して SSRS レポートをホストするように既存のアプリを拡張しています。既存のレポートは多数あります。各レポートに別のパラメーターを渡す必要があることを除けば、それは問題ではありません。

私たちのチームの誰かが、別のパラメーターを追加できるかもしれないと提案し、SSRS はそれを各レポートに関連付けられたストアド プロシージャに渡します。報告サービスについて何も知らなかったので調べてみました。

私は次のことを試しました:

private void AddNewParameter(Report report)
{
    var reportParameters = new List<ReportParameter> { new ReportParameter(paramName, "foo", false) };
    report.SetParameters(reportParameters);
}

Report.SetParameters() の呼び出しは、レポートに存在しない新しいパラメーターについて不平を言います。SetParameters()のMSDNページには、下部に次のようなメモがあります。

「SetParameters メソッドに指定されたパラメーターは、元のレポート定義で定義する必要があります。」

新しいパラメーターを取得するには、すべてのレポートを変更する必要があるという私の沈んだ気持ちを確認できる人はいますか?

4

1 に答える 1

0

あなたが試みているアプローチは行き止まりになるでしょう。ごめん。沈み込み感は確認済み。でも...

大量のレポートがある場合は、基になるReport Definition Languageを変更することで、それらすべてを更新する自動化されたアプローチを考え出すことができます。投稿したばかりのリンクをクリックすると、各バージョンの実際のスキーマ定義などへのリンクが記載された TechNet 記事に移動します。

TechNet の記事を直接引用すると、RDL は実際には単なる XML です。

RDL は、Reporting Services 用に作成された XML 文法に一致する XML 要素で構成されています。レポート定義ファイル内のコード アセンブリにアクセスすることにより、レポート アイテムの値、スタイル、および書式設定を制御するための独自のカスタム関数を追加できます。

このタイプのソリューションを開発する作業と手動のアプローチを比較検討できるのは、あなただけです。

必要な変更を把握するには:

  1. 1 つのレポートのコピーを保存します。
  2. レポートを変更して修正する
  3. 変更された rdl を元のものと比較します (BeyondCompare、notepad++ など)

XML の解析に慣れている場合は、残りのレポートで変更を再現することは完全に可能です。

于 2013-10-22T22:04:36.213 に答える