私はすでにこれを自分で調べていますが、私とコミュニティにチェックすべき事柄に関する有用な提案、または質問への回答に役立つSSRSの関連部分の動作方法に関するポインタを提供するためのポイントが必要な場合は、読み続けてください.....
- SQL Server 2008 R2 Report Server 経由で SSRS を使用しています
- VS2008 でレポート (元は別の開発者によって作成されたもの) をプレビューすると、レポートのドロップダウンの 1 つに正しいデータが表示されます。
- http:// localhost /ReportServer_SQL2008 にある自分のマシンのレポート ビューアーを介してレポートを実行すると、次のように表示されます。ドロップダウンに最近追加されたアイテムの代わりに、誤った UID が表示されていることに注意してください (例: 「GRIT CARDIO」)。
VS2008 でレポートを再構築し、レポート マネージャー (http:// local-machine-name /Reports_SQL2008/)を使用してレポート サーバーに .rdl ファイルを手動で再アップロードしましたが、それでもIE レポート ビューアーを使用すると、異なるデータが表示されます。
クエリ アナライザーを使用して、プログラムのドロップダウンにデータを入力するために使用されるデータがどこから来ているかを調べました。同じストアド プロシージャ コール
SQL から取得される「生」データは、レポートの関連するデータ フィールドで使用される前に何らかの処理が行われます。カスタム .NET アセンブリを使用して処理され、レポート ユーザーのロケールに基づいて「わかりやすい」文字列が取得されます。これは、カスタム アセンブリの VS2012 プロジェクトに保持されている .resx ファイルを使用して、データを転置します。.resx のエントリはすべて正しいようです。
このロケール変換を行うカスタム アセンブリのデバッグ バージョンを手動で C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies (カスタム アセンブリの既定の場所) に展開しました。
VS2008 をデバッグ プロセスに接続し、VS2008 でレポート プレビューを実行して、VS2012 でこのアセンブリに対してデバッグすると、正しいプログラム名 (例: 'GRIT CARDIO') が返されます。
問題は、「IE レポート ビューアーでレポートを実行したときに、なぜこれが返されないのか」ということです。
問題を明確にするために、「ProgramUid」パラメーターに「使用可能な値」を構成する方法を次に示します。パラメーターが「ProgramUid」である理由がわかりませんが、レポートではドロップダウンが「Program」として表示されます。
パラメータで使用される「Programs」データセットは次のとおりです。