2014-09-05 73 views
0

我想構建一個SSRS報告,顯示Visual Studio(BIDS?)中顯示的Web顏色托盤中的所有可用顏色(非自定義)。我認爲這可以在代碼中完成,可能是對System.Drawing.Color的引用,但我無法找到實現它的好方法。我目前使用2005年SSRS報告列出所有可用的顏色

SSRS喜歡的東西:

Color Name | [Color]  | HTML code (bonus, not necessary) 
--------------------------------------------------------------- 
Black  | [Black]  | #000000 
White  | [White]  | #ffffff 
DimGray | [DimGray] | # 
... 
LimeGreen | [LimeGreen] | # 
etc 

我知道我可以手動生成,但我認爲這將是一個很好的學習經驗。

回答

0

對於任何對我如何解決這個問題感興趣的人,我最終手動構建了一個簡單的聯合查詢,並將所有可用的顏色作爲數據源。這不是一個巨大的損失,因爲它打開了未來一些有趣的數據庫驅動配色方案的大門。

數據源

--MainDS: manual list of colors in VS2005 system 
Select 'Black' as [color_name] union all 
Select 'White' union all 
Select 'DimGray' union all 
Select 'Gray' union all 
Select 'DarkGray' 
-- etc 

顯示顏色的HTML顏色代碼

  1. 報告>報告屬性
  2. 參考標籤:添加System.Drawing中
  3. 代碼標籤,添加以下功能

Public Function HTMLColor(my_color as String) as String Dim colorObj As System.Drawing.Color = System.Drawing.Color.FromName(my_color) return String.Format("#{0:X2}{1:X2}{2:X2}", colorObj.R, colorObj.G, colorObj.B) End Function

我得到這個功能從另一個堆棧問題肉: https://stackoverflow.com/a/5207560/103131

佈局

這使得它易於安裝的報告作爲一個簡單的表。對於3原始列,我用這些值:

[Color name] = (value)=Fields!color_name.value 
[Color] = (BackgroundColor)=Fields!color_name.value 
[White*] = (BackgroundColor)=White 
[HTML] = =Code.HTMLColor(Fields!color_name.Value) 

我還包括只是白色的一個額外的列,這確實有助於看到一些較淺的顏色的細微差別。