Маркиране на стойности в кръстосана таблица на Crystal Reports въз основа на стойности на брат или сестра

Имам кръстосана таблица, която има колони с редове, указващи различни класове, и след това имена на хора в горната част.

|         | 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 -> поле, съдържащо пълните имена на учениците

Обобщени полета:

Sum of Command.evlength -> сумиране на цялото време, прекарано в даден курс

Max of @required -> тази формула връща броя необходими часове въз основа на името на курса

Опитвам се да маркирам полето Sum of Command.evlength, ако е по-голямо или равно на стойността на Max of @required.

Моето решение беше да извърша фоново форматиране. Щракнете с десния бутон върху полето Sum of Command.evlength, изберете Format Field. Щракнете върху раздела за граници, проверете Фон и въведете формула.

Формулата, която използвах е:

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

Това не е правилната формула. Моята кръстосана таблица е поставена в долния колонтитул, което кара {@required} да съдържа последната стойност в мрежата, която в горния пример е 2.

От моето проучване реших, че ще трябва да използвам GridRowColumnValue(име на ред или колона) за достъп до стойността на {@required} в кръстосаната таблица, но не можах да измисля правилния низ, който да го представя.

Някой има ли начин да направя правилно това сравнение?


person stats    schedule 08.02.2012    source източник


Отговори (1)


Разочароващо, не мисля, че можете да използвате експерта за подчертаване, за да сравните с динамична стойност. Можете да размените колоните, след което да добавите следните формули:

Към 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;

Мисля, че има няколко други начина, но не съм толкова уверен в тях, така че започнете от тук.

person Lee Tickett    schedule 28.02.2012