0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-23 08:29:07 +03:00
This commit is contained in:
Arin Alexander
2017-03-03 01:24:23 +03:00
3 changed files with 15 additions and 6 deletions

View File

@@ -856,7 +856,7 @@ QList<QString> DataSourceManager::childDatasources(const QString &parentDatasour
foreach(QString datasourceName, dataSourceNames()){
if (isSubQuery(datasourceName)){
SubQueryHolder* sh = dynamic_cast<SubQueryHolder*>(dataSourceHolder(datasourceName));
if (sh->masterDatasource().compare(parentDatasourceName,Qt::CaseInsensitive)==0){
if (sh && sh->masterDatasource().compare(parentDatasourceName,Qt::CaseInsensitive)==0){
result.append(datasourceName);
}
}
@@ -868,7 +868,8 @@ void DataSourceManager::invalidateChildren(const QString &parentDatasourceName)
{
foreach(QString datasourceName, childDatasources(parentDatasourceName)){
SubQueryHolder* sh = dynamic_cast<SubQueryHolder*>(dataSourceHolder(datasourceName));
sh->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
if (sh)
sh->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
invalidateChildren(datasourceName);
}
}
@@ -1110,7 +1111,12 @@ void DataSourceManager::collectionLoadFinished(const QString &collectionName)
if (!m_datasources.contains(it.value()->queryName().toLower())){
connect(it.value(), SIGNAL(queryTextChanged(QString,QString)),
this, SLOT(slotQueryTextChanged(QString,QString)));
putHolder(it.value()->queryName(),new QueryHolder(it.value()->queryText(), it.value()->connectionName(), this));
putHolder(it.value()->queryName(),new SubQueryHolder(
it.value()->queryText(),
it.value()->connectionName(),
it.value()->master(),
this)
);
} else {
delete it.value();
it.remove();

View File

@@ -566,8 +566,11 @@ QString ScriptEngineManager::expandDataFields(QString context, ExpandType expand
context.replace(rx.cap(0),fieldValue);
} else {
QString error = QString("Field %1 not found in %2 !!! ").arg(field).arg(reportItem->objectName());
dataManager()->putError(error);
QString error;
if (reportItem){
error = QString("Field %1 not found in %2 !!! ").arg(field).arg(reportItem->objectName());
dataManager()->putError(error);
}
varValue = QVariant();
if (!dataManager()->reportSettings() || !dataManager()->reportSettings()->suppressAbsentFieldsAndVarsWarnings())
context.replace(rx.cap(0),error);