Условия с использованием аггрегирующих функций

Обсуждение Stimulsoft Reports.NET
Ответить
Serg
Сообщения: 53
Зарегистрирован: 13 мар 2007, 11:44
Откуда: Ukraine

Условия с использованием аггрегирующих функций

Сообщение Serg »

Здравствуйте.

Значение ячейки в футере группы вычисляется следующим образом:
100*(double)Sum(GroupHeaderBand1,QueryData.s1)/(double)Sum(GroupHeaderBand1,QueryData.v1)

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

1. Как задать условие для изменения оформления ячейки для случая, когда результат окажется меньше чем QueryData.Испр ?
2. Как задать условие для изменения оформления ячейки для случая, когда делитель равен 0, чтобы надпись NaN стала прозрачной?

Спасибо.
Pavel
Сообщения: 67
Зарегистрирован: 10 май 2007, 11:24

Условия с использованием аггрегирующих функций

Сообщение Pavel »

Здравствуйте.

Для второго случая вы можете воспользоваться функцией IIF:

Код: Выделить всё

IIF((double)Sum(GroupHeaderBand1,QueryData.v1) > 0, 100*(double)Sum(GroupHeaderBand1,QueryData.s1)/(double)Sum(GroupHeaderBand1,QueryData.v1), 0)
затем для ячейки поставить св-во Hide Zeros = True, после чего если (double)Sum(GroupHeaderBand1,QueryData.v1) равно 0 то в ячейке будет 0, который будет скрываться.
Для выделения ячейки цветом и другим шрифтом можно написать в событии BeforPrintEvent для ячейки:

Код: Выделить всё

if (100*(double)Totals.Sum(GroupHeaderBand1,QueryData.s1)/(double)Totals.Sum(GroupHeaderBand1,QueryData.v1) < QueryData.Испр)
{
	Text1.Brush = new Stimulsoft.Base.Drawing.StiSolidBrush(System.Drawing.Color.Red);
    Text1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
} 
Спасибо.
Serg
Сообщения: 53
Зарегистрирован: 13 мар 2007, 11:44
Откуда: Ukraine

Условия с использованием аггрегирующих функций

Сообщение Serg »

Все понятно. Спасибо.

Единственный вопрос:
Будет ли поддержка итоговых функций в редакторе свойства "Условия" или это ограничения дизайна?
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Условия с использованием аггрегирующих функций

Сообщение Vital »

Вы можете использовать агрегатные функции, но с обязательным префиксом - Totals. Например: Totals.Sum(Databand1, customers.Value).

Спасибо.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Условия с использованием аггрегирующих функций

Сообщение Edward »

Проблема с использованием Totals в Conditions исправлена в пререлиз билде от 18 сентября.

Спасибо.
Ответить