0

システム - レポート ビルダー 3.0 を使用した SSRS 2008R2 (答えがそこにあると思われる場合は入札)

目的 - 各販売地域の過去 24 時間の販売データを表示するレポートを作成します。レポートは 10 分ごとに更新する必要があり、常に最新の更新から過去 24 時間を表示します。ただし、ユーザーは時間枠を変更できる必要があります。

私は何をしましたか?

  1. StartTime、EndTime、RegionCode の 3 つのパラメーターに応じて、単一地域の売上データを表示するレポートを作成しました。それをRegionalSalesと呼びましょう
  2. RegionalSales の複数のサブレポートを含むマスター レポートを作成しました。マスター レポートには、StartTime (既定値 dateadd("h",-24,Now())) と EndTime (既定値 Now()) の 2 つのパラメーターがあります。StartTime と EndTime をサブレポートに送信しており、すべてのサブレポートに独自のリージョンが割り当てられています。
  3. マスター レポートの自動更新プロパティを 600 に設定しました。

結果 - 最初はすべてが完璧に見えます - マスター レポートが読み込まれ、表示されるデータは読み込み時間 (22:08 としましょう) に対して正しいです。ただし、自動更新 (22:18 に発生) の後でも、データは 22:08 の時点で正しいままです。

問題は、レポートの最初のロード時に、前述のようにパラメーターがデフォルト値を取得することです(StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08)。ただし、パラメーターを更新する代わりに自動更新する(So I'll get StartTime = 10/12/2011 22:18 & EndTime = 11/12/2011 22:18)と、古い値が引き続き取得されます(StartTime = 10/12/2011 22:08 & EndTime = 11/12/2011 22:08)

理由について何か考えがありますか?どうすればこれを変更できますか?

ありがとう!

4

1 に答える 1

1

私が正しく理解していれば...

残念ながら、レポート パラメーターは、ユーザーが [レポートの表示] ボタンを手動でクリックしない限り、最初の読み込み時にのみ値を取得します。

これを回避するには、日付パラメーターを変換してデフォルト値を使用しないようにしますが、クエリから値を取得し、RDBMS の GETDATE() と同等のものを使用します。私が間違っていなければ、レポートに別の DataSet を追加する必要があります...しかし、それに対するクエリは単純に SELECT GETDATE() [または RDBMS の同等のもの] になるため、実際にはデータセットにはなりません。そのために必要な変換。

于 2012-01-10T20:38:29.897 に答える