2012-06-04 4 views
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)", "")) 
) 

К сожалению, клиент вернулся, заявив, что они хотят, чтобы я показывал миллисекунды, которые был выполнен в отчете, когда он составляет менее одной секунды. Это требование с низким приоритетом, но любопытство и желание удовлетворить это требование оставили меня в недоумении, как это делается? К сожалению, System.DateTime.Now не хранит ничего ниже секунд.

Fixed следующее (благодаря ответу Энтони 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)", "")) 
) 

ответ

5

Полученный TimeSpan объект из метода .Subtract() должен иметь .Milliseconds свойство, которое можно распечатать.

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

Я не уверен, почему DateTime.Now не запишут мс? Если этого не произойдет, то это будет не очень полезно. Я, к сожалению, не могу показать свой экземпляр SSRS, чтобы проверить это сам ...

+0

Я уверен, что я пробовал это в своих попытках в той или иной форме ... Я скоро ухожу на обед, но Я возьму трещину в этом, я вернусь. – Codingo

+1

Ну, это неловко! Должно быть, я ошибся в первый раз. Оценил! – Codingo

Смежные вопросы