2

私はこのコードブロックを持っています:

ErrorLogging.WriteLog(string.Format("Username = {0}, userkey = {1}, userID = {2}", CurrentUser.Username, CurrentUser.UserKey, CurrentUser.Username + CurrentUser.UserKey.ToString()));
ssrsRV.ProcessingMode = ProcessingMode.Remote;
ssrsRV.ServerReport.ReportServerUrl = new Uri(SystemConfig.SSRSServerURI);
ssrsRV.ServerReport.ReportPath = report.REPORT ?? string.Empty;
ssrsRV.ServerReport.SetParameters(new ReportParameter("UserID", CurrentUser.Username + CurrentUser.UserKey.ToString()));

最初の行は、これらの変数に有効な情報があることを証明しています。userIDは、「jsmith162e4aa1-d8d3-427b-bd3d-71b7f0307856」のようになります。

ssrsRVはMicrosoft.Reporting.WebForms.ReportViewerオブジェクトです。

このコードを実行しようとすると、次のエラーメッセージが表示されます。

アイテム'/MyFolder/MyExampleReport.rdl~!@~!@'のパスが無効です。フルパスの長さは260文字未満である必要があります。その他の制限が適用されます。レポートサーバーがネイティブモードの場合、パスはスラッシュで始まる必要があります。(rsInvalidItemPath)

メソッドによって例外がスローされるSetParametersので、それが問題であると確信していますが、パラメーターをまったく渡さないことはテストしていません。

私が間違っていることの手がかりはありますか?次に何を試すべきですか?

4

2 に答える 2

1

私はダムです。

コードは完璧で、アプリケーションはデータベースのレポート パスに "~!@~!@" を追加していましたが、ユーザーには表示されませんでした。これらの文字をデータベースのレポート パスから削除する SQL ステートメントを作成すると、完全に機能します。

ありがとう、

于 2013-02-19T15:04:59.123 に答える
0

最初にレポート パラメータを宣言する必要があります。

ReportParameter[] RptParameters = new ReportParameter[1];

次に、パラメーターを割り当てます。

RptParameters[0] = new ReportParameter("UserID", CurrentUser.Username + CurrentUser.UserKey.ToString());

次にパラメータを設定します。

ssrsRV.ServerReport.SetParameters(RptParameters);

これがどうなるか見てください。

于 2013-02-19T10:25:48.967 に答える