mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-25 00:54:39 +03:00
Spliting TextItem and multi variables output have been fixed
This commit is contained in:
parent
6a1b244104
commit
019d213882
@ -457,7 +457,7 @@ void TextItem::expandContent(DataSourceManager* dataManager, RenderPass pass)
|
|||||||
context=expandScripts(context, dataManager);
|
context=expandScripts(context, dataManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (expandType == NoEscapeSymbols) {
|
if (expandType == NoEscapeSymbols && !m_varValue.isNull() &&m_valueType!=Default) {
|
||||||
setContent(formatFieldValue());
|
setContent(formatFieldValue());
|
||||||
} else {
|
} else {
|
||||||
setContent(context);
|
setContent(context);
|
||||||
@ -490,22 +490,26 @@ bool TextItem::canBeSplitted(int height) const
|
|||||||
BaseDesignIntf *TextItem::cloneUpperPart(int height, QObject *owner, QGraphicsItem *parent)
|
BaseDesignIntf *TextItem::cloneUpperPart(int height, QObject *owner, QGraphicsItem *parent)
|
||||||
{
|
{
|
||||||
int linesHeight=0;
|
int linesHeight=0;
|
||||||
initText();
|
|
||||||
QString tmpText="";
|
QString tmpText="";
|
||||||
TextItem* upperPart = dynamic_cast<TextItem*>(cloneItem(itemMode(),owner,parent));
|
TextItem* upperPart = dynamic_cast<TextItem*>(cloneItem(itemMode(),owner,parent));
|
||||||
|
|
||||||
for (QTextBlock it=m_text->begin();it!=m_text->end();it=it.next()){
|
for (QTextBlock it=m_text->begin();it!=m_text->end();it=it.next()){
|
||||||
for (int i=0;i<it.layout()->lineCount();i++){
|
for (int i=0;i<it.layout()->lineCount();i++){
|
||||||
linesHeight+=it.layout()->lineAt(i).height();
|
linesHeight+=it.layout()->lineAt(i).height();
|
||||||
if (linesHeight>(height-(fakeMarginSize()*2+borderLineSize()*2))) {linesHeight-=it.layout()->lineAt(i).height(); goto loop_exit;}
|
if (linesHeight>(height-(fakeMarginSize()*2+borderLineSize()*2))) {
|
||||||
|
linesHeight-=it.layout()->lineAt(i).height();
|
||||||
|
goto loop_exit;
|
||||||
|
}
|
||||||
tmpText+=it.text().mid(it.layout()->lineAt(i).textStart(),it.layout()->lineAt(i).textLength())+'\n';
|
tmpText+=it.text().mid(it.layout()->lineAt(i).textStart(),it.layout()->lineAt(i).textLength())+'\n';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loop_exit:
|
loop_exit:
|
||||||
tmpText = tmpText.trimmed();
|
tmpText.chop(1);
|
||||||
|
|
||||||
upperPart->setHeight(linesHeight+fakeMarginSize()*2+borderLineSize()*2);
|
upperPart->setHeight(linesHeight+fakeMarginSize()*2+borderLineSize()*2);
|
||||||
QScopedPointer<HtmlContext> context(new HtmlContext(m_strText));
|
QScopedPointer<HtmlContext> context(new HtmlContext(m_strText));
|
||||||
upperPart->setContent(context->extendTextByTags(tmpText,0));
|
upperPart->setContent(context->extendTextByTags(tmpText,0));
|
||||||
|
upperPart->initText();
|
||||||
return upperPart;
|
return upperPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -525,19 +529,20 @@ BaseDesignIntf *TextItem::cloneBottomPart(int height, QObject *owner, QGraphicsI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
loop_exit:;
|
loop_exit:;
|
||||||
|
|
||||||
int textPos=0;
|
int textPos=0;
|
||||||
for (;curBlock!=m_text->end();curBlock=curBlock.next()){
|
for (;curBlock!=m_text->end();curBlock=curBlock.next()){
|
||||||
for (;curLine<curBlock.layout()->lineCount();curLine++){
|
for (curLine=0;curLine<curBlock.layout()->lineCount();curLine++){
|
||||||
if (tmpText=="") textPos= curBlock.layout()->lineAt(curLine).textStart();
|
if (tmpText=="") textPos= curBlock.layout()->lineAt(curLine).textStart();
|
||||||
tmpText+=curBlock.text().mid(curBlock.layout()->lineAt(curLine).textStart(),
|
tmpText+=curBlock.text().mid(curBlock.layout()->lineAt(curLine).textStart(),
|
||||||
curBlock.layout()->lineAt(curLine).textLength()) + "\n";
|
curBlock.layout()->lineAt(curLine).textLength()) + "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tmpText.chop(1);
|
||||||
if (!m_strText.endsWith("\n")) tmpText = tmpText.trimmed();
|
|
||||||
|
|
||||||
QScopedPointer<HtmlContext> context(new HtmlContext(m_strText));
|
QScopedPointer<HtmlContext> context(new HtmlContext(m_strText));
|
||||||
bottomPart->setContent(context->extendTextByTags(tmpText,textPos));
|
bottomPart->setContent(context->extendTextByTags(tmpText,textPos));
|
||||||
|
bottomPart->initText();
|
||||||
bottomPart->setHeight(bottomPart->m_textSize.height()+borderLineSize()*2);
|
bottomPart->setHeight(bottomPart->m_textSize.height()+borderLineSize()*2);
|
||||||
return bottomPart;
|
return bottomPart;
|
||||||
}
|
}
|
||||||
|
@ -768,7 +768,9 @@ BandDesignIntf* ReportRender::sliceBand(BandDesignIntf *band, BandDesignIntf* pa
|
|||||||
band = saveUppperPartReturnBottom(band,m_maxHeightByColumn[m_currentColumn],patternBand);
|
band = saveUppperPartReturnBottom(band,m_maxHeightByColumn[m_currentColumn],patternBand);
|
||||||
if (!band->isEmpty()) {
|
if (!band->isEmpty()) {
|
||||||
if (band->autoHeight()){
|
if (band->autoHeight()){
|
||||||
|
if (band->isNeedUpdateSize(FirstPass)){
|
||||||
band->setHeight(0);
|
band->setHeight(0);
|
||||||
|
}
|
||||||
band->updateItemSize(m_datasources);
|
band->updateItemSize(m_datasources);
|
||||||
}
|
}
|
||||||
DataBandDesignIntf* data = dynamic_cast<DataBandDesignIntf*>(band);
|
DataBandDesignIntf* data = dynamic_cast<DataBandDesignIntf*>(band);
|
||||||
|
Loading…
Reference in New Issue
Block a user