Кросс отчет: подсветить максимум по столбцу

Обсуждение Stimulsoft Reports.NET
Ответить
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Кросс отчет: подсветить максимум по столбцу

Сообщение DmitryRu »

Мне необходимо подсветить максимумы с столбцах кросс таблицы.
Как и рекомендуется здесь, я создал хэш-таблицу и заполнил ее
http://forumru.stimulsoft.com/viewtopic ... 19&p=12577&
Проблема в том, что в событии CrossTab1_Sum1_Conditions (при обработке Conditions) в аргументах события StiValueEventArgs нет информации, для какой колонки это событие.
Рекомендуется делать это через tag.
Однако, при обработке события создания тэга CrossTab1_Sum1_GetTag тоже нет информации о столбце.
А при обработке события CrossTab1_Sum1_ProcessCell не понятно как задать Tag.

В итоге, не понимаю, как мне написать выражения для условия (Conditions), где взять номер текущего столбца.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение Леонид »

День добрый!

Сталкивался с подобной задачей. В событии ProcessCell вашей ячейки CrossTab1_Sum1 пишете следущее:

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

decimal value = 0;

// красим согласно условию в тот или иной цвет
if (decimal.TryParse(e.Text, out value))
  e.Cell.Field.Brush = (value > 0) ? new StiSolidBrush(Color.Chartreuse) : new StiSolidBrush(Color.HotPink);
Номер текущего столбца в ячейках сумм можно определять так с помощью e.Cell.SummaryIndex (см. подбробнее здесь http://forumru.stimulsoft.com/viewtopic ... dex#p11339).

Номер текущего столбца (колонки) и строки можно определять так (см. также здесь h[url]ttp://forumru.stimulsoft.com/search.php?keywords=e.Column+%3D%3D&t=2880&sf=msgonly[/url]):

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

if (e.Column == 1)
{
  // что-то делаем
}
Строка - e.Column, колонка - e.Row
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение DmitryRu »

Спасибо!
Более корректно, вторая ссылка:
http://forumru.stimulsoft.com/search.ph ... sf=msgonly
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение HighAley »

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

Я так понимаю проблема решена?
Будем рады вам помочь, если возникнут ещё вопросы.
Также пишите, если чего-то не нашли в нашей документации, мы стараемся её сделать лучше.

Спасибо.
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение DmitryRu »

Да, проблема решена.
Подскажите, где в документации можно узнать о таких магических переменных:
IsFirstPass, IsSecondPass
или

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

Stimulsoft.Report.Components.StiConditionHelper.ApplyFont(sender, 
		new System.Drawing.Font("Arial", 8.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204), 
		Stimulsoft.Report.Components.StiConditionPermissions.All);
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение HighAley »

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

На данный момент этого в документации нет.
Что именно вы хотели узнать?
Мы обязательно добавим необходимое вам описание в документацию

Спасибо.
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение DmitryRu »

Здравствуйте.
Мне кажется, документация должна описывать и тонкие моменты использования продукта.
На мой взгляд, в документации не описан двухпроходный режим построения отчета - что происходит в этом случае.
И, для вычисления того, как можно изменить шрифт, тоже пришлось сначала генерить код .cs, а потом из него выкусывать вышеприведенный кусок.
В идеале, мне кажется, и это могло бы быть в документации - хотя бы сама идея о том, что сначала можно сохранить репорт как .cs файл, а из него узнать, как можно использовать имеющиеся возможности.
Aleksey
Сообщения: 2908
Зарегистрирован: 22 апр 2010, 06:57

Re: Кросс отчет: подсветить максимум по столбцу

Сообщение Aleksey »

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

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

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