Changeset View
Changeset View
Standalone View
Standalone View
kexi/plugins/reports/kexireportview.cpp
Context not available. | |||||
55 | #include "../scripting/kexiscripting/kexiscriptadaptor.h" | 55 | #include "../scripting/kexiscripting/kexiscriptadaptor.h" | ||
---|---|---|---|---|---|
56 | 56 | | |||
57 | KexiReportView::KexiReportView(QWidget *parent) | 57 | KexiReportView::KexiReportView(QWidget *parent) | ||
58 | : KexiView(parent), m_preRenderer(0), m_reportDocument(0), m_currentPage(0), m_pageCount(0), m_kexi(0), m_functions(0) | 58 | : KexiView(parent), m_preRenderer(0), m_currentPage(0), m_pageCount(0), m_kexi(0), m_functions(0) | ||
59 | { | 59 | { | ||
60 | setObjectName("KexiReportDesigner_DataView"); | 60 | setObjectName("KexiReportDesigner_DataView"); | ||
61 | 61 | | |||
Context not available. | |||||
177 | delete m_preRenderer; | 177 | delete m_preRenderer; | ||
178 | delete m_kexi; | 178 | delete m_kexi; | ||
179 | delete m_functions; | 179 | delete m_functions; | ||
180 | delete m_reportDocument; | | |||
181 | } | 180 | } | ||
182 | 181 | | |||
183 | void KexiReportView::slotPrintReport() | 182 | void KexiReportView::slotPrintReport() | ||
Context not available. | |||||
193 | cxt.printer = &printer; | 192 | cxt.printer = &printer; | ||
194 | cxt.painter = &painter; | 193 | cxt.painter = &painter; | ||
195 | 194 | | |||
196 | renderer->render(cxt, m_reportDocument); | 195 | renderer->render(cxt, m_preRenderer->document()); | ||
197 | } | 196 | } | ||
198 | delete dialog; | 197 | delete dialog; | ||
199 | delete renderer; | 198 | delete renderer; | ||
Context not available. | |||||
223 | painter.begin(&printer); | 222 | painter.begin(&printer); | ||
224 | cxt.printer = &printer; | 223 | cxt.printer = &printer; | ||
225 | cxt.painter = &painter; | 224 | cxt.painter = &painter; | ||
226 | if (!renderer->render(cxt, m_reportDocument)) { | 225 | if (!renderer->render(cxt, m_preRenderer->document())) { | ||
227 | KMessageBox::error(this, | 226 | KMessageBox::error(this, | ||
228 | i18n("Exporting the report as PDF to %1 failed.", cxt.destinationUrl.prettyUrl()), | 227 | i18n("Exporting the report as PDF to %1 failed.", cxt.destinationUrl.prettyUrl()), | ||
229 | i18n("Export Failed")); | 228 | i18n("Export Failed")); | ||
Context not available. | |||||
299 | return; | 298 | return; | ||
300 | } | 299 | } | ||
301 | 300 | | |||
302 | if (!renderer->render(cxt, m_reportDocument)) { | 301 | if (!renderer->render(cxt, m_preRenderer->document())) { | ||
303 | KMessageBox::error(this, | 302 | KMessageBox::error(this, | ||
304 | i18n("Failed to export the report as spreadsheet to %1.", cxt.destinationUrl.prettyUrl()), | 303 | i18n("Failed to export the report as spreadsheet to %1.", cxt.destinationUrl.prettyUrl()), | ||
305 | i18n("Export Failed")); | 304 | i18n("Export Failed")); | ||
Context not available. | |||||
325 | return; | 324 | return; | ||
326 | } | 325 | } | ||
327 | 326 | | |||
328 | if (!renderer->render(cxt, m_reportDocument)) { | 327 | if (!renderer->render(cxt, m_preRenderer->document())) { | ||
329 | KMessageBox::error(this, | 328 | KMessageBox::error(this, | ||
330 | i18n("Exporting the report as text document to %1 failed.", cxt.destinationUrl.prettyUrl()), | 329 | i18n("Exporting the report as text document to %1 failed.", cxt.destinationUrl.prettyUrl()), | ||
331 | i18n("Export Failed")); | 330 | i18n("Export Failed")); | ||
Context not available. | |||||
366 | renderer = m_factory.createInstance("htmltable"); | 365 | renderer = m_factory.createInstance("htmltable"); | ||
367 | } | 366 | } | ||
368 | 367 | | |||
369 | if (!renderer->render(cxt, m_reportDocument)) { | 368 | if (!renderer->render(cxt, m_preRenderer->document())) { | ||
370 | KMessageBox::error(this, | 369 | KMessageBox::error(this, | ||
371 | i18n("Exporting the report as web page to %1 failed.", cxt.destinationUrl.prettyUrl()), | 370 | i18n("Exporting the report as web page to %1 failed.", cxt.destinationUrl.prettyUrl()), | ||
372 | i18n("Export Failed")); | 371 | i18n("Export Failed")); | ||
Context not available. | |||||
388 | Q_UNUSED(mode); | 387 | Q_UNUSED(mode); | ||
389 | 388 | | |||
390 | if (tempData()->reportSchemaChangedInPreviousView) { | 389 | if (tempData()->reportSchemaChangedInPreviousView) { | ||
390 | tempData()->reportSchemaChangedInPreviousView = false; | ||||
391 | | ||||
391 | kDebug() << "Schema changed"; | 392 | kDebug() << "Schema changed"; | ||
392 | delete m_preRenderer; | 393 | delete m_preRenderer; | ||
393 | 394 | | |||
Context not available. | |||||
399 | reportData = sourceData(tempData()->connectionDefinition); | 400 | reportData = sourceData(tempData()->connectionDefinition); | ||
400 | } | 401 | } | ||
401 | if (!reportData) { | 402 | if (!reportData) { | ||
402 | reportData = new KexiDBReportData(QString(), KexiMainWindowIface::global()->project()->dbConnection()); | 403 | reportData = new KexiDBReportData(QString(), KexiMainWindowIface::global()->project()->dbConnection(), this); | ||
403 | } | 404 | } | ||
404 | m_preRenderer->setSourceData(reportData); | 405 | m_preRenderer->setSourceData(reportData); | ||
405 | 406 | | |||
Context not available. | |||||
419 | m_preRenderer->registerScriptObject(m_functions, "field"); | 420 | m_preRenderer->registerScriptObject(m_functions, "field"); | ||
420 | } | 421 | } | ||
421 | 422 | | |||
422 | delete m_reportDocument; // prev document | 423 | if (!m_preRenderer->generateDocument()) { | ||
423 | m_reportDocument = m_preRenderer->generate(); | 424 | return false; | ||
424 | if (m_reportDocument) { | 425 | } | ||
425 | m_pageCount = m_reportDocument->pages(); | 426 | m_pageCount = m_preRenderer->document()->pages(); | ||
426 | #ifndef KEXI_MOBILE | 427 | #ifndef KEXI_MOBILE | ||
427 | m_pageSelector->setRecordCount(m_pageCount); | 428 | m_pageSelector->setRecordCount(m_pageCount); | ||
428 | m_pageSelector->setCurrentRecordNumber(1); | 429 | m_pageSelector->setCurrentRecordNumber(1); | ||
429 | #endif | 430 | #endif | ||
430 | } | 431 | m_reportPage = new KoReportPage(this, m_preRenderer->document()); | ||
431 | | ||||
432 | m_reportPage = new KoReportPage(this, m_reportDocument); | | |||
433 | m_reportPage->setObjectName("KexiReportPage"); | 432 | m_reportPage->setObjectName("KexiReportPage"); | ||
434 | 433 | | |||
435 | m_reportScene->setSceneRect(0,0,m_reportPage->rect().width() + 40, m_reportPage->rect().height() + 40); | 434 | m_reportScene->setSceneRect(0,0,m_reportPage->rect().width() + 40, m_reportPage->rect().height() + 40); | ||
436 | m_reportScene->addItem(m_reportPage); | 435 | m_reportScene->addItem(m_reportPage); | ||
437 | m_reportPage->setPos(20,20); | 436 | m_reportPage->setPos(20,20); | ||
438 | m_reportView->centerOn(0,0); | 437 | m_reportView->centerOn(0,0); | ||
439 | | ||||
440 | } else { | 438 | } else { | ||
441 | KMessageBox::error(this, i18n("Report schema appears to be invalid or corrupt"), i18n("Opening failed")); | 439 | KMessageBox::error(this, i18n("Report schema appears to be invalid or corrupt"), i18n("Opening failed")); | ||
442 | } | 440 | } | ||
443 | | ||||
444 | | ||||
445 | tempData()->reportSchemaChangedInPreviousView = false; | | |||
446 | } | 441 | } | ||
447 | return true; | 442 | return true; | ||
448 | } | 443 | } | ||
Context not available. | |||||
452 | KoReportData *kodata = 0; | 447 | KoReportData *kodata = 0; | ||
453 | 448 | | |||
454 | if (e.attribute("type") == "internal") { | 449 | if (e.attribute("type") == "internal") { | ||
455 | kodata = new KexiDBReportData(e.attribute("source"), KexiMainWindowIface::global()->project()->dbConnection()); | 450 | kodata = new KexiDBReportData(e.attribute("source"), | ||
451 | KexiMainWindowIface::global()->project()->dbConnection(), | ||||
452 | this); | ||||
456 | } | 453 | } | ||
457 | #ifndef KEXI_MOBILE | 454 | #ifndef KEXI_MOBILE | ||
458 | if (e.attribute("type") == "external") { | 455 | if (e.attribute("type") == "external") { | ||
Context not available. |