0

レポート サービスと aspx (C#) でレポート ビューアー コントロールを使用するのは初めてです。現在、地域に基づいてレポートを作成する必要があるプロジェクトに取り組んでいます。SQL Express 2008 R2 を使用しています。

次のクエリを使用してデータセットが入力されるレポートに地域パラメーターを作成しました。

ここに画像の説明を入力

SELECT RegionGUID, RegionDescription
FROM   utRegion

これにより、使用可能な値を含む DropDownList が作成されます。これをメイン レポート データセットで使用して、選択した地域に基づいて結果を取得します。

ここに画像の説明を入力

私が抱えている問題は、アプリケーションのユーザーが地域に割り当てられており、アプリケーションにログインしているユーザーに応じて、レポート サービスを介して利用できる地域を制限する必要があることです。レポート ビューアーを介してアプリケーションから Reporting Services のレポートにパラメーターを渡すことができますが、リージョンの DropDownList にデータを入力するために使用されるデータセットにパラメーターを追加しようとすると、展開時に次のエラーが発生します。

レポート '/レポート名' の定義が無効です

プレビュー時に次のエラーが表示されます。

レポート パラメーター 'RegionGUID' には、レポート パラメーター "RegionGUID" に依存する DefaultValue または ValidValue があります。前方依存は無効です。

region パラメーターを使用した私のクエリ:

SELECT RegionGUID, RegionDescription
FROM   utRegion
WHERE  (RegionGUID = @RegionGUID)
4

2 に答える 2

2

次のサイトで問題の解決策を見つけました: http://www.sqlservercentral.com/Forums/Topic306513-150-1.aspx

上記のリンクで Jason Selburg が述べているように、パラメーター リストの順序が重要なようです。

アプリケーションを機能させるために、次のことを行いました。

  1. 既存の RegionGUID パラメータを削除しました
  2. 使用可能な値が指定されておらず、可視性が非表示の UserAssignedRegion という新しいパラメーターを追加しました
  3. RegionGUID パラメータ (visibility: visible) を再度追加し、次のクエリを使用するように設定します。

クエリ:

 SELECT RegionGUID, RegionDescription
 FROM utRegions
 WHERE RegionGUID = @UserAssignedRegion
于 2012-11-20T11:51:57.737 に答える
0

パラメータのプロパティ@RegionGUID、特に DefaultValue または ValidValue タブを調べる必要があります。いずれかまたは両方が、クエリでパラメーター自体を使用するデータセットに依存する場合があります。パラメーター自体を使用している間は、パラメーターの既定値または有効な値を照会することはできません。

使用可能な値の典型的なクエリは次のようになります。

SELECT DISTINCT  RegionGUID -- For value
                ,RegionDescription -- For label
FROM utRegion
-- No where clause, you can't or need to use the parameter itself

デフォルト値のクエリは、同じ (おそらく First(...) 値のみを使用)、NULL、または別のデータセットに基づく (パラメーター自体も使用しない) 場合があります。

于 2012-11-20T11:20:15.910 に答える