Страница 1 из 1

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

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

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

MaxSumPerDt = Max(SumsPerDt, SumsPerDt.VSum);
И после нажатия ОК получаем:
after.jpg
after.jpg (165.86 КБ) 4415 просмотров
Если сейчас нажать 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, все бэнды пока помещаются в страницу

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

Добавлено: 21 апр 2015, 17:34
DmitryRu
Да, редактирую в штатном Designer.exe версии 2015.1

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

Добавлено: 22 апр 2015, 11:18
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 22 апр 2015, 12:04
DmitryRu
То есть подсветить максимальное значение на диаграмме никак не получится?

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

Добавлено: 23 апр 2015, 13:47
HighAley
Здравствуйте.

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

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

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

Спасибо.

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

Добавлено: 24 апр 2015, 11:49
DmitryRu
Круто, спасибо за совет!

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

За одно таки пожалуюсь, у меня такое впечатление, что свойство "Prevent Intersection" у чарта не работает:
prevent.png
prevent.png (26.76 КБ) 4397 просмотров
Оно у меня установлено:
properties.png
properties.png (38.65 КБ) 4397 просмотров

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

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

Спасибо.

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

Добавлено: 27 апр 2015, 11:48
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 01 сен 2015, 13:48
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(); 
            }
        }
Вдруг кому пригодится :-)

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

Добавлено: 01 сен 2015, 14:56
Aleksey
Здравствуйте,

Спасибо за информацию.