2009-03-26 14 views
1

マルチ選択整数パラメータを持つSQL Reporting Servicesレポート(SQL2008はReport Builder v2.0を使用して構築されています)を持っています(この場合はストアのリスト)。SSRS:ASP.NETレポートビューアのパラメータをデフォルトにリセット

デフォルト値は0( "すべての店舗")です。パラメータは、varchar(1024)としてストアドプロシージャに渡されます。

これは、すべてReport BuilderまたはReporting ServicesのWebサイトで正常に動作します。

ただし、ReportViewerコンポーネントを使用するASP.NET Webサイトからは、「レポートの表示」を選択するたびにパラメータがデフォルトにリセットされます。

ビューを非同期ローディング(レンダリングコンテナを変更する)に加えて、私が見つけたその他の設定を成功させることなく設定しようとしました。誰でもこれを修正するためのトリックを知っていますか?

答えて

2

私は間違いました。 ReportViewerコントロールはマスターページ内にありました。 「レポートの表示」ボタンをクリックするたびに、ポストバックが行われ、セッションがリセットされます。

レポート設定方法の前にif (!IsPostBack)を追加しました。オリジナルポスターで表示されていない理由のために、このエラーが発生する人のために

1

...

ここでは、同様のシナリオです。

複数選択レポートパラメータを使用するレポートがあります。 このパラメータは、値をいくつかのテーブルクエリの元にするデータソースによって設定されます。

このレポートパラメータで[すべて選択]オプションを使用し、[レポートの表示]ボタンを押すと、パラメータは空白にリセットされ、レポートは生成されません。

この問題は、クエリの実行中に何かがデータセットを無効にするために発生すると思われますが、100%確実であるとは限りません。

私が知る限り、データセットのクエリソースとしてテーブル変数を使用すると、この問題は解決します。

は、例えば、あなたのCityDataSourceは、クエリによって移入することができます

SELECT DISTINCT city, city as SortOrder from accounts 
UNION 
SELECT 'All' as city, '0' as SortOrder 
ORDER BY SortOrder 

あなたはSQL Reporting Servicesのレポートを作ってきた場合は、あなたは一度か二度、このソリューションにつまずいている可能性があります。

DECLARE @citytable TABLE (city varchar(255), sortorder varchar(255)) 
INSERT INTO @citytable (city, sortorder) VALUES 
(
SELECT DISTINCT city, city as SortOrder from accounts 
) 
SELECT city, sortorder FROM @citytable ORDER BY sortorder 

そして、あなたのレポートのパラメータはもうリセットされないことを実行して:

は今、私たちは次のように見えるようにCityDataSourceクエリを変更します。

ストアドプロシージャも動作しますが、私は疑いがあります。

1

オリジナルのポスターと同様のコードエラーが見つかりました。私は、ページがロードされるたびに、初期化されたばかりでなく、レポートサーバーの資格情報を(再)設定していました。明らかに、レポート資格情報を設定すると、すべてのパラメータがリセットされます。

関連する問題