2014-09-05 6 views
0

Я хотел бы создать отчет SSRS, который отображает все доступные цвета (нестандартные) в палитре цветности в Интернете, показанной в Visual Studio (BIDS?). Я предполагаю, что это можно сделать в коде, возможно, со ссылкой на System.Drawing.Color, но я не могу найти хороший способ его достижения. Я в настоящее время использую SSRS 2005.Отчет 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

Layout

Это сделало его легко настроить отчет в виде простой таблицы. Для 3-х оригинальных колонок, я использовал эти значения:

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

Я также включены дополнительные колонки только белый, который действительно помогает увидеть тонкие различия в некоторых легких оттенков.