gifts2017

Раскрашиваем макет динамически

Опубликовал Максим (Fuego) в раздел Программирование - Практика программирования

Очень часто возникает задача как-то дополнительно выделять выводимую в отчетах информацию. В типовых отчетах есть флажок "Раскрашивать группировки" (или как-то так). Там сделано немудрённо - статические области с разными цветами.

А что делать, если нужно выводить группировки раскрашенные как разными цветами, так и раскрашенные  с различной яркостью и/или насыщенностью цвета в зависимости от уровня иерархии группировки?

Скорей всего приходит на ум (на мой, по-крайней мере :)) модели преобразования угла оттенка, уровней яркости и насыщенности: HSL и HSB. Вот крайне простейший пример:

СтруктураСоответствияЦветов = Новый Соответствие;

Для НомерСтрокиИзмерения = 0 По 20 Цикл

    насыщенность = 30; // процент

    оттенок = 20*НомерСтрокиИзмерения; //градус

    яркость = 90; // процент

    Цвет = HSB_TO_RGB(оттенок, насыщенность, яркость);

    СтруктураСоответствияЦветов.Вставить(НомерСтрокиИзмерения , Цвет);

КонецЦикла;

......

......

......

Пока Выборка.Следующий() Цикл

    ЦветФонаОбласти = СтруктураСоответствияЦветов[Выборка.Уровень()];

КонецЦикла;

http://infostart.ru/projects/3090/

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Максим (Fuego) 12.12.08 12:23
Кстати, на ошибки синтаксиса не обращайте внимания. Я ваще не врубаюсь, как код нормально впарить сюда. И писать/разукрашивать лень :) ..
2. Роман Петров (PeRom) 12.12.08 14:03
А если просто в RGB цвет задавать? Типа этого:
Код
Таб.ВывестиСекцию("Строка");
инд = 0;
Для инд = 1 По ЯцеекВСтроке Цикл 
   Если <Условие> Тогда
      Область = Таб.Область(ВерхЛевый,НизПравый);
      Область.ЦветФона(Красный, Зелёный, Синий);
   КонецЕсли;
КонецЦикла;
Показать полностью

Код на 77, но и на 8 можно сделать.
3. Максим (Fuego) 12.12.08 15:33
(2) На самом деле неудобно контролировать составляющие цвета. Мой "примерчик", приведённый здесь, показывает как просто изменять цвет. но как быть, когда хочется "разбавить краски с молоком"? Или сделать основной цвет выразительнее?..
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа