<<На Главную

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

©Simashkov.2014

04.11.2014 г.

 

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

Назад