原創(chuàng)|使用教程|編輯:龔雪|2013-12-05 15:02:27.000|閱讀 4439 次
概述:NCReport是一款輕量級、快速、多平臺、簡單易用的基于Qt toolkit的C++編寫的報表解決方案,目前主要包括報表渲染庫和報表設計器GUI應用程序。但是好多使用NCReport控件的朋友都不知道如何在Qt應用程序中使用,本文詳細的來說明一下。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
NCReport是一款輕量級、快速、多平臺、簡單易用的基于Qt toolkit的C++編寫的報表解決方案,目前主要包括報表渲染庫和報表設計器GUI應用程序。
但是好多使用NCReport控件的朋友都不知道如何在Qt應用程序中使用,本文詳細的來說明一下。
一、添加NCReport庫到應用程序中。
在項目應用程序中使用NCReport,需要先將報表控件集成到應用程序中去,下面有兩種方式可以采用:
1、添加所有的靜態(tài)資源到你的項目中,并用你的應用程序一起構建。在這種情況下,你不需要NCReport分享的庫。打開你的.pro項目文件,并像testapp/testapp.pro做的添加全部的源包到項目中。
2、將NCReport作為分享的庫使用。要在你的項目中將NCReport庫像其他的庫一樣使用,你需要在你的項目文件中指定它們。
下面的項目示例中展示了一些必要的設置:
QT = xml sql gui core TEMPLATE = app CONFIG += warn_on \ qt \ thread \ release TARGET = MyApplication INCLUDEPATH = ../ncreport/includes HEADERS += ... SOURCES += ... win32 { LIBS += ../lib/ncreport2.lib } unix { LIBS += -lncreport -L../lib -L/usr/local/bin target.path = /usr/local/bin }
二、初始化NCReport類
本步驟中主要是說明如何初始化NCReport類。 首先需要添加includes.來包含模塊類定義,可以使用下面的代碼實現(xiàn):
#include "ncreport.h" #include "ncreportoutput.h" #include "ncreportpreviewoutput.h" #include "ncreportpreviewwindow.h"
創(chuàng)建NCReport類。可以用下面的代碼創(chuàng)建一個類似于另一個QObject基礎類的報表類:
NCReport report = new NCReport();
如果之前已經(jīng)創(chuàng)建了NCReport對象,并傳遞了一個參數(shù),這時初始化報表就需要調(diào)用reset()方法:
report->reset(); //or report->reset(true);
NCReport::reset()函數(shù)將會刪除所有的對象引用,并使得報表引擎可以再次運行報表。如果參數(shù)設置為true,那么報表參數(shù)、添加的數(shù)據(jù)源比如QStringLists、自定義項目都將會被刪除。
三、設置報表源
報表源意思就是NCReport處理XML報表定義的方法。報表定義可能從文件打開,但是也可以從一個SQL數(shù)據(jù)庫表導入,下面額示例就是提供了一個作為報表源的文件:
report->setReportFile( fileName );
上面的這段代碼相當于下面的代碼:
report->setReportSource( NCReportSource::File ); report->reportSource()->setFileName( fileName );
四、添加參數(shù)
使用addParameter方法可以添加參數(shù)到NCReport中,這個參數(shù)的ID是一個字符串,值是一個QVariant對象。
report->addParameter( "id", QVariant("value") );
上面的這段代碼相當于下面的這段代碼:
report->addParameter( "paramID", "Parameter value" );
五、運行報表
現(xiàn)在就可以運行報表為不同的輸出。
將報表運行為打印:
report->runReportToPrinter();
將報表運行為PDF:
QString fileName("mypdffile.pdf"); report->runReportToPDF( fileName );
將報表運行為打印預覽:
report->runReportToPreview();
如果你運行報表為預覽,結果將會用一個NCReportPreviewOutput對象保存,報表引擎不會自動運行預覽,在報表引擎成功實現(xiàn)之后,我們需要初始化一個NCReportPreviewWindow對象用于預覽。但是在做之前需要檢查,報表是否發(fā)生作為錯誤。
if ( !report->hasError() ) { NCReportPreviewWindow pv = new NCReportPreviewWindow(); * pv->setOutput( (NCReportPreviewOutput )report->output() ); * pv->setWindowModality( Qt::ApplicationModal ); pv->setAttribute( Qt::WA_DeleteOnClose ); pv->show(); } else { QMessageBox::warning( tr("Error"); }
使用NCReport::output()函數(shù)得到當前的輸出:
六、錯誤處理
可以使用下面的函數(shù)來捕捉錯誤:
bool error = report->hasError(); QString errormsg = report->;lastErrorMsg();
七、刪除報表對象
在報表運行操作之后,就可以刪除報表對象了,當NCReport刪除之后,所有的子對象也都將會被刪除:
delete report;
>>>NCReport免費下載
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件