News: LimeReport new version 1.5 has been released
Вышла новая версия LimeReport 1.5

Recent Posts

Pages: 1 ... 3 4 [5] 6 7 ... 10
41
Сценариев использования огромное количество :) и как раз, создание одного экземпляра reportengine и закидывания в него различных отчетов, совсем не редкость. Поэтому если надо реализовать индикатор, который оборачивает весь процесс от создания отчета до его вывода, лучше это сделать самостоятельно.
42
Данные у меня лежат в простой базе данных, лежащей рядом с исполняемым файлом.
Я может что-то не понимаю, но разве время создания объекта LimeReport::ReportEngine, время на загрузку данных, время на загрузку самого отчёта и подготовка отчёта - это не то время, во время которого клиент должен просто ждать? Отчёт часто всего один и программист вряд ли будет предварительно всё это загружать, чтобы затем, при нажатии кнопки "показать отчёт" вызвать единственную функцию previewReport.
Хотя, может быть я и заблуждаюсь...
43
Показывается процесс рендера страниц, но в случае если данные получаются медленно, индикатор на это время не появится. Поэтому я собственно эту функциональность, видимо, хотел отломать. Можно сесть на сигнал, что страница отредерилась и запилить свой индикатор
44
А сколько страниц в отчете?
8
45
Я к тому, что, возможно, я ожидал несколько другого.
По логике (по моей логике) - весь мой код, медленно что-то делает, подготавливает, генерирует отчёт и потом уже показывает результат.
А тут, похоже, что просто показывается время "загрузки" функции previewReport.
При таком раскладе мне проще самостоятельно обернуть всё это в QProgressDialog...
46
А сколько страниц в отчете?
47
Забрал. Для чистоты эксперимента, снова склонировал репозиторий с гитхаба. Заодно и почти закончил отчёт.
Библиотеки заменил на свежесобранные. Проверяю на linux.
Полный код проверки.
    QElapsedTimer timer;
    timer.start();

    report = new LimeReport::ReportEngine(this);
    report->setShowProgressDialog(true);
    report->dataManager()->setReportVariable("SerNo", "серийный номер");
    // report->loadFromFile("report.lrxml");
    report->loadFromFile(":/data/report.lrxml");
    emit info(QString("Прошло времени %1 msec").arg(timer.elapsed()));
    report->previewReport();

Результат
Прошло времени 18021 msec
Что-то типа QProgressDialog появляется непосредственно перед отображением окна отчета (буквально моргает на 100-200 msec).
В винде не пробовал, думаю, что там результат будет тем же.
48
Ну вроде поправил :) Можно забрать и проверить
49
Возможно, что отломалось, я гляну что там да как
50
Нет, пока не большой. Пока не понятно, почему после вызова кода
    report = new LimeReport::ReportEngine(this);
    report->setShowProgressDialog(true);
    report->dataManager()->setReportVariable("SerNo", "серийный номер");
    // report->loadFromFile("report.lrxml");
    report->loadFromFile(":/data/report.lrxml");
    report->previewReport();
Ничего визуально на экране не происходит около 10 секунд, а потом отображается сгенерированный отчёт.
По смыслу эта функция вроде как должна отображать процесс генерирования отчета перед его показом, чтобы не создавалась иллюзия "зависания компьютера". Или я что-то не понимаю...
Pages: 1 ... 3 4 [5] 6 7 ... 10