//copyright : (C) 2002-2004 InfoSiAL S.L. //email : [email protected] void MReportEngine::drawDetailFooter( MPageCollection * pages, int level, QPtrList < QMemArray < double > > *gDT, QValueVector < QString > *gDTS ) { MReportSection * footer = findDetailFooter( level ); MReportSection * header = findDetailHeader( level ); if ( footer ) { QDomNode record = records.item( currRecord_ ); if ( !footer->mustBeDrawed( &record ) ) return ; footer->setPageNumber( currPage ); footer->setReportDate( currDate ); if (( currY + footer->getHeight() ) > currHeight ) newPage( pages ); if ( gDT ) footer->setCalcFieldData( gDT, gDTS, &record ); if ( header ) footer->drawHeaderObjects( p, pages, header ); int sectionHeight = footer->getHeight(); if ( footer->placeAtBottom() ) footer->draw( p, leftMargin, ( pageHeight - bottomMargin - pFooter->getHeight() ) - footer->getHeight(), sectionHeight ); else footer->draw( p, leftMargin, currY, sectionHeight ); currY += sectionHeight; } }
// Draws de add-on footer void MReportEngine::drawAddOnFooter(MPageCollection *pages, int level, QPtrList<QMemArray<double> > *gDT, QValueVector<QString> *gDTS) { MReportSection *footer = findAddOnFooter(level); if (footer) { QDomNode record = records.item(currRecord_); if (!footer->mustBeDrawed(&record)) return; footer->setPageNumber(currPage); footer->setReportDate(currDate); QString value; QDomNamedNodeMap fields = record.attributes(); for (int i = 0; i < footer->getFieldCount(); i++) { value = fields.namedItem(footer->getFieldName(i)).nodeValue(); footer->setFieldData(i, value, &record, fillRecords_); } if (gDT && level > -1) footer->setCalcFieldData(gDT, gDTS, &record, fillRecords_); footer->setCalcFieldDataGT(grandTotal); int sectionHeight = footer->getHeight(); if (footer->placeAtBottom()) { footer->draw(p, leftMargin, (pageHeight - bottomMargin - pFooter->getHeight()) - footer->getHeight(), sectionHeight); } else footer->draw(p, leftMargin, currY, sectionHeight); currY += sectionHeight; } }