1

Micrososft SQL Reporting Services でレポートを作成しており、startDate と endDate の 2 つの日付フィールドがあります。

少なくとも 30 日 (または 1 か月) で、日付範囲を制限する必要があります。たとえば、startDate が 2012/01/01 で endDate が 2012/02/02 の場合、エラー メッセージが表示されます。そうでない場合 (差が 30 日未満)、続行できます。レポートサービスでそれを行うにはどうすればよいですか?

4

2 に答える 2

2

データ セットを使用して、startDate パラメーターに基づいて endDate パラメーターの既定値を指定できます。

DefaultStartDate という名前のデータセットを追加します。クエリ テキストを次のように設定します。

select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) as [startDate];

startDate という名前のパラメーターを追加します。タイプを日付/時刻に設定し、DefaultStartDate クエリからデフォルト値を取得します。

デフォルト値 / データセット=DefaultStartDate / 値=startDate

ValidEndDates という名前のデータセットを追加します。クエリ テキストを次のように設定して、開始日に基づいて有効な終了日のリストを生成します。

with A as
( select 1 as i UNION ALL select i+1 from A where i<30 )
select DATEADD(dd, i, @startDate) as [endDate] from A;

endDate という名前のパラメーターを追加します。タイプを日付/時刻に設定し、ValidEndDates データセットから使用可能な値を取得します。

利用可能な値 / DataSet=ValidEndDates / Value=endDate / Label=endDate

于 2012-07-02T21:50:14.573 に答える