我想在SSRS報表中顯示持續時間 我的DB字段是SQL中的時間。它在SSRS中轉換Timespan。如何在SSRS報告中以給定的字符串格式顯示時間值?
格式爲:1:00 PM - 3:50 PM
我怎麼能這樣做呢?
Fields!StartTime.Value.ToString() + " PM - " +
Fields!EndTime.Value.ToString() + " PM" is not working..
我想在SSRS報表中顯示持續時間 我的DB字段是SQL中的時間。它在SSRS中轉換Timespan。如何在SSRS報告中以給定的字符串格式顯示時間值?
格式爲:1:00 PM - 3:50 PM
我怎麼能這樣做呢?
Fields!StartTime.Value.ToString() + " PM - " +
Fields!EndTime.Value.ToString() + " PM" is not working..
以下是在SSRS中通過Custom code
幫助實現此目的的一種可能方法。下面的例子沒有涉及創建SSRS報告的細節,但應該瞭解如何在SSRS內實現時間格式。
步一步的過程:
創建一個使用下SQL腳本提供的腳本命名dbo.Timespans
表。如屏幕截圖#所示填充一些數據。
創建一個SSRS報告並使用表dbo.Timespans
作爲數據源。請參閱屏幕截圖#。
點擊Report
菜單並選擇Report Properties
。選擇左側部分的Code
選項卡。
將自定義代碼文本框中的SSRS自定義代碼部分下的代碼粘貼。點擊確定。此代碼採用timeSpan
值和format
字符串。然後它將格式化時間數據並作爲字符串返回。請參閱屏幕截圖#。在時間欄
右擊並選擇Expression...
在Set expression for: Value
文本粘貼表達=Code.FormatTimeSpan(Fields!StartTime.Value, "hh:mm tt") + " - " + Code.FormatTimeSpan(Fields!EndTime.Value, "hh:mm tt")
。請參閱屏幕截圖#和#。
截屏#顯示執行報告。
希望有所幫助。
SQL腳本:
CREATE TABLE [dbo].[Timespans](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StartTime] [time](7) NULL,
[EndTime] [time](7) NULL,
CONSTRAINT [PK_Timespans] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
SSRS自定義代碼:
public function FormatTimeSpan(timeSpanValue as TimeSpan, format as string) as string
Dim dateValue as DateTime
dateValue = new DateTime(timeSpanValue.Ticks)
return dateValue.ToString(format)
end function
截圖#1:
截圖#2:
截圖#3:
截圖#4:
截圖#5:
截圖#6:
+1非常完整的答案。 – gbn 2011-06-12 07:45:13
謝謝你這麼多西瓦:) – Touseef 2011-06-13 05:40:17
@siva +1這是非常非常好的非常感謝你 – 2012-06-06 15:53:03