Changeset View
Changeset View
Standalone View
Standalone View
src/renderer/KReportPreRenderer.cpp
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Line(s) | 84 | #endif | |||
---|---|---|---|---|---|
86 | m_page = new OROPage(nullptr); | 86 | m_page = new OROPage(nullptr); | ||
87 | m_document->addPage(m_page); | 87 | m_document->addPage(m_page); | ||
88 | 88 | | |||
89 | //! @todo calculate past page | 89 | //! @todo calculate past page | ||
90 | bool lastPage = false; | 90 | bool lastPage = false; | ||
91 | 91 | | |||
92 | m_yOffset = m_topMargin; | 92 | m_yOffset = m_topMargin; | ||
93 | 93 | | |||
94 | if (m_pageCounter == 1 && m_reportDocument->m_pageHeaderFirst) | 94 | if (m_pageCounter == 1 && m_reportDocument->section(KReportSectionData::Type::PageHeaderFirst)) | ||
95 | renderSection(*(m_reportDocument->m_pageHeaderFirst)); | 95 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::PageHeaderFirst))); | ||
96 | else if (lastPage == true && m_reportDocument->m_pageHeaderLast) | 96 | else if (lastPage == true && m_reportDocument->section(KReportSectionData::Type::PageHeaderLast)) | ||
97 | renderSection(*(m_reportDocument->m_pageHeaderLast)); | 97 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::PageHeaderLast))); | ||
98 | else if ((m_pageCounter % 2) == 1 && m_reportDocument->m_pageHeaderOdd) | 98 | else if ((m_pageCounter % 2) == 1 && m_reportDocument->section(KReportSectionData::Type::PageHeaderOdd)) | ||
99 | renderSection(*(m_reportDocument->m_pageHeaderOdd)); | 99 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::PageHeaderOdd))); | ||
100 | else if ((m_pageCounter % 2) == 0 && m_reportDocument->m_pageHeaderAny) | 100 | else if ((m_pageCounter % 2) == 0 && m_reportDocument->section(KReportSectionData::Type::PageHeaderEven)) | ||
101 | renderSection(*(m_reportDocument->m_pageHeaderAny)); | 101 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::PageHeaderEven))); | ||
102 | else if (m_reportDocument->m_pageHeaderAny) | 102 | else if (m_reportDocument->section(KReportSectionData::Type::PageHeaderAny)) | ||
103 | renderSection(*(m_reportDocument->m_pageHeaderAny)); | 103 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::PageHeaderAny))); | ||
104 | } | 104 | } | ||
105 | 105 | | |||
106 | qreal KReportPreRendererPrivate::finishCurPageSize(bool lastPage) | 106 | qreal KReportPreRendererPrivate::finishCurPageSize(bool lastPage) | ||
107 | { | 107 | { | ||
108 | qreal retval = 0.0; | 108 | qreal retval = 0.0; | ||
109 | 109 | | |||
110 | if (lastPage && m_reportDocument->m_pageFooterLast) | 110 | if (lastPage && m_reportDocument->section(KReportSectionData::Type::PageFooterLast)) | ||
111 | retval = renderSectionSize(* (m_reportDocument->m_pageFooterLast)); | 111 | retval = renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterLast))); | ||
112 | else if (m_pageCounter == 1 && m_reportDocument->m_pageFooterFirst) | 112 | else if (m_pageCounter == 1 && m_reportDocument->section(KReportSectionData::Type::PageFooterFirst)) | ||
113 | retval = renderSectionSize(* (m_reportDocument->m_pageFooterFirst)); | 113 | retval = renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterFirst))); | ||
114 | else if ((m_pageCounter % 2) == 1 && m_reportDocument->m_pageFooterOdd) | 114 | else if ((m_pageCounter % 2) == 1 && m_reportDocument->section(KReportSectionData::Type::PageFooterOdd)) | ||
115 | retval = renderSectionSize(* (m_reportDocument->m_pageFooterOdd)); | 115 | retval = renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterOdd))); | ||
116 | else if ((m_pageCounter % 2) == 0 && m_reportDocument->m_pageFooterEven) | 116 | else if ((m_pageCounter % 2) == 0 && m_reportDocument->section(KReportSectionData::Type::PageFooterEven)) | ||
117 | retval = renderSectionSize(* (m_reportDocument->m_pageFooterEven)); | 117 | retval = renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterEven))); | ||
118 | else if (m_reportDocument->m_pageFooterAny) | 118 | else if (m_reportDocument->section(KReportSectionData::Type::PageFooterAny)) | ||
119 | retval = renderSectionSize(* (m_reportDocument->m_pageFooterAny)); | 119 | retval = renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterAny))); | ||
120 | 120 | | |||
121 | //kreportDebug() << retval; | 121 | //kreportDebug() << retval; | ||
122 | return retval; | 122 | return retval; | ||
123 | } | 123 | } | ||
124 | 124 | | |||
125 | qreal KReportPreRendererPrivate::finishCurPage(bool lastPage) | 125 | qreal KReportPreRendererPrivate::finishCurPage(bool lastPage) | ||
126 | { | 126 | { | ||
127 | 127 | | |||
128 | qreal offset = m_maxHeight - m_bottomMargin; | 128 | qreal offset = m_maxHeight - m_bottomMargin; | ||
129 | qreal retval = 0.0; | 129 | qreal retval = 0.0; | ||
130 | //kreportDebug() << offset; | 130 | //kreportDebug() << offset; | ||
131 | 131 | | |||
132 | if (lastPage && m_reportDocument->m_pageFooterLast) { | 132 | if (lastPage && m_reportDocument->section(KReportSectionData::Type::PageFooterLast)) { | ||
133 | //kreportDebug() << "Last Footer"; | 133 | //kreportDebug() << "Last Footer"; | ||
134 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->m_pageFooterLast)); | 134 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterLast))); | ||
135 | retval = renderSection(* (m_reportDocument->m_pageFooterLast)); | 135 | retval = renderSection(* (m_reportDocument->section(KReportSectionData::Type::PageFooterLast))); | ||
136 | } else if (m_pageCounter == 1 && m_reportDocument->m_pageFooterFirst) { | 136 | } else if (m_pageCounter == 1 && m_reportDocument->section(KReportSectionData::Type::PageFooterFirst)) { | ||
137 | //kreportDebug() << "First Footer"; | 137 | //kreportDebug() << "First Footer"; | ||
138 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->m_pageFooterFirst)); | 138 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterLast))); | ||
139 | retval = renderSection(* (m_reportDocument->m_pageFooterFirst)); | 139 | retval = renderSection(* (m_reportDocument->section(KReportSectionData::Type::PageFooterFirst))); | ||
140 | } else if ((m_pageCounter % 2) == 1 && m_reportDocument->m_pageFooterOdd) { | 140 | } else if ((m_pageCounter % 2) == 1 && m_reportDocument->section(KReportSectionData::Type::PageFooterOdd)) { | ||
141 | //kreportDebug() << "Odd Footer"; | 141 | //kreportDebug() << "Odd Footer"; | ||
142 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->m_pageFooterOdd)); | 142 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterOdd))); | ||
143 | retval = renderSection(* (m_reportDocument->m_pageFooterOdd)); | 143 | retval = renderSection(* (m_reportDocument->section(KReportSectionData::Type::PageFooterOdd))); | ||
144 | } else if ((m_pageCounter % 2) == 0 && m_reportDocument->m_pageFooterEven) { | 144 | } else if ((m_pageCounter % 2) == 0 && m_reportDocument->section(KReportSectionData::Type::PageFooterEven)) { | ||
145 | //kreportDebug() << "Even Footer"; | 145 | //kreportDebug() << "Even Footer"; | ||
146 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->m_pageFooterEven)); | 146 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterEven))); | ||
147 | retval = renderSection(* (m_reportDocument->m_pageFooterEven)); | 147 | retval = renderSection(* (m_reportDocument->section(KReportSectionData::Type::PageFooterEven))); | ||
148 | } else if (m_reportDocument->m_pageFooterAny) { | 148 | } else if (m_reportDocument->section(KReportSectionData::Type::PageFooterAny)) { | ||
149 | //kreportDebug() << "Any Footer"; | 149 | //kreportDebug() << "Any Footer"; | ||
150 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->m_pageFooterAny)); | 150 | m_yOffset = offset - renderSectionSize(* (m_reportDocument->section(KReportSectionData::Type::PageFooterAny))); | ||
151 | retval = renderSection(* (m_reportDocument->m_pageFooterAny)); | 151 | retval = renderSection(* (m_reportDocument->section(KReportSectionData::Type::PageFooterAny))); | ||
152 | } | 152 | } | ||
153 | 153 | | |||
154 | return retval; | 154 | return retval; | ||
155 | } | 155 | } | ||
156 | 156 | | |||
157 | void KReportPreRendererPrivate::renderDetailSection(KReportDetailSectionData *detailData) | 157 | void KReportPreRendererPrivate::renderDetailSection(KReportDetailSectionData *detailData) | ||
158 | { | 158 | { | ||
159 | if (detailData->detailSection) { | 159 | if (detailData->detailSection) { | ||
▲ Show 20 Lines • Show All 307 Lines • ▼ Show 20 Line(s) | 466 | if (m_reportDocument->pageLayout().orientation() == QPageLayout::Landscape) { | |||
467 | qreal tmp = m_maxWidth; | 467 | qreal tmp = m_maxWidth; | ||
468 | m_maxWidth = m_maxHeight; | 468 | m_maxWidth = m_maxHeight; | ||
469 | m_maxHeight = tmp; | 469 | m_maxHeight = tmp; | ||
470 | } | 470 | } | ||
471 | 471 | | |||
472 | //kreportDebug() << "Page Size:" << m_maxWidth << m_maxHeight; | 472 | //kreportDebug() << "Page Size:" << m_maxWidth << m_maxHeight; | ||
473 | 473 | | |||
474 | m_document->setPageLayout(m_reportDocument->pageLayout()); | 474 | m_document->setPageLayout(m_reportDocument->pageLayout()); | ||
475 | m_dataSource->setSorting(m_reportDocument->m_detailSection->sortedFields); | 475 | m_dataSource->setSorting(m_reportDocument->detail()->sortedFields); | ||
476 | if (!m_dataSource->open()) { | 476 | if (!m_dataSource->open()) { | ||
477 | return false; | 477 | return false; | ||
478 | } | 478 | } | ||
479 | 479 | | |||
480 | #ifdef KREPORT_SCRIPTING | 480 | #ifdef KREPORT_SCRIPTING | ||
481 | initEngine(); | 481 | initEngine(); | ||
482 | connect(m_scriptHandler, SIGNAL(groupChanged(QMap<QString, QVariant>)), | 482 | connect(m_scriptHandler, SIGNAL(groupChanged(QMap<QString, QVariant>)), | ||
483 | m_preRenderer, SIGNAL(groupChanged(QMap<QString, QVariant>))); | 483 | m_preRenderer, SIGNAL(groupChanged(QMap<QString, QVariant>))); | ||
Show All 26 Lines | 501 | if (!label.isNull()) { | |||
510 | qreal wg = (label.xGap() / 100.0); | 510 | qreal wg = (label.xGap() / 100.0); | ||
511 | qreal h = (label.height() / 100.0); | 511 | qreal h = (label.height() / 100.0); | ||
512 | qreal hg = (label.yGap() / 100.0); | 512 | qreal hg = (label.yGap() / 100.0); | ||
513 | int numCols = label.columns(); | 513 | int numCols = label.columns(); | ||
514 | int numRows = label.rows(); | 514 | int numRows = label.rows(); | ||
515 | qreal tmp; | 515 | qreal tmp; | ||
516 | 516 | | |||
517 | // flip the value around if we are printing landscape | 517 | // flip the value around if we are printing landscape | ||
518 | if (!m_reportDocument->pageLayout().orientation() == QPageLayout::Portrait) { | 518 | if (!(m_reportDocument->pageLayout().orientation() == QPageLayout::Portrait)) { | ||
519 | w = (label.height() / 100.0); | 519 | w = (label.height() / 100.0); | ||
520 | wg = (label.yGap() / 100.0); | 520 | wg = (label.yGap() / 100.0); | ||
521 | h = (label.width() / 100.0); | 521 | h = (label.width() / 100.0); | ||
522 | hg = (label.xGap() / 100.0); | 522 | hg = (label.xGap() / 100.0); | ||
523 | numCols = label.rows(); | 523 | numCols = label.rows(); | ||
524 | numRows = label.columns(); | 524 | numRows = label.columns(); | ||
525 | } | 525 | } | ||
526 | 526 | | |||
527 | KReportDetailSectionData * detailData = m_reportDocument->m_detailSection; | 527 | KReportDetailSectionData * detailData = m_reportDocument->detail(); | ||
528 | if (detailData->detailSection) { | 528 | if (detailData->detailSection) { | ||
529 | KReportDataSource *mydata = m_dataSource; | 529 | KReportDataSource *mydata = m_dataSource; | ||
530 | 530 | | |||
531 | if (mydata && mydata->recordCount() > 0) { /* && !((query = orqThis->getQuery())->eof()))*/ | 531 | if (mydata && mydata->recordCount() > 0) { /* && !((query = orqThis->getQuery())->eof()))*/ | ||
532 | if (!mydata->moveFirst()) { | 532 | if (!mydata->moveFirst()) { | ||
533 | return false; | 533 | return false; | ||
534 | } | 534 | } | ||
535 | int row = 0; | 535 | int row = 0; | ||
Show All 17 Lines | 544 | if (col >= numCols) { | |||
553 | } | 553 | } | ||
554 | } | 554 | } | ||
555 | } while (mydata->moveNext()); | 555 | } while (mydata->moveNext()); | ||
556 | } | 556 | } | ||
557 | } | 557 | } | ||
558 | 558 | | |||
559 | } else { | 559 | } else { | ||
560 | // Normal Print Run | 560 | // Normal Print Run | ||
561 | if (m_reportDocument->m_reportHeader) { | 561 | if (m_reportDocument->section(KReportSectionData::Type::ReportHeader)) { | ||
562 | renderSection(*(m_reportDocument->m_reportHeader)); | 562 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::ReportHeader))); | ||
563 | } | 563 | } | ||
564 | 564 | | |||
565 | if (m_reportDocument->m_detailSection) { | 565 | if (m_reportDocument->detail()) { | ||
566 | renderDetailSection(m_reportDocument->m_detailSection); | 566 | renderDetailSection(m_reportDocument->detail()); | ||
567 | } | 567 | } | ||
568 | 568 | | |||
569 | if (m_reportDocument->m_reportFooter) { | 569 | if (m_reportDocument->section(KReportSectionData::Type::ReportFooter)) { | ||
570 | if (renderSectionSize(*(m_reportDocument->m_reportFooter)) + finishCurPageSize(true) + m_bottomMargin + m_yOffset >= m_maxHeight) { | 570 | if (renderSectionSize(*(m_reportDocument->section(KReportSectionData::Type::ReportFooter))) + finishCurPageSize(true) + m_bottomMargin + m_yOffset >= m_maxHeight) { | ||
571 | createNewPage(); | 571 | createNewPage(); | ||
572 | } | 572 | } | ||
573 | renderSection(*(m_reportDocument->m_reportFooter)); | 573 | renderSection(*(m_reportDocument->section(KReportSectionData::Type::ReportFooter))); | ||
574 | } | 574 | } | ||
575 | } | 575 | } | ||
576 | finishCurPage(true); | 576 | finishCurPage(true); | ||
577 | 577 | | |||
578 | #ifdef KREPORT_SCRIPTING | 578 | #ifdef KREPORT_SCRIPTING | ||
579 | // _postProcText contains those text boxes that need to be updated | 579 | // _postProcText contains those text boxes that need to be updated | ||
580 | // with information that wasn't available at the time it was added to the document | 580 | // with information that wasn't available at the time it was added to the document | ||
581 | m_scriptHandler->setPageTotal(m_document->pageCount()); | 581 | m_scriptHandler->setPageTotal(m_document->pageCount()); | ||
▲ Show 20 Lines • Show All 121 Lines • Show Last 20 Lines |