コード例 #1
0
//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;
  }
}
コード例 #2
0
ファイル: mreportengine.cpp プロジェクト: afibanez/eneboo
// 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;
  }
}