Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Внешние источники данных  (Read 2540 times)

Real_Bastard

  • Newbie
  • *
  • Posts: 2
    • View Profile
Внешние источники данных
« on: June 24, 2017, 12:03:42 AM »
А можно где-то прочитать про их использование? 
В примерах есть
report->dataManager()->addModel("string_list",stringListModel,true);
но примера шаблона нет,  и как это использовать не понятно(((

механизм SIGNAL-SLOT.
Пример отсюда http://limereport.ru/forum/index.php?topic=117.0  вроде понятен, но тогда вопрос. Это метод только для работы с “Data” бэнд? И тоже хотелось бы пример с шаблоном.

И ещн. Нашел метод setReportVariable.  Может есть еще что-то столь же простое и полезное? В общем с интерфейсом БД все более менее понятно. А как жить без нее не очень.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Внешние источники данных
« Reply #1 on: June 24, 2017, 01:05:00 AM »
На всякий случай изложу в вкратце суть внешних источников данных.
Внешние источники бывают двух видов :
1. Источник реализующий QAbstractItemModel. Этот источник подключается через report.dataManager().addModel("имя модели","объект модель","true - объект модель уничтожает LimeReport");
2. Источник построенный на методе обратного вызова.
   В коде своего приложения реализуете слот getCallbackData(LimeReport::CallbackInfo,QVariant&)
   При желании организовать подчиненные источники или в случае, если заранее не известно количество записей в курсоре, можно дополнительно реализовать слот changePos(const LimeReport::CallbackInfo::ChangePosType&,bool&).
Пример реализации можно посмотреть в demo_r1
Теперь как использовать:
Внешние источники цепляются к бандам так же как и внутренние.
Единственное отличие это подчиненные источники. Есть два варианта их реализации:
1. LimeReport'у передаются 2 полные модели, затем в дизайнере LimeReport создается подчиненный источник фильтрующего типа в, котором указывается главный и подчиненный источник, а так же поля по которым будет производиться фильтрация в подчиненном источнике. Далее в подчиненных бандах используется этот фильтрующий источник данных.
2. Используется механизм источника с обратным вызовом у, которого в слоте changePos производится инициализация подчиненных источников.

Вот как то так :)   

Real_Bastard

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Внешние источники данных
« Reply #2 on: June 25, 2017, 12:39:03 AM »
Спасибо за оперативный ответ. Но все же хотелось бы пример...
В исходниках demo_r1  все вижу, но какой шаблон все это отрабатывает, не понял....

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 992
    • View Profile
Re: Внешние источники данных
« Reply #3 on: June 27, 2017, 11:44:52 PM »
Этот отчет подойдет к demo_r1