2016-11-29 8 views
0

SSRSレポートを表示するためにレポートサーバーに接続する角型アプリケーションがあります。アプリケーションは、データベースに格納されているファイルパスを使用してレポートを識別します。私はこの報告書は、別のデータベースに接続できることを第二のデータソースを追加する必要がランタイムにAngularJSを使用してSSRSレポートにデータベース名を渡す

http://<serverName>/Reports/Pages/Report.aspx?ItemPath=%2fReportFolder%2fPatientReport

:これは、ファイル・パスの一例です。現在、このレポートは1つのデータベースにハードコードされています。しかし、私は第2のデータソースを作成し、別のデータベースに動的にリンクできることを読んだ。

このファイルパスにデータベースの名前を渡してから、このデータベース名を使用して正しいデータソースを選択できますか?

更新 データベース名をパラメータ化する手順が見つかりました。私はすべてのデータベースが格納され、データベース名を含む1つのテーブルを持つデータベースをサーバ上に作成します。私はこれらの名前を取得するためのデータソースを作成し、ユーザーからの入力となる 'DatabaseName'のパラメータを作成しました(うまくいけば、この名前をファイルパス文字列にパラメータとして追加して、ユーザーが) レポートには、データベースのリストと、データベース名を追加するために接続文字列でこの式を使用する動的データソースを返すデータソースがあります。

ただし、私はこれを接続する必要がありますデータソースをデータセットに追加します。私はそれを実行し、 ="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value

私は、データセットと、この動的なデータソースを使用して試してみて、私はエラーのためにデータセットを保存することはできません。 [1 [[ここに画像の説明を入力] [1]!] ]

これはクエリにDatabaseパラメータを追加する必要があるためですか? もしそうなら、それを回避する方法はありますか?同様に追加することができます: クエリの先頭に@DatabaseNameを使用しますか?

更新 オプションのデータベースで表示するための基本的なレポートがあります。 これで、レポート文字列にパラメータとしてデータベース名を送信するだけで済みます。

答えて

0

これを理解しました。これが他の人を助けることができる場合に備えて。 レポートでは、DatabaseNameというパラメータを作成しました。 また、埋め込みデータソースも追加しました。最初は動的ではなくハードコードされています。 データセットもレポートに埋め込み、新しく作成したデータソースにリンクする必要があります。 クエリを実行し、成功した場合。レポートを保存してください! (レポートを保存するためにクエリを正常に実行する必要がありました。動的データソースを使用してクエリを正常に実行できませんでした)

レポートが保存されたら、データソースを動的。それを開き、次のような式を作成します。

="Data Source=<server Name>;Initial Catalog=" & Parameters!DatabaseName.Value 

ここで、レポートを保存して閉じます。データソースがないため、サーバーからこれを実行することはできません。

私は、パラメータとしてデータベース名とURLを使って自分のアプリケーションから、それを実行しました:

http://serverName/ReportServer?%2fInitialFolderName%2fReportFolderName%2fReportName&rs:Command=Render&DatabaseName=Wrh1

上記の例では、パラメータを、データベース名は、フォルダパスがInitialFolderName/ReportFolderName/REPORTNAME

あるWrh1 に設定されています
関連する問題