【问题标题】:SSRS report listing all available colorsSSRS 报告列出所有可用颜色
【发布时间】:2014-09-05 19:42:55
【问题描述】:

我想构建一个 SSRS 报告,在 Visual Studio 中显示的 Web 调色板中显示所有可用颜色(非自定义)(BIDS?)。我认为这可以在代码中完成,可能参考 System.Drawing.Color,但我无法找到实现它的好方法。我目前正在使用 ssrs 2005。

类似:

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

我知道我可以手动构建它,但我认为这将是一次很好的学习体验。

【问题讨论】:

    标签: reporting-services reportingservices-2005


    【解决方案1】:

    对于任何对我如何解决此问题感兴趣的人,我最终手动构建了一个简单的联合查询,其中所有可用颜色作为数据源。这并不是一个巨大的损失,因为它为未来一些有趣的数据库驱动的配色方案打开了大门。

    数据源

    --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)
    

    我还添加了一个额外的白色列,这确实有助于看到一些较浅色调的细微差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2014-01-05
      相关资源
      最近更新 更多