NCReport是一款輕量級、快速、多平臺、簡單易用的基於Qt toolkit的C++編寫的報表解決方案,目前主要包括報表渲染庫和報表設計器GUI應用程序。html
可是好多使用NCReport控件的朋友都不知道如何在Qt應用程序中使用,本文詳細的來講明一下。sql
1、添加NCReport庫到應用程序中。數據庫
在項目應用程序中使用NCReport,須要先將報表控件集成到應用程序中去,下面有兩種方式能夠採用:app
一、添加全部的靜態資源到你的項目中,並用你的應用程序一塊兒構建。在這種狀況下,你不須要NCReport分享的庫。打開你的.pro項目文件,並像testapp/testapp.pro作的添加所有的源包到項目中。函數
二、將NCReport做爲分享的庫使用。要在你的項目中將NCReport庫像其餘的庫同樣使用,你須要在你的項目文件中指定它們。ui
下面的項目示例中展現了一些必要的設置: 複製代碼設計
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 }unix
複製代碼xml
2、初始化NCReport類htm
本步驟中主要是說明如何初始化NCReport類。 首先須要添加includes.來包含模塊類定義,可使用下面的代碼實現:
#include "ncreport.h" #include "ncreportoutput.h" #include "ncreportpreviewoutput.h" #include "ncreportpreviewwindow.h"
建立NCReport類。能夠用下面的代碼建立一個相似於另外一個QObject基礎類的報表類:
NCReport report = new NCReport();
若是以前已經建立了NCReport對象,並傳遞了一個參數,這時初始化報表就須要調用reset()方法:
report->reset(); //or report->reset(true);
NCReport::reset()函數將會刪除全部的對象引用,並使得報表引擎能夠再次運行報表。若是參數設置爲true,那麼報表參數、添加的數據源好比QStringLists、自定義項目都將會被刪除。
3、設置報表源
報表源意思就是NCReport處理XML報表定義的方法。報表定義可能從文件打開,可是也能夠從一個SQL數據庫表導入,下面額示例就是提供了一個做爲報表源的文件:
report->setReportFile( fileName );
上面的這段代碼至關於下面的代碼:
report->setReportSource( NCReportSource::File ); report->reportSource()->setFileName( fileName );