4

レポートのベースに基づいてレポートの実行時間を表示したいクライアントがいます。それらに対応するために、次の式で「GroupExecutionTime」と呼ばれる変数をレポート (レポート プロパティの下) に作成しました。

=System.DateTime.Now

次に、レポートのフッターに次のものがあります。

="Execution Time: " +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).TotalSeconds < 1, "0 seconds", 
(
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Hours > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Hours & " hour(s), ", "") +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Minutes > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Minutes & " minute(s), ", "") +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Seconds > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Seconds & " second(s)", ""))
)

残念ながら、クライアントは、レポートが実行されたミリ秒が 1 秒未満の場合に表示してほしいと言って戻ってきました。これは優先度の低い要件ですが、好奇心と要件を満たすことを望んでいるため、これがどのように行われるのか疑問に思っています。残念ながらSystem.DateTime.Now、秒未満のものは保存されていないようです。

次のように修正しました(Anthony Sottileの回答に感謝します)

="Execution Time: " +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).TotalSeconds < 1, "0." & Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Milliseconds & " seconds.", 
(
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Hours > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Hours & " hour(s), ", "") +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Minutes > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Minutes & " minute(s), ", "") +
IIf(Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Seconds > 0, Variables!GroupExecutionTime.Value.Subtract(Globals!ExecutionTime).Seconds & " second(s)", ""))
)
4

1 に答える 1

5

メソッドから得られたTimeSpanオブジェクトには、出力できるプロパティが必要です。.Subtract().Milliseconds

http://msdn.microsoft.com/en-US/library/system.timespan.milliseconds%28v=vs.90%29

DateTime.Now が ms を記録しない理由がわかりません。そうでない場合、これはあまり役に立ちません。残念ながら、これを自分でテストするためにSSRSのインスタンスをスピンアップできないようです...

于 2012-06-04T03:21:08.337 に答える