Максимальные и минимальные значения из суммированной формулы в Crystal Reports 2008
Максимальное и минимальное значения из суммированной формулы
Здравствуйте, я в настоящее время использую Crystal Reports 2008, который получает свои данные из базы данных Oracle. Я подробно изучил это и не смог найти нужную мне информацию. У меня есть запрос на получение максимальных и минимальных значений по заданной формуле, которая составляет 2 или более полей. Снимок информации, которую я использую:
Field1 = dB1.Left_Serious
Field2 = dB1.Left_Dangerous
Field3 = @Tester
Formula = @LeftTot
Поля 1 + 2 - это общая оценка, данная Тестером для каждого левого теста.
Test Field1 Field2 Field3
1 2.0 4.0 J Adams
2 1.0 1.0 J Adams
3 1.0 0.0 S Grey
4 0.0 1.0 S Grey
5 5.0 0.0 D Jones
6 5.0 8.0 D Jones
Формула для получения итоговой суммы для каждого левого теста тестера использует группировку по тестеру:
@LeftTot
Sum ({dB1.Left_Serious}, {@Tester}) + Sum (dB1.Left_Dangerous}, {@Tester})
Используя вышеприведенные детали мы получаем:
J Adams = 8.0
S Grey = 2.0
D Jones = 18.0
Таким образом, максимальный показатель составляет 18,0, минимальный - 2,0, а требуемая разница - 16,0.
У меня проблема в том, что я не могу использовать команды «Максимум» или «Минимум», поскольку Crystal 2008 не позволяет использовать сводные функции, такие как «Максимум», в формуле, которая суммирует два поля. Я знаю, что вы можете создать новое поле агрегирования в базе данных, которое решит проблему, однако в настоящее время у меня нет доступа администратора к базам данных и я не могу создавать какие-либо новые таблицы данных или поля.
Я попытался добиться успеха, используя следующий код в 3 новых формулах:
@LeftTotGrpHdr
//This Formula needs to be placed into the Group Header to reset variable
WhilePrintingRecords;
NumberVar LEFTTL:=0
@LeftTotGrpFtr
//This Formula needs to be placed into the Group Footer to display variable
WhilePrintingRecords;
NumberVar LEFTTL
@LeftTotCr
//This Formula declares and works out Total Left Tests
WhilePrintingRecords;
Global NumberVar LEFTTL:=LEFTTL + {@LeftTot}
Однако, когда я пытаюсь использовать
Maximum({@LeftTotCr})
в новой формуле я все еще получаю сообщение об ошибке «Это поле не может быть суммировано».
Есть ли другой способ сделать это?
ура
Daveyt