以 RS 呈現不同時段不同群組的狀態

朋友的需求,其執行結果如下:

image

寫好的 Sample Code 下載:https://skydrive.live.com/?cid=bf14192bd27975cb&sc=documents#cid=BF14192BD27975CB&id=BF14192BD27975CB%212277&sc=documents 內的 RangeBarChart.zip

其設計畫面:

image

SQL 內的 Sample Code

USE tempdb
CREATE TABLE tbl(BD CHAR(1),StartTime SMALLDATETIME,EndTime SMALLDATETIME, Status NVARCHAR(10))
INSERT tbl VALUES
(‘A’,’20120101 07:00′,’20120101 11:00′,N’Down’),
(‘B’,’20120101 11:00′,’20120101 12:00′,N’改機’),
(‘B’,’20120101 12:00′,’20120101 12:20′,N’Avail’),
(‘B’,’20120101 12:20′,’20120101 12:40′,N’Down’),
(‘B’,’20120101 12:40′,’20120101 13:00′,N’Avail’),
(‘B’,’20120101 13:00′,’20120101 13:30′,N’Down’),
(‘B’,’20120101 13:30′,’20120101 14:00′,N’Avail’),
(‘B’,’20120101 14:00′,’20120101 14:30′,N’Down’),
(‘B’,’20120101 14:30′,’20120101 15:30′,N’Avail’),
(‘C’,’20120101 15:30′,’20120101 18:30′,N’改機’),
(‘C’,’20120101 18:30′,’20120101 19:30′,N’Avail’)

設定資料集

DataSet1:SELECT ROW_NUMBER() OVER (ORDER BY BD,StartTime ) StatusNo,* FROM tbl

DataSet2:SELECT DISTINCT Status FROM  tbl

 

加入範圍橫條圖

image

設定數列值的上/下界值即為欄位值本身,非彙總值

image

設定橫條圖填滿:=IIF(Fields!Status.Value="Avail","LightBlue",IIF(Fields!Status.Value="Down","Tomato","Silver"))

image

類別目錄群組:BD

數列群組的群組運算式:=Fields!Status.Value + Fields!StatusNo.Value.ToString(),若直接以 Status 欄位值為群組,會造成一種 Status 值在同一條橫條圖上只出現一次

image

透過屬性視窗設定數列屬性 CustomAttributes/DrawSideBySide=False,預設會是用不同的橫條圖呈現相同類別群組內不同的數列群組

更改 X 軸以 hh:mm 呈現

image

設定標籤格式:hh:mm

image

 

自訂 Table 當圖例

由於預設的圖例會以群組運算式:=Fields!Status.Value + Fields!StatusNo.Value.ToString() 的結果呈現,故刪除,加一個 Table 當圖例

image

設定第二欄文字方塊的填滿色彩:=IIF(Fields!Status.Value="Avail","LightBlue",IIF(Fields!Status.Value="Down","Tomato","Silver"))

image

 

參考:http://pnarayanaswamy.blogspot.com/2010/09/range-bar-chart-gantt-chart-using-ssrs.html

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: