mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-24 00:33:02 +03:00
Calculation of subtotals has been fixed
This commit is contained in:
parent
934021a182
commit
334f590efd
@ -133,7 +133,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc
|
|||||||
|
|
||||||
LIMEREPORT_VERSION_MAJOR = 1
|
LIMEREPORT_VERSION_MAJOR = 1
|
||||||
LIMEREPORT_VERSION_MINOR = 5
|
LIMEREPORT_VERSION_MINOR = 5
|
||||||
LIMEREPORT_VERSION_RELEASE = 58
|
LIMEREPORT_VERSION_RELEASE = 60
|
||||||
|
|
||||||
LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}'
|
LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}'
|
||||||
DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\"
|
DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\"
|
||||||
|
@ -752,6 +752,11 @@ void BandDesignIntf::emitBandRendered(BandDesignIntf* band)
|
|||||||
emit bandRendered(band);
|
emit bandRendered(band);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BandDesignIntf::emitBandReRendered(BandDesignIntf *oldBand, BandDesignIntf *newBand)
|
||||||
|
{
|
||||||
|
emit bandReRendered(oldBand, newBand);
|
||||||
|
}
|
||||||
|
|
||||||
void BandDesignIntf::setSplittable(bool value){
|
void BandDesignIntf::setSplittable(bool value){
|
||||||
if (m_splitable!=value){
|
if (m_splitable!=value){
|
||||||
bool oldValue = m_splitable;
|
bool oldValue = m_splitable;
|
||||||
|
@ -216,6 +216,7 @@ public:
|
|||||||
void parentObjectLoadFinished();
|
void parentObjectLoadFinished();
|
||||||
void objectLoadFinished();
|
void objectLoadFinished();
|
||||||
void emitBandRendered(BandDesignIntf *band);
|
void emitBandRendered(BandDesignIntf *band);
|
||||||
|
void emitBandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
|
|
||||||
bool isSplittable() const {return m_splitable;}
|
bool isSplittable() const {return m_splitable;}
|
||||||
void setSplittable(bool value);
|
void setSplittable(bool value);
|
||||||
@ -273,6 +274,7 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void bandRendered(BandDesignIntf* band);
|
void bandRendered(BandDesignIntf* band);
|
||||||
|
void bandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
void preparedForRender();
|
void preparedForRender();
|
||||||
void bandRegistred();
|
void bandRegistred();
|
||||||
protected:
|
protected:
|
||||||
|
@ -97,6 +97,14 @@ void GroupFunction::slotBandRendered(BandDesignIntf *band)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GroupFunction::slotBandReRendered(BandDesignIntf *oldBand, BandDesignIntf *newBand)
|
||||||
|
{
|
||||||
|
if (m_valuesByBand.contains(oldBand)){
|
||||||
|
m_valuesByBand.insert(newBand, m_valuesByBand.value(oldBand));
|
||||||
|
m_valuesByBand.remove(oldBand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QVariant GroupFunction::addition(QVariant value1, QVariant value2)
|
QVariant GroupFunction::addition(QVariant value1, QVariant value2)
|
||||||
{
|
{
|
||||||
return value1.toDouble()+value2.toDouble();
|
return value1.toDouble()+value2.toDouble();
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
virtual QVariant calculate(PageItemDesignIntf* page = 0)=0;
|
virtual QVariant calculate(PageItemDesignIntf* page = 0)=0;
|
||||||
public slots:
|
public slots:
|
||||||
void slotBandRendered(BandDesignIntf* band);
|
void slotBandRendered(BandDesignIntf* band);
|
||||||
|
void slotBandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
protected:
|
protected:
|
||||||
void setName(const QString& value){m_name=value;}
|
void setName(const QString& value){m_name=value;}
|
||||||
QVariant addition(QVariant value1, QVariant value2);
|
QVariant addition(QVariant value1, QVariant value2);
|
||||||
|
@ -386,7 +386,10 @@ void ReportRender::extractGroupFuntionsFromItem(ContentItemDesignIntf* contentIt
|
|||||||
if (dataBand){
|
if (dataBand){
|
||||||
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),dataBand->objectName());
|
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),dataBand->objectName());
|
||||||
if (gf){
|
if (gf){
|
||||||
connect(dataBand,SIGNAL(bandRendered(BandDesignIntf*)),gf,SLOT(slotBandRendered(BandDesignIntf*)));
|
connect(dataBand, SIGNAL(bandRendered(BandDesignIntf*)),
|
||||||
|
gf, SLOT(slotBandRendered(BandDesignIntf*)));
|
||||||
|
connect(dataBand, SIGNAL(bandReRendered(BandDesignIntf*, BandDesignIntf*)),
|
||||||
|
gf, SLOT(slotBandReRendered(BandDesignIntf*, BandDesignIntf*)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),captures.at(dsIndex));
|
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),captures.at(dsIndex));
|
||||||
@ -547,6 +550,7 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
if (!bandIsSliced){
|
if (!bandIsSliced){
|
||||||
BandDesignIntf* t = renderData(patternBand);
|
BandDesignIntf* t = renderData(patternBand);
|
||||||
t->copyBookmarks(bandClone);
|
t->copyBookmarks(bandClone);
|
||||||
|
patternBand->emitBandReRendered(bandClone, t);
|
||||||
delete bandClone;
|
delete bandClone;
|
||||||
bandClone = t;
|
bandClone = t;
|
||||||
}
|
}
|
||||||
@ -554,6 +558,7 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
if (!registerBand(bandClone)) {
|
if (!registerBand(bandClone)) {
|
||||||
BandDesignIntf* upperPart = dynamic_cast<BandDesignIntf*>(bandClone->cloneUpperPart(m_maxHeightByColumn[m_currentColumn]));
|
BandDesignIntf* upperPart = dynamic_cast<BandDesignIntf*>(bandClone->cloneUpperPart(m_maxHeightByColumn[m_currentColumn]));
|
||||||
registerBand(upperPart);
|
registerBand(upperPart);
|
||||||
|
patternBand->emitBandReRendered(bandClone, upperPart);
|
||||||
delete bandClone;
|
delete bandClone;
|
||||||
bandClone = NULL;
|
bandClone = NULL;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user