Выделение значений в кросс-таблице Crystal Reports на основе значений одного уровня - PullRequest
1 голос
/ 08 февраля 2012

У меня есть кросс-таблица, в которой столбцы строк обозначают разные классы, а затем имена людей в верхней части.

|         | Required | Person 1 | Person 2 | Person 3 |
| Class 1 | 8      6 | 1      6 | 3      6 | 4      6 | 
| Class 2 | 6      2 | 3      2 | 2      2 | 1      2 |

Каждое поле содержит 2 значения. Первое значение - это количество часов, проведенных в классе,Второе поле - это количество часов, необходимое для сертификации.

Поле Обязательно идентифицирует мою общую итоговую сводку.

В эксперте кросс-таблицы поля определены следующим образом.

Строки:

Command.descr -> поле, содержащее имена классов

Столбцы:

Command.fullname ->поле, содержащее полные имена студентов

Суммированные поля:

Сумма Command.evlength -> сумма всего времени, проведенного в данном курсе

Макс. @ Требуется -> эта формула возвращает количество обязательных часов в зависимости от названия курса

Я пытаюсь выделить поле Сумма команд.длина , если она больше или равна значению Макс. @ требуется .

Мое решение состояло в том, чтобы выполнить фоновое форматирование.Щелкните правой кнопкой мыши поле Sum of Command.evlength и выберите Формат поля.Перейдите на вкладку границ, выберите «Фон» и введите формулу.

Я использовал следующую формулу:

if CurrentFieldValue >= {@required} then color(152, 251, 152) else crNoColor

Это неправильная формула.Моя кросс-таблица была помещена в нижний колонтитул, в результате чего {@required} содержит последнее значение в сетке, которое в приведенном выше примере равно 2.

Из моего исследования я подумал, что мне придется использовать GridRowColumnValue (строкаили имя столбца), чтобы получить доступ к значению {@required} в кросс-таблице, но я не смог найти правильную строку для ее представления.

У кого-нибудь есть способ правильно выполнить это сравнение?

1 Ответ

1 голос
/ 28 февраля 2012

К сожалению, я не думаю, что вы можете использовать эксперт по выделению, чтобы сравнить с динамическим значением.Вы можете поменять местами столбцы и добавить следующие формулы:

К цвету фона max_of_required:

whileprintingrecords;
global numbervar required_hrs := currentfieldvalue;
crNoColor;

К цвету фона sum_of_command.evlength:

whileprintingrecords;
global numbervar required_hrs;
if currentfieldvalue >= required_hrs then
 crRed
else
 crNoColor;

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

...