Подсветить максимум на диаграмме

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

Подсветить максимум на диаграмме

Сообщение DmitryRu »

Есть источник данных
Дата продажи, Сумма продажи
Надо построить график, где по горизонтали даты, по вертикали сумма продаж, формата, например Clustered Column.
И надо подсветить макс. продажу. Чтобы прямоугольник за эту дату, был, допустим, красный.
Делаем Highlight Condition:
before.png
before.png (74.02 КБ) 4422 просмотра
Где MaxSumPerDt - это переменная отчета, вычисляемая в событии DataBand2 onBeforeRender примерно так:

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

MaxSumPerDt = Max(SumsPerDt, SumsPerDt.VSum);
И после нажатия ОК получаем:
after.jpg
after.jpg (165.86 КБ) 4422 просмотра
Если сейчас нажать Continue и сохранить файл, то он потом не открывается! Т.е. приходится открывать его в текстовом редакторе и удалять Conditions вручную.

Вопросы
1) Возможно ли нарисовать макс. продажу другим цветом?
2) Очень плохо, что редактор падает, и потом не дает открыть им же сохраненный файл.
3) Что это за линия красная внизу страницы на первой картинке? Когда отчет строится, Cheker мне в Warning пишет:
The component is partially outside of the page
The 'PageFooterBand1' component is partially outside of the page. This component will not be printed correctly. Also it may cause some problems with exporting a report to other formats.
Но вроде бы, судя по картинке before.png, все бэнды пока помещаются в страницу
DmitryRu
Сообщения: 163
Зарегистрирован: 19 май 2014, 10:40

Re: Подсветить максимум на диаграмме

Сообщение DmitryRu »

Да, редактирую в штатном Designer.exe версии 2015.1
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подсветить максимум на диаграмме

Сообщение HighAley »

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

На данный момент в Conditions нельзя использовать переменные. Можно указывать только константы, то есть конкретное значение.
Проблему в Exception мы решим в ближайшем билде.

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

Re: Подсветить максимум на диаграмме

Сообщение DmitryRu »

То есть подсветить максимальное значение на диаграмме никак не получится?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подсветить максимум на диаграмме

Сообщение HighAley »

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

Вы можете сделать это в событии Before Print чарта с поможью следующего кода:

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

Item3.Conditions[0].Value = MaxSumPerDt.ToString();
где Item3 -- это имя серии в отчёте.

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

Re: Подсветить максимум на диаграмме

Сообщение DmitryRu »

Круто, спасибо за совет!

Большое спасибо Вашей команде за качественную и быструю поддержку.

За одно таки пожалуюсь, у меня такое впечатление, что свойство "Prevent Intersection" у чарта не работает:
prevent.png
prevent.png (26.76 КБ) 4404 просмотра
Оно у меня установлено:
properties.png
properties.png (38.65 КБ) 4404 просмотра
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Подсветить максимум на диаграмме

Сообщение Ivan »

Здравствуйте,
DmitryRu писал(а):у меня такое впечатление, что свойство "Prevent Intersection" у чарта не работает
Спасибо за присланную информацию о проблеме.
Действительно, что-то поломалось.
Постараемся решить проблему в ближайшее время.

Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Подсветить максимум на диаграмме

Сообщение HighAley »

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

Мы исправили работу свойства Prevent Intersection.
Исправления будут доступны в нашем следующем предрелизном билде.

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

Re: Подсветить максимум на диаграмме

Сообщение DmitryRu »

Aleksey Andreyanov писал(а):Вы можете сделать это в событии Before Print чарта с поможью следующего кода:
Код: Выделить всё
Item3.Conditions[0].Value = MaxSumPerDt.ToString();
где Item3 -- это имя серии в отчёте.
Здравствуйте.
Я нашел более портабельный способ нахождения Series, для которой надо задать Condition, из кода:

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

        public void Chart1_BeforePrint(object sender, System.EventArgs e)
        {
            // CheckerInfo: BeforePrintEvent Chart1
            var series = Chart1.Series["Series 1"];
            if (series != null && series.Conditions != null && series.Conditions.Count == 1)
            {
                series.Conditions[0].Value = YourValue.ToString(); 
            }
        }
Вдруг кому пригодится :-)
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Подсветить максимум на диаграмме

Сообщение Aleksey »

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

Спасибо за информацию.
Ответить