diff --git a/common.pri b/common.pri index 1ab4c24..0e8d673 100644 --- a/common.pri +++ b/common.pri @@ -127,7 +127,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 5 -LIMEREPORT_VERSION_RELEASE = 35 +LIMEREPORT_VERSION_RELEASE = 36 LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}' DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\" diff --git a/limereport/lrbanddesignintf.cpp b/limereport/lrbanddesignintf.cpp index 8b1c341..fd5c3e8 100644 --- a/limereport/lrbanddesignintf.cpp +++ b/limereport/lrbanddesignintf.cpp @@ -1137,7 +1137,7 @@ void BandDesignIntf::updateItemSize(DataSourceManager* dataManager, RenderPass p restoreLinks(); snapshotItemsLayout(); BandDesignIntf* patternBand = dynamic_cast(patternItem()); - if (patternBand && pass == FirstPass) emit(patternBand->preparedForRender()); + arrangeSubItems(pass, dataManager); if (autoHeight()){ if (!keepTopSpace()) { diff --git a/limereport/lrreportrender.cpp b/limereport/lrreportrender.cpp index 0752a2e..271f1ec 100644 --- a/limereport/lrreportrender.cpp +++ b/limereport/lrreportrender.cpp @@ -1264,6 +1264,7 @@ BandDesignIntf *ReportRender::renderData(BandDesignIntf *patternBand) replaceGroupsFunction(bandClone); } + patternBand->preparedForRender(); bandClone->updateItemSize(m_datasources); //m_scriptEngineContext->baseDesignIntfToScript(bandClone); diff --git a/limereport/lrscriptenginemanager.cpp b/limereport/lrscriptenginemanager.cpp index f974c51..fe2e53c 100644 --- a/limereport/lrscriptenginemanager.cpp +++ b/limereport/lrscriptenginemanager.cpp @@ -587,8 +587,7 @@ void ScriptEngineManager::clearTableOfContents(){ } ScriptValueType ScriptEngineManager::moveQObjectToScript(QObject* object, const QString objectName) -{ - +{ ScriptValueType obj = scriptEngine()->globalObject().property(objectName); if (!obj.isNull()) delete obj.toQObject(); ScriptValueType result = scriptEngine()->newQObject(object); @@ -1934,7 +1933,7 @@ bool DatasourceFunctions::invalidate(const QString& datasourceName) return false; } -QObject* DatasourceFunctions::createTableBuilder(BaseDesignIntf* horizontalLayout) +QObject* DatasourceFunctions::createTableBuilder(QObject* horizontalLayout) { return new TableBuilder(dynamic_cast(horizontalLayout), dynamic_cast(m_dataManager)); } @@ -1987,14 +1986,16 @@ void TableBuilder::buildTable(const QString& datasourceName) { checkBaseLayout(); m_dataManager->dataSourceHolder(datasourceName)->invalidate(IDataSource::RENDER_MODE); - m_dataManager->dataSource(datasourceName)->first(); - bool firstTime = true; - QObject* row = m_horizontalLayout; - while(!m_dataManager->dataSource(datasourceName)->eof()){ - if (!firstTime) row = addRow(); - else firstTime = false; - fillInRowData(row); - m_dataManager->dataSource(datasourceName)->next(); + IDataSource* ds = m_dataManager->dataSource(datasourceName); + if (ds){ + bool firstTime = true; + QObject* row = m_horizontalLayout; + while(!ds->eof()){ + if (!firstTime) row = addRow(); + else firstTime = false; + fillInRowData(row); + ds->next(); + } } } diff --git a/limereport/lrscriptenginemanager.h b/limereport/lrscriptenginemanager.h index d3b47ba..7f86a33 100644 --- a/limereport/lrscriptenginemanager.h +++ b/limereport/lrscriptenginemanager.h @@ -338,7 +338,7 @@ public: Q_INVOKABLE bool prior(const QString& datasourceName); Q_INVOKABLE bool isEOF(const QString& datasourceName); Q_INVOKABLE bool invalidate(const QString& datasourceName); - Q_INVOKABLE QObject *createTableBuilder(BaseDesignIntf* horizontalLayout); + Q_INVOKABLE QObject *createTableBuilder(QObject *horizontalLayout); private: IDataSourceManager* m_dataManager; };