<<На Главную

Тематическая раскраска в отчетах программы БАД

Функционал  программы Банк Агрохимических Данных (БАД) предусматривает для пользователей возможность самостоятельно настраивать тематическую раскраску данных в отчетах и скрывать её при необходимости. Это возможно для тех отчетов, где существует соответствующая опция (есть необходимый переключатель):

 

Программа Банк агрохим. данных. Показать тематику

 

Имеются два возможных варианта  настройки тематического выделения цветом данных в используемом в программе БАД генераторе отчетов Crystal Reports. Один связан с  использованием так называемого Мастера выделения, а другой путь предполагает написание несложных макросов. Начнем, пожалуй, с первой возможности.

Представим, что имеется отчет Crystal Reports, в котором вы хотели бы выделить определенным цветом фон поля, в зависимости от его значения. В конструкторе отчетов становимся на это поле , жмём на правую кнопку, и в контекстном меню выбираем Мастер выделения:

Мастер выделения в отчетвх Crystal Reports

Попадаем в форму Мастера подсвечивания и кликаем по Создать для настройки параметров выделения фона:

Форма Мастера подсвечивания

Для настраивания возможности включать/отключать раскраску полей, в нужной таблице должно существовать поле логического типа. Предположим, что такой столбец существует, и называется для таблицы SvodRlsk temflag (флаг тематической раскраски). В списке слева нужно будет выбрать его:

Выбираем поле из таблицы для выделения

В случае, если поле temflag принимает значение Ложь , то тематическая подсветка фона производиться не должна - цвет фона надо будет просто сделать белым. На сл. картинке показано, как реализовать такой подход:

Сброс тематической раскраски

Так, с логикой показа/скрытия тематики разобрались. Теперь о том, как настроить собственно интервальные цвета фона. В Мастере подсвечивания снова щелкаем по кнопке Создать и в поле Значение справа выбираем то поле, которое нас интересует. Предположим, что для значения меньше 4.0 желаем выделить фон красным:

Установить значения тем. раскраски

...  а для значения от 4.0 до 4.5  выбрать цвет уже не из списка стандартных, а из палитры - жмем по Пользовательский:

Выбрать пользовательские цвета для тематической раскраски

... и далее задаём нужный оттенок :

В палитре цветов предусмотрена возможность выставить нужный фон, путём указания комбинации цветов RGB. Запомнив эту комбинацию, можно гарантировать идентичность оттенков для их однообразной настройки и в других отчетах.

Кстати сказать, можно заранее настроить Дополнительные цвета и использовать их там, где это необходимо, не подбирая  заново. Правда, есть одно обстоятельство. Эти цвета будут существовать только в текущей сессии. Если выйдите из Visual Studio, они не сохраняться! Этот момент нужно иметь в виду.

Проделав аналогичную настройку и для прочих интервалов, допустим, для показателя pH в агрохимии, должны увидеть приблизительно такую форму Мастера подсвечивания:

Установить цвета для тем. раскраски по pH

Если , для примера, оформить рассмотренным способом тематическую раскраску и для других основных агрохимических показателей, то  отчет Crystal Reports может выглядеть приблизительно так:

Пример отчета в Crystal Reports с тематической раскраской

Рассмотренный способ создания тематики с использование Мастера выделения имеет существенный недостаток - в случае серийного оформления невозможно сохранить результаты настройки цветов для один раз проделанной работы. Решить эту коллизию можно с помощью написания несложных скриптов на Visual Basic- подобном языке генератора Crystal Reports. Переходим непосредственно к реализации такого подхода.

Поскольку есть вполне грамотное желание по настройке цветов отчета в одном месте (чтобы можно было при необходимости изменить их), сначала напишем небольшую функцию, в которой зададим нужные значения комбинации RGB - становимся в Проводнике полей на Поля формул, жмём на пр. кнопку и выбираем Создать:

Проводник полей в отчете Crystal Reports

Текст функции для нашего примера может быть приблизительно таким:

Текст кода для установки цветов в отчете Crystal Reports

Небольшой комментарий . Переменные, поскольку мы их будем использовать и из других формул отчета (см. далее) объявляем как глобальные (ключевое слово Global). Не забываем вытащить формулу в конструктор отчета, лучше всего в верхний колонтитул  (не забываем сделать её скрытой!):

Переносим формулу в отчет

Далее алгоритм наших действий будет следующий. В конструкторе отчетов выбираем поле, цвет фона которого желаем изменить, и в контекстном меню кликаем по Форматировать объект:

Форматировать поле в Crystal Reports

Идём на вкладку Граница и кликаем по кнопке задания макроса для установки цвета фона:

задать код настройки выделения фона

В редакторе пишем приблизительно такой нехитрый код:

Функция Color в Crystal Reports

Небольшой комментарий. Нужные цвета в зависимости от значения поля выбираем либо как константы (crRed - красный, или задаем как сочетание значений RGB в специальной функции Color)

Ну, собственно, и всё. Осталось просто банальным Copy/Paste вставить в формулу подбора фона (см. выше) набранный  макрос (только нужно сначала тщательно протестировать его работу, чтобы далее не тиражировать возможные ошибки). Естественно, для каждого нового случая  нужно будет писать новый макрос.

Теперь, если возникла необходимость изменить палитру цветов в отчете, нужно будет изменить её только в одном месте , в функции установки глобальных настроек.

©Simashkov.2014

04.11.2014 г.

 

 г. Обнинск (Калужская обл.), санаторий Сигнал

Назад