對於任何對我如何解決這個問題感興趣的人,我最終手動構建了一個簡單的聯合查詢,並將所有可用的顏色作爲數據源。這不是一個巨大的損失,因爲它打開了未來一些有趣的數據庫驅動配色方案的大門。
數據源
--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顏色代碼
- 報告>報告屬性
- 參考標籤:添加System.Drawing中
- 代碼標籤,添加以下功能
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)
我還包括只是白色的一個額外的列,這確實有助於看到一些較淺的顏色的細微差別。