我想构建一个SSRS报告,显示Visual Studio(BIDS?)中显示的Web颜色托盘中的所有可用颜色(非自定义)。我假设这可以在代码中完成,可能是对System.Drawing.Color的引用,但我无法找到实现它的好方法。我目前正在使用ssrs 2005。
类似的东西:
Color Name | [Color] | HTML code (bonus, not necessary)
---------------------------------------------------------------
Black | [Black] | #000000
White | [White] | #ffffff
DimGray | [DimGray] | #
...
LimeGreen | [LimeGreen] | #
etc
我知道我可以手动构建,但我认为这将是一次很好的学习经历。
答案 0 :(得分: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颜色代码
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
我从另一个Stack问题得到了这个函数的内容: 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)
我还添加了一个白色的额外列,这有助于看到一些较浅色调的细微差别。