Как вывести несколько серий на одном графике?

Обсуждение Stimulsoft Reports.WEB
Ответить
digger
Сообщения: 52
Зарегистрирован: 19 апр 2010, 13:55
Откуда: SPb

Как вывести несколько серий на одном графике?

Сообщение digger »

Отчет 2010.2

Стоит задача выывести на одном графике несколько линий, но данные идут из одной таблицы.
Аргумент - дата
Значение - число.

В таблице есть еще составной ключ привязывающий ее к другой таблице. В нем два поля типа int.
Как вывести линии на одном графике, соответствующие каждая определенному значению составного ключа. И причем вывести в легенде имена этих серий, взятые из родительской таблицы?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Как вывести несколько серий на одном графике?

Сообщение Jan »

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

Хотелось бы получить больше информации о структуре данных и какие поля куда нужно вывести.

Спасибо.
digger
Сообщения: 52
Зарегистрирован: 19 апр 2010, 13:55
Откуда: SPb

Как вывести несколько серий на одном графике?

Сообщение digger »

Первая таблица: Fund
поля FundID, Name

Вторая таблица: FundClass
поля FundID, DBID, ClassID, ClassName
Связь с таблице Fund по полю FundID
DBID, ClassID - уникальный составной ключ

Третья таблица: TimeSeries
поля DBID,ClassID, ReportingDate, Value
Связь с таблице FundClass по полям DBID, ClassID

Требуется вывести столько spline на одном графике, сколько существует уникальных значений составного ключа (DBID, ClassID),
Каждую spline в легенде требуется озаглавить именем из поля ClassName. Все это надо сделать через Web Dersigner. Т.е хотелось бы получить график сравнение данных по разным классам


Что делаю я:
Использую чарт компонент.
Добавляю в него Series со следующими значениями:
"Argument Data Column"=TimeSeries.ReportingDate
"Value Data Column"=TimeSeries.Value

Ну и теперь, насколько я понимаю, чтоб разделить по различным классам надо использовать свойства "Auto Series Ket Data Column" и "Auto Series Title Data Column"

Но первая из них не принимает на вход составной ключ, как выражение, а вторая из них не может использовать значение родительской таблицы, т.е. написать
"Auto Series Title Data Column"=TimeSeries.FundClass.ClassName не помогает.

Хотя вот такая ссылка в обычном не web движке вашего report'а работает



Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Как вывести несколько серий на одном графике?

Сообщение Jan »

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

Если я правильно понял, то этого можно достичь при помощи DataSource based on other DataSources. Этот источник может сгруппировать данные по нужным ключам. После чего уже на основании нового источника данных можно будет создать автоматически диаграммы. DataSource based on other DataSources создается в словаре данных.

Спасибо.
digger
Сообщения: 52
Зарегистрирован: 19 апр 2010, 13:55
Откуда: SPb

Как вывести несколько серий на одном графике?

Сообщение digger »

Не могли бы вы рассказать об этом поподробнее. В документации подобные графики как-то не отражены, как и в демонстрационных примерах.
И чем мне могла бы помочь группировка?
Как можно создать группированный датасорс извне, программным способом? Мы в нашем приложении не хотим предоставлять доступ пользователю к редактированию датасорсов, так как собираем их автоматически.

И еще такой вопрос: "Auto Series Ket Data Column" позволяет разбить серии в одном графике, но их отображение осуществляется совершенно одним и тем же цветом и типом линий, можно ли это поменять?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Как вывести несколько серий на одном графике?

Сообщение Aleksey »

Здравствуйте,
digger писал(а):Не могли бы вы рассказать об этом поподробнее. В документации подобные графики как-то не отражены, как и в демонстрационных примерах.
И чем мне могла бы помочь группировка?
Пожалуйста посмотрите простой отчет в приложении, в котором используется DataSource на основе другого DataSource с группировкой.
При помощи группировки вы сможете посчитать количество уникальных значений ключа.
digger писал(а):Как можно создать группированный датасорс извне, программным способом? Мы в нашем приложении не хотим предоставлять доступ пользователю к редактированию датасорсов, так как собираем их автоматически.
Вы можете создать группированный датасорс и посмотреть на вкладке Code как он там создан, аналогично данному коду вы можете создать его в коде вашего приложения.
digger писал(а):И еще такой вопрос: "Auto Series Ket Data Column" позволяет разбить серии в одном графике, но их отображение осуществляется совершенно одним и тем же цветом и типом линий, можно ли это поменять?
Не совсем поняли ваш вопрос. Уточните что Вы имеете ввиду.

Спасибо.
Вложения
SampleReport.mrt
(19.56 КБ) 405 скачиваний
digger
Сообщения: 52
Зарегистрирован: 19 апр 2010, 13:55
Откуда: SPb

Как вывести несколько серий на одном графике?

Сообщение digger »

digger wrote:
И еще такой вопрос: "Auto Series Ket Data Column" позволяет разбить серии в одном графике, но их отображение осуществляется совершенно одним и тем же цветом и типом линий, можно ли это поменять?

Не совсем поняли ваш вопрос. Уточните что Вы имеете ввиду.
Цвет линий очень похож, на моем мониторе они выглядят практически одинаково. И им нельзя поменять стиль, то есть все серии используют один и тот же стиль. Может есть способ более радикально развести их по цвету, например сделать контрастные цвета - красный, синийб зеленый.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Как вывести несколько серий на одном графике?

Сообщение Jan »

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

Стоит воспользоваться AutoSeriesColorDataColumn свойством. Укажите свои цвета для серий. Цвета задаются в формате #ff00ff. Так же можно задать название цвета по английски, например: Black.

Спасибо.
digger
Сообщения: 52
Зарегистрирован: 19 апр 2010, 13:55
Откуда: SPb

Как вывести несколько серий на одном графике?

Сообщение digger »

А можно ли задействовать для этого стили чартов. Создать новый стиль в Style Designer и там цвета перечислить как-то?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Как вывести несколько серий на одном графике?

Сообщение Jan »

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

К сожалению, такая возможность отсутствует.

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