Если Вы устанавливаете какие-либо нестандартные для диаграмы FastCube параметры, то должы это делать в событии OnChartFilled.
Это событие вызывается каждый раз после каких-либо изменений.
Т.е. Вы можете сохранить нужные свойства после вызова ChartEditor1.Execute, а затем в OnChartFilled устанавливать их.
Олег, просто раз уж мы используем TeeChart, то разумно было бы дать пользователю возможность наслаждаться всеми ее преимуществами.
И какие параметры диаграммы FastCube являются стандартными, а какие - нет?
Она же от TeeChart наследуется, значит все свойства родителя (TeeChart) являются стандартными.
В общем, как сделать так, чтобы ВСЕ настройки TeeChart сохранялись? Может быть есть какой-то простой способ это делать?
И еше вопрос: почему сортировка данных в диаграмме не "следит" за изменением сортировки в таблице?
Не каждый пользователь догадается, как в настройках TeeChart поменять сортировку по оси X.
"Стандартными" являются те параметры, которые FasrCube устанавливает непосредственно сам и которые пользователь может менять средствами FastCube.
Отслеживать, сохранять и восстанавливать всё многообразие свойств TeeChart мы не планируем, а предоставляем разработчику возможность управлять этим процессом самостоятельно.
Да, вся начинка диаграммы, в том числе и Series создаются заново, при поступлении от слайса сообщения о любых изменениях.
Вы можете отключить реакцию диаграммы, переведя её в режим заморозки - свойство Frozen.
На данный момент обмен сообщениями между гридом (таблицей), слайсом и диаграммой таков, что изменение размера грида вызывает активацию посылки слайсом сообщений о его изменении, что и инициирует пересоздание диаграммы. Вам надо исходить из факта, что OnChartFilled вызывается часто и неоднократно после изменения.
Хитростей по проблеме сортировки нет, на сегодняшний момент принцип выдачи данных диаграмме для построения оси таков, что он не учитывает сортировку в гриде. К сожалению в текущей версии измененять это не планируется.
В версии 2 всё будет корректно, в том числе и сбалансированный обмен событиями.
Вы можете отключить реакцию диаграммы, переведя её в режим заморозки - свойство Frozen.
Олег, если "заморозить" диаграмму, то ею можно будет управлять в "ручном" режиме? Т.е. сделать кнопку типа "Обновить данные" для загрузки новых данных из слайса. И чтобы при этом все настройки серии (TeeChart-овские) сохранялись?
Хитростей по проблеме сортировки нет, на сегодняшний момент принцип выдачи данных диаграмме для построения оси таков, что он не учитывает сортировку в гриде.
Хорошо, а как тогда сделать, чтобы значения всегда сортировались по убыванию?
Или как сделать так, чтобы пользователь мог выбрать вид сортировки (с сохранением его в какой-то переменной), а он применялся бы каждй раз при перерисовке диаграмы (раз уж это неизбежно)?
Попытка воспользоваться событием OnSeriesCreated не увенчалась успехом.
И сориентируйте пожалуйста по срокам выхода версии 2.0 - месяц, год, тысячелетие - мне нужно знать, чтобы планировать свою работу. Спасибо.
"Заморозка" отключает реакцию диаграммы на изменения в кубе-слайсе.
Обновление данных вызовет перестройку серий в диаграмме, что соответственно сбросит все нестандартные настройки.
По поводу сортировки - на данный момент она явна заданы процедурой выдачи данных от слайса. При этом обход ведётся в соответствии с естественным порядком значений полей в измерениях в направлении возрастания. Это процедура работает на первичной структуре, независящей от типа и направления сортировки в оси грида.
Изменить сортировку (порядок значений) в серии можно изменить либо изменив порядок выдачи данных (переделка описанной выше процедуры в версии 1 - в планах стоит, но не на первом месте), либо средствами TeeChart перестроить созданную и заполненную данными серию в событии OnChartFilled (я думаю, что это возможно, но это уже вопрос знания TeeChart).
Комментарии
Если Вы устанавливаете какие-либо нестандартные для диаграмы FastCube параметры, то должы это делать в событии OnChartFilled.
Это событие вызывается каждый раз после каких-либо изменений.
Т.е. Вы можете сохранить нужные свойства после вызова ChartEditor1.Execute, а затем в OnChartFilled устанавливать их.
С уважением, Олег.
И какие параметры диаграммы FastCube являются стандартными, а какие - нет?
Она же от TeeChart наследуется, значит все свойства родителя (TeeChart) являются стандартными.
В общем, как сделать так, чтобы ВСЕ настройки TeeChart сохранялись? Может быть есть какой-то простой способ это делать?
И еше вопрос: почему сортировка данных в диаграмме не "следит" за изменением сортировки в таблице?
Не каждый пользователь догадается, как в настройках TeeChart поменять сортировку по оси X.
Или есть какие-то хитрости, которых я не знаю?
Заранее спасибо.
С уважением, Кирилл.
"Стандартными" являются те параметры, которые FasrCube устанавливает непосредственно сам и которые пользователь может менять средствами FastCube.
Отслеживать, сохранять и восстанавливать всё многообразие свойств TeeChart мы не планируем, а предоставляем разработчику возможность управлять этим процессом самостоятельно.
Да, вся начинка диаграммы, в том числе и Series создаются заново, при поступлении от слайса сообщения о любых изменениях.
Вы можете отключить реакцию диаграммы, переведя её в режим заморозки - свойство Frozen.
На данный момент обмен сообщениями между гридом (таблицей), слайсом и диаграммой таков, что изменение размера грида вызывает активацию посылки слайсом сообщений о его изменении, что и инициирует пересоздание диаграммы. Вам надо исходить из факта, что OnChartFilled вызывается часто и неоднократно после изменения.
Хитростей по проблеме сортировки нет, на сегодняшний момент принцип выдачи данных диаграмме для построения оси таков, что он не учитывает сортировку в гриде. К сожалению в текущей версии измененять это не планируется.
В версии 2 всё будет корректно, в том числе и сбалансированный обмен событиями.
С уважением, Олег.
Сориентируйте пожалуйста по срокам выхода версии, в которой все будет корректно?
Олег, если "заморозить" диаграмму, то ею можно будет управлять в "ручном" режиме? Т.е. сделать кнопку типа "Обновить данные" для загрузки новых данных из слайса. И чтобы при этом все настройки серии (TeeChart-овские) сохранялись?
Хорошо, а как тогда сделать, чтобы значения всегда сортировались по убыванию?
Или как сделать так, чтобы пользователь мог выбрать вид сортировки (с сохранением его в какой-то переменной), а он применялся бы каждй раз при перерисовке диаграмы (раз уж это неизбежно)?
Попытка воспользоваться событием OnSeriesCreated не увенчалась успехом.
И сориентируйте пожалуйста по срокам выхода версии 2.0 - месяц, год, тысячелетие - мне нужно знать, чтобы планировать свою работу. Спасибо.
"Заморозка" отключает реакцию диаграммы на изменения в кубе-слайсе.
Обновление данных вызовет перестройку серий в диаграмме, что соответственно сбросит все нестандартные настройки.
По поводу сортировки - на данный момент она явна заданы процедурой выдачи данных от слайса. При этом обход ведётся в соответствии с естественным порядком значений полей в измерениях в направлении возрастания. Это процедура работает на первичной структуре, независящей от типа и направления сортировки в оси грида.
Изменить сортировку (порядок значений) в серии можно изменить либо изменив порядок выдачи данных (переделка описанной выше процедуры в версии 1 - в планах стоит, но не на первом месте), либо средствами TeeChart перестроить созданную и заполненную данными серию в событии OnChartFilled (я думаю, что это возможно, но это уже вопрос знания TeeChart).
Версия 2 - в этом году точно, надеемся летом.
С уважением, Олег.