Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 28 мар 2024, 22:37

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Вывод данных в PlannerControlEh
СообщениеДобавлено: 20 июн 2019, 13:59 
Не в сети

Зарегистрирован: 07 май 2019, 09:02
Сообщений: 11
Добрый день.
Необходимо вывести в PlannerHorzHourslineViewEh данные из бд fireburd 3.0 embedded, для графического просмотра продолжительности событий. Рассматриваю пример из \eshli\ehlib_vcl_eva\Demos\PlannerEh.MainDemo\FrameOne.pas
там сделан пример используюя режим «stand-alone» в TMemTableEh
Пытаюсь реализовать режим «with datadriver», делаю через связку
PlannerHorzHourslineViewEh->PlannerControlEh->PlannerDataSourceEh->MemTableEh->SQLDataDriverEh->SQLConnectionProviderEh(с параметром типа сервера Interbase).

При попытке активизации MemTableEh, внутренний массив данных не создается.
Гуру, подскажите новичку, как же вывести данные, не записывая в файл mtPlannerData.dfm? (он еще и кодировку не держит, но не это главное).

ps. вообще то хотелось данные взять select-ом.
ps2. Delphi 10.3, Ehlib 9.3.028


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Вывод данных в PlannerControlEh
СообщениеДобавлено: 20 июн 2019, 20:00 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1546
Добрый день.

Читали ли вы инструкцию по работе с PlannerDataSourceEh и TPlannerControlEh.
"EhLib - Руководство разработчика.doc"
Раздел: Загрузка элементов-событий из БД или другого хранилища?

Для загрузки данных в PlannerDataSourceEh вы можете использовать ДатаСет любого типа.
Вы можете использовать ДатаСет который вы используете для доступа к вашей БД.

Код загрузки примерно такой
Код:
  PlannerDataSourceEh1.BeginUpdate;

  PlannerDataSourceEh1.ClearItems; //Очищаем старые данные

  mtPlannerData.First; //Здесь mtPlannerData - это датасет который содержит события для TPlannerDataSourceEh и TPlannerControlEh
  while not mtPlannerData.Eof do
  begin

    if mtPlannerData.FieldByName('InPlanner').AsBoolean = True then
    begin

      PlanItem := PlannerDataSourceEh1.NewItem();
      PlanItem.ItemID := mtPlannerData['Id'];
      PlanItem.StartTime := mtPlannerData['StartTime'];
      PlanItem.EndTime := mtPlannerData['EndTime'];
      PlanItem.Title := VarToStr(mtPlannerData['Title']);
      PlanItem.Body := VarToStr(mtPlannerData['Body']);
      PlanItem.AllDay := mtPlannerData.FieldByName('AllDay').AsBoolean;
      PlannerDataSourceEh1.FetchTimePlanItem(PlanItem);

    end;
    mtPlannerData.Next;
  end;

  PlannerDataSourceEh1.EndUpdate;


Пример загрузки смотрите в Демо проекте
EhLib\Demos\PlannerEh.MainDemo\FrameOne.pas

procedure TfrFrameOne.bFillPlannerClick(Sender: TObject);

--
Если вас интересует работа по загрузке данных в MemTableEh через связку
MemTableEh->SQLDataDriverEh->SQLConnectionProviderEh
то этот вопрос не связан с Планером.
Его надо рассматривать отдельно.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Вывод данных в PlannerControlEh
СообщениеДобавлено: 21 июн 2019, 10:02 
Не в сети

Зарегистрирован: 07 май 2019, 09:02
Сообщений: 11
EhLibSupport писал(а):
Читали ли вы инструкцию "EhLib - Руководство разработчика.doc"
Раздел: Загрузка элементов-событий из БД или другого хранилища?
Для загрузки данных в PlannerDataSourceEh вы можете использовать ДатаСет любого типа.
Вы можете использовать ДатаСет который вы используете для доступа к вашей БД.

Да, читал. Подключая PlannerControlEh через DataSet, и указывая соответствия в PlannerDataSourceEh->ItemSourceParamsEh->DataSet->FieldMaps, данные не отображаются. Хотя если вывести в Dbgrid - они есть.
Возможно я не внимательно читал, в таком случае прошу простить, и ткнуть носом что я пропустил.
Код:
  DM.FDQ_report.Active:=true;
  DBGrid1.DataSource:= DM.DS_report; // для проверки данных

  PlannerDataSourceEh1.BeginUpdate;
  PlannerDataSourceEh1.ClearItems;

  DM.FDQ_report.First;
  while not DM.FDQ_report.Eof do
    begin
        PlanItem := PlannerDataSourceEh1.NewItem();
        PlanItem.ItemID := DM.FDQ_report['Id'];
        PlanItem.EndTime := DM.FDQ_report['TimeEnd']; // если эта строка записана ниже StartTime, то выкидывает ошибку "дата окончания меньше даты начала"
        PlanItem.StartTime := DM.FDQ_report['TimeStart'];
        PlanItem.Title := VarToStr(DM.FDQ_report['RoomName']);
        PlannerDataSourceEh1.FetchTimePlanItem(PlanItem);
      DM.FDQ_report.Next;
     end;
  PlannerDataSourceEh1.EndUpdate;
  end;

Хотел изображение в спойлер поставить- но не нашел как, извините.


Вложения:
Комментарий к файлу: данные есть.
19-936.jpg
19-936.jpg [ 114.09 KiB | Просмотров: 917 ]
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Вывод данных в PlannerControlEh
СообщениеДобавлено: 21 июн 2019, 18:53 
Не в сети

Зарегистрирован: 07 май 2019, 09:02
Сообщений: 11
Уважаемые форумчане, помогите советом! Ну что то ведь не так делаю.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Вывод данных в PlannerControlEh
СообщениеДобавлено: 23 июн 2019, 13:21 
Не в сети

Зарегистрирован: 07 май 2019, 09:02
Сообщений: 11
:shock:
Жесть конечно, но....
PlanItem.EndTime := DM.FDQ_report['TimeStart'];
PlanItem.StartTime := DM.FDQ_report['TimeEnd'];
и...... работает.
Вопрос закрыт.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB