//copyright : (C) 2002-2003 InfoSiAL S.L. //email : [email protected] void MReportViewer::setReportEngine(MReportEngine *r) { if (rptEngine == r) return; if (rptEngine) { disconnect(rptEngine, SIGNAL(destroyed()), this, SLOT(setReportEngine())); disconnect(rptEngine, SIGNAL(signalRenderStatus(int)), this, SLOT(slotRenderProgress(int))); disconnect(rptEngine, SIGNAL(preferedTemplate(const QString &)), this, SIGNAL(preferedTemplate(const QString &))); } rptEngine = r; if (rptEngine) { connect(rptEngine, SIGNAL(destroyed()), this, SLOT(setReportEngine())); connect(rptEngine, SIGNAL(signalRenderStatus(int)), this, SLOT(slotRenderProgress(int))); connect(rptEngine, SIGNAL(preferedTemplate(const QString &)), this, SIGNAL(preferedTemplate(const QString &))); } }
void FLReportViewer::setReportPages(FLReportPages *pgs) { setReportEngine(0); qry_ = 0; xmlData_ = QDomNode(); rptViewer_->setReportPages(pgs ? pgs->pageCollection() : 0); report = rptViewer_->reportPages(); }
void FLReportViewer::setReportEngine(FLReportEngine *r) { if (rptEngine_ == r) return; bool noSigDestroy = !(sender() && sender() == rptEngine_); if (rptEngine_) { disconnect(rptEngine_, SIGNAL(destroyed()), this, SLOT(setReportEngine())); if (noSigDestroy && rptEngine_->parent() == this) { rptEngine_->deleteLater(); rptEngine_ = 0; } } rptEngine_ = r; if (rptEngine_) { template_ = rptEngine_->rptNameTemplate(); qry_ = rptEngine_->rptQueryData(); if (rptEngine_->rptXmlTemplate()) xmlTemplate_ = *rptEngine_->rptXmlTemplate(); if (rptEngine_->rptXmlTemplate()) xmlData_ = *rptEngine_->rptXmlTemplate(); connect(rptEngine_, SIGNAL(destroyed()), this, SLOT(setReportEngine())); ledStyle->setDisabled(false); save_page_SVG->setDisabled(false); save_page_tpl_SVG->setDisabled(false); ledStyle->setDisabled(false); load_tpl_SVG->setDisabled(false); } else { ledStyle->setDisabled(true); save_page_SVG->setDisabled(true); save_page_tpl_SVG->setDisabled(true); ledStyle->setDisabled(true); load_tpl_SVG->setDisabled(true); } if (noSigDestroy) rptViewer_->setReportEngine(rptEngine_); }
void FLReportViewer::updateReport() { emit requestUpdateReport(); if (qry_ || !xmlData_.isNull()) { if (!rptEngine_) setReportEngine(new FLReportEngine(this)); setResolution(spnResolution->value()); setPixel(spnPixel->value()); if (!template_.isEmpty()) setReportTemplate(template_, styleName_); else setReportTemplate(xmlTemplate_, styleName_); if (qry_) setReportData(qry_); else setReportData(xmlData_); renderReport(0, 0, false, false); } updateDisplay(); }
FLReportViewer::FLReportViewer(QWidget *parent, const char *name, bool embedInParent, FLReportEngine *rptEngine) : FLWidgetReportViewer(parent, name, ((parent && embedInParent) ? 0 : (Qt::WStyle_Customize | Qt::WStyle_Maximize | Qt::WStyle_Title | Qt::WStyle_NormalBorder | Qt::WType_Dialog | Qt::WShowModal | Qt::WStyle_SysMenu))), loop(false), reportPrinted_(false), rptViewer_(0), rptEngine_(0), report(0), qry_(0), slotsPrintDisabled_(false), slotsExportDisabled_(false) { if (!name) QObject::setName("FLReportViewer"); embedInParent_ = (parent && embedInParent); if (embedInParent_) { autoClose_ = false; menubar->hide(); chkAutoClose->hide(); spnResolution->hide(); spnPixel->hide(); salir->setVisible(false); if (!parent->layout()) { QVBoxLayout *lay = new QVBoxLayout(parent); lay->addWidget(this); } else parent->layout()->add(this); } else { autoClose_ = FLUtil::readSettingEntry("rptViewer/autoClose", "false").toBool(); chkAutoClose->setChecked(autoClose_); } rptViewer_ = new MReportViewer(this); setReportEngine(rptEngine == 0 ? new FLReportEngine(this) : rptEngine); setFont(qApp->font()); setFocusPolicy(QWidget::StrongFocus); lePara->setText(FLUtil::readSettingEntry("email/to").toString()); leDe->setText(FLUtil::readSettingEntry("email/from").toString()); leMailServer->setText(FLUtil::readSettingEntry("email/mailserver").toString()); initCentralWidget_ = centralWidget(); smtpClient_ = new FLSmtpClient(this); connect(smtpClient_, SIGNAL(status(const QString &)), lblEstado, SLOT(setText(const QString &))); setCentralWidget(rptViewer_); frEMail->hide(); initCentralWidget_->hide(); if (!embedInParent_) { spnResolution->setValue(FLUtil::readSettingEntry("rptViewer/dpi", QVariant(rptViewer_->resolution()).toString()).toInt()); spnPixel->setValue(FLUtil::readSettingEntry("rptViewer/pixel", QString::number((double) rptEngine_->relDpi(), 'f', 2)).toDouble() * 10.); } report = rptViewer_->reportPages(); }