Могу ли я создать X номеров Series с помощью Chart Control для линейного графика на основе данных, возвращаемых Asp.net vb
Я буду разрабатывать некоторые схемы для проекта... в данный момент я просто создаю документ спецификации для хранимых процедур, и некоторые биты кажутся мне загадкой...
Я буду использовать ASP.net Chart Control. Диаграмма будет представлять собой линейный график и отображает показатели продаж для продукта за год. Показатели продаж могут составлять в квартал года до 3 показателей в год, но могут составлять всего один или два квартала для некоторых продуктов или несколько лет. Работа с базой данных будет выполняться разработчиком базы данных. Мне потребуется запросить к нему интерфейс хранимой процедуры. Итак, я буду передавать ProductID и год, когда я хочу найти цифры продаж.
Что было бы проще всего разработать на стороне.net (включая разработку Chart Control), если бы я запросил хранимую процедуру для возврата данных о продажах из базы данных либо - -
Могу ли я попросить вернуть набор данных, содержащий таблицы, которые представляют цифры продаж за кварталы? Одна таблица в наборе данных представляет один показатель продаж за квартал. Я не знаю, сколько таблиц будет в наборе данных.
Или я могу попросить вернуть большую таблицу данных, которая содержит все данные о продажах за год для продукта. И нужно ли фильтровать себя в коде и заполнять диаграмму? Если бы мне пришлось отфильтровать себя, что было бы лучше всего сделать?
Диаграмма должна быть достаточно гибкой, чтобы отображать 1, 2 или 3 серии линейных графиков на основе данных, возвращаемых любым из вышеперечисленных.
Спасибо,
L
1 ответ
Насколько я понимаю, вам нужно добавить диаграмму с диапазоном дат (недели, месяцы или кварталы) в качестве оси X и SaleData на оси Y. Лучший способ - получить данные в одной таблице, сгруппированной по дате продажи.
На основании минимальной даты продажи и максимальной даты продажи, доступных в вашей таблице, вы можете установить тип x-AxisInterval
int dateDifference = EndDate.Value.Subtract(StartDate.Value).Days;
if (dateDifference <= 15)
{
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;
}
else if (dateDifference > 15 && dateDifference <= 60)
{
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Weeks;
}
else if (dateDifference > 60)
{
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Months;
}