Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TDBChart условия отбора для Series, Построение графиков из 1-го sql запроса 
:(
    Опции темы
Eva_Adamova
  Дата 11.7.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 26.3.2007
Где: Петропавловск-Кам чатский

Репутация: нет
Всего: нет



Добрый день!
Строю линейный график компонентом DBChart. В нём Series подключён к ADOQuery. В ADOQuery sql запрос, выводящий из базы некую таблицу типа Показатель-Месяц-Год. Мне нужно начертить, к примеру, 3 линейных графика для трёх разных лет. Они выводятся вместе и можно увидеть разницу по сравнению с предыдущими годами. 
Так вот, sql запрос выводит данные за _все_ три года, а в Chart я не смогла найти, как для Series  сделать условие: для конкрентного графика брать данные за определённый год.

Может быть несколько сумбурно всё это описала, объясню ещё раз коротко: 
есть SQL запрос, отбирающий данные за несколько лет. По этим данным строится несколько графиков (в одном компоненте), за каждый год с разбивкой по месяцам по оси Х. SQL запрос выводит данные сразу за несколько лет, но в DBChart я не смогла сделать условие - чертить отдельный график для отдельного года.

Сейчас временно сделала так - три ADOQuery с sql запросом с разбивкой по годам (ADOQuery1 выводит данные за 2005 год, ADOQuery2 - за 2006 год и т.д.). Каждый ADOQuery1 подключён к своему Series в DBChart.  Громоздко и криво, но работает  smile )))

Как сделать что-то типа фильтра (условие) для каждого Series в DBChart?

Delphi 7.
user posted image


Это сообщение отредактировал(а) Eva_Adamova - 12.7.2007, 00:15
PM MAIL ICQ   Вверх
murod
Дата 19.7.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 17.9.2005
Где: Uzbekistan/Tashke nt

Репутация: нет
Всего: 4



Заполняй в ручную.
вот примерный код:
Код

procedure TForm1.FillChart;
var
serieslist:Tstringlist;
year:string;
series,newseries:TChartSeries;
seriesid:byte;
begin
 serieslist:=TStringList.Create;
 ADOQuery1.First;
 while  not  ADOQuery1.Eof do begin
   year:=adoquery1.FieldByName('year').asstring;
   seriesid:=serieslist.IndexOf(year) ;
   if seriesid<0 then begin // создаем новую серию
     newseries:=TChartSeries.Create(Chart1);
     serieslist.AddObject(year,newseries);
     Chart1.AddSeries(newseries);
     series:=newseries;
   end else series:=TChartSeries(serieslist.objects[seriesid]);
   series.AddXY(ADOQuery1.fieldbyname('x').AsFloat,ADOQuery1.fieldbyname('y').AsFloat);
   ADOQuery1.Next;
 end;
end;


Это сообщение отредактировал(а) murod - 19.7.2007, 20:42
--------------------
Люди всего мира берегите природу!  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.3154 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.