LimeReport Forum
General Category | Основное => Discussion | Обсуждение => Topic started by: aasavelev on June 28, 2016, 01:19:55 pm
-
Здравствуйте. Скачал демо вашего генератор отчетов пробую подключиться к MsSQL Express. Он выдает ошибку "Источник даннных не найден или не найден драйвер, используемый по умолчанию QODBC3". Что с делано не так? Окно настройки подключения во вложении.
[вложение удалено администратором]
-
Для подключения через ODBC нужно сначала настроить DSN в "Администраторе источников данных ODBC" и потом при настройке подключения в LimeReport использовать имя DSN в поле "database"
[вложение удалено администратором]
-
Спасибо. Подключился, отчет сделал. Только когда подключаю его в своей запускаю на выполнение, пытаюсь распечатать отчет и появляется ошибка(Окно с ошибкой во вложении).
Код выполнения отчета:
LimeReport::ReportEngine *m_report = new LimeReport::ReportEngine(0);
LimeReport::PreviewReportWidget* m_preview = m_report->createPreviewWidget();
QSqlQueryModel QueryModel;// = new QSqlQueryModel();
QString Sql= QString::fromUtf8("SELECT ROW_NUMBER() OVER(ORDER BY Сотрудники.ФИОСотрудника ASC) AS 'Номер', Сотрудники.ФИОСотрудника,Подписи.Дата");
Sql.append(QString::fromUtf8("FROM Подписи RIGHT OUTER JOIN Сотрудники ON Подписи.ИдСотрудника = Сотрудники.ИдСотрудника"));
Sql.append(QString::fromUtf8("WHERE (Подписи.ИдДокумента = %1) OR (Подписи.ИдДокумента IS NULL)").arg(Index.sibling(Index.row(),0).data(Qt::DisplayRole).toInt()));
Sql.append(QString::fromUtf8("ORDER BY Сотрудники.ФИОСотрудника"));
QueryModel.setQuery(Sql, Db);
m_report->dataManager()->addModel(QString::fromUtf8("Подписи"),&QueryModel ,true);
m_report->dataManager()->setReportVariable(QString::fromUtf8("Наименование документа"),Index.sibling(Index.row(),1).data(Qt::DisplayRole).toString());
m_report->loadFromFile(QApplication::applicationDirPath()+QString::fromUtf8("/Template/ЛистОзнакомления.lrxml"));
m_preview->refreshPages();
m_preview->show();
Ошибка возникает на первой строчке(проверил в Debug режиме). Если запустить не в Debug, то открывается пустое окно.
Подключение библиотеки осуществляю так:
unix|win32: LIBS += -L$$PWD/LimeReport/ -llimereport
INCLUDEPATH += $$PWD/LimeReport
DEPENDPATH += $$PWD/LimeReport
Подскажите что я делаю не так.
[вложение удалено администратором]
-
LimeReport сами собирали или использовали готовую dll ?
Похоже имеем следующую ситуацию.
В первом случае:
unix|win32: LIBS += -L$$PWD/LimeReport/ -llimereport
Судя по подключению вы используете одну и туже dll для отладки и релиза. Релизная dll валится в отладочном режиме.
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
PS:
Если createPreviewWidget() вызвать непосредственно перед show(), то refreshPages() можно не вызывать
-
LimeReport сами собирали или использовали готовую dll ?
Сам собирал, через QtCreator.
Во втором:
Приложение просто не находит файл отчета.
Поскольку приложение собирается и запускается в отдельной папке, а файл отчета в неё не перекладывается.
Если я ложу файл отчета то он вываливается в туже самую ошибку.
-
Вот какую ошибку я увидел:
terminate called after throwing an instance of 'LimeReport::ReportError'
what(): datasource with name "РџРѕРґРїРёСЃРё" already exists !
-
Со всеми проблемами я разобрался. Собрал по отдельности библиотеки для Debug и Release. Подключил их. В отчете удалил DataSource. И все заработало. Спасибо.