LimeReport Forum
General Category | Основное => Discussion | Обсуждение => Topic started by: JohnCS on July 07, 2016, 10:49:29 am
-
Добрый день.
Пытаюсь программно обновить SQL запрос:
LimeReport::DataSourceManager *dm = (LimeReport::DataSourceManager*)(fReport->dataManager());
LimeReport::QueryDesc *query = dm->queryByName("tosQuery");
if (!query)
dm->addQuery("tosQuery", sql, "mainDB");
else
query->setQueryText(sql);
dm->connectAllDatabases();
dm->connectAutoConnections();
dm->updateChildrenData("tosQuery");
fReport->previewReport();
Не получается, использует сохраненный в шаблоне.
Если вызвать fReport->designReport(), то в свойствах источника новый запрос, но пока ОК не нажмешь будет использовать старый.
Как программно задать новый запрос?
Спасибо
-
Доброго времени суток!
Если честно, то такой вариант не был предусмотрен :) Изначально предполагалось, что будет запрос с параметрами в виде переменных :).
Ваш вариант тоже возможен :) посмотрю почему не срабатывает.
-
Пофиксил, пушнул :)
-
Alex, добрый день.
Обновил Lime. Не вызывается слот slotQueryTextChanged(QString,QString). :(
Коннект слота происходит только при добавлении источника, а если он в шаблоне отчета уже есть и ему нужно обновить запрос, то не срабатывает.
-
Пропустил подключение слота после загрузки :) Пофиксил, пушнул.
-
Ура, заработало :)
Спасибо
-
А не проще было модель из приложения передавать и обновлять её ?
-
Не знаю... Надо попробовать.
Пока хочу как можно меньше телодвижений в коде делать.