2013-10-31 69 views
0

我想在報告上打印開始,結束和已用時間,但似乎沒有任何效果。在報告上輸出已用時間

="Elapsed: " + CStr(Now - CDate(Globals!ExecutionTime)) 

拋出而

=Now - CDate(Globals!ExecutionTime) 

印刷品經過時間的誤差。我需要把縮短的時間寫入一個更大的句子。 FormatDateTime引發錯誤System.TimeSpan不能轉換爲Date。

打印報告花費多長時間的字符串的正確公式是什麼?

我知道,一個解決辦法是讓經過的時間在自己的文本框,但要求的格式要求所有三次的一個連接字符串。

回答

2

這可能給你一些想法:

="Start: " & Globals!ExecutionTime.ToString() & vbcrlf 
    & "End: " & Now().ToString() & vbcrlf 
    & "Elapsed: " & DateDiff(DateInterval.Minute 
      , Globals!ExecutionTime 
      , Now()) mod 60 
     & ":" 
     & Right("0" & DateDiff(DateInterval.Second 
       , Globals!ExecutionTime 
       , Now()) mod 60 
      , 2) 

這給出了結果:

enter image description here

,它看起來像你可能是什麼之後。

我只是用vbcrlf作爲換行符。

最重要的部分是Elapsed部分,它使用DateDiff得到兩個日期時間之間的差來獲得分和第二部分,並顯示此作爲mm:ss。你可以適應你的具體需求。

+0

DateDiff解決方案唯一的問題是,我需要經過的時間毫秒精度,並沒有相應的DateInterval。將'Now - CDate(Globals!ExecutionTime)'轉換爲字符串只適合目標,但我認爲離岸承包商並不在意。 – ajeh