NCReport Qt/C++ Report Generator

NCReport is a powerful, fast, multi-platform and easy to use report engine library, report generator, report designer, report writer, reporting tool and reporting solution written in C++ based on Qt cross-platform application and UI framework. NCReport is a great choice if you are looking for a Qt report engine, Qt report tool, Qt report library, Qt reporting tool, C++ reporting library for Qt or a Qt reporting library or simply a tool that generates PDF document from Qt using an XML template. NCReport is Qt5 and Qt4 compatible.

The system consists of two parts: Report rendering library and a report designer GUI application. The report engine can be used and implemented separately. Report template file format is XML format, the template can be loaded from file, string or sql database. The system is able to generate various types of outputs such as direct printer, internal preview window, postscript, PDF, SVG, Image, Text, HTML. The report designer makes very easy to create report XML definitions.

Download Evaluation VersionBuy a License

Key features

The most important features in a nutshell including but not limited to.

Designer GUI Application

ative GUI application for report design. The designer creates the report template file which works with the report engine. The report template format is XML.

Multiple Platforms

Runs natively on several platforms that are supported by Qt. Windows, Linux, MacOS, Solaris, Raspberry Pi, Embedded Linux systems. It provides a native look and feel on each platforms.

Data Sources

Several types of datasources: SQL database, Supported databases: MySQL, PosgreSQL, MS SQL, Oracle, Sybase, Firebird, SqLite, or any database that has connection driver for Qt. Implicit or explicit SQL database connection. Text, Static text, Text file, XML, QAbstractItemModel based object, QStringList, Custom data source class by subclassing the data source base class.

Several Output Formats

Native output formats: Screen preview, Printer, Postscript, PDF, SVG, JPEG, PNG, HTML, XLS/HTML. Includes a fast internal preview widget. With an additional text template we can produce any custom Text/Markup outputs.

Report element items

Text label, Field, HTML text, Line, Rectangle, Ellipse, Images, Barcode, Cross table, QTableView items. There is Custom item available for graphs or any QPainter based application generated contents.

Parameters for sending data

Applications can send QVariant data to the reports as parameter. Parameters can be used for direct rendering, in SQL commands, and in logical expressions and scripts. Parameters are useful for transfering dynamic images as well.

Detail and Group Sections

The reporting system is band oriented. Multiple details are supported in one report. Multi level of groups of detail section with group headers, footers, aggregate functions: SUM, COUNT, AVG, STD, MIN, MAX


Custom variables for aggregate functions, system variables for page numbering and report meta information


Images from static, file, data source and even http source. File name can also be loaded from data source.

Headers and Footers

Optional header and footer bands at report, page and group levels.

HTML Document Mode

We can create reports with type of complete Html document printing mode for printing multi-page rich text documents. This report mode is very useful for document oriented printing such as form letters, documents, long HTML texts. The usable html elements are limited to the subset of QTextDocument supported Html.


Barcode rendering with at least 50 types of available barcodes thanks to the Zint 3rd party barcode library. Barcode data can be feed from data sources. The barcode generetor is optionally linked as a 3rd party C library. (ZINT is developed by Robin Stuart)


There are many options to use script expressions in a report. The scripts are based on ECMA/JavaScript. The scripts can directly work in fields and texts or in logical conditions within the report. Report elements can show or hide by logical script contitions

Conditional Formatting

Conditional Field and Label formatting by a script condition. The format condition can dynamically change the foreground or backround colors, fonts

QTableView, QTreeView printing

One step printing of QTableView and QTreeView widgets. The printout follows the screen column width rates.

Cross Tables

Tables with row to column rotation. Optional pivot table generating. Multi row and multi page tables are supported.

Dynamic, data-driven position and size

Geometrical objects like rectangle, line, ellipse can change their position and size by data from data sources.

Native Qt4/Qt5/Qt6 Compatibility

The full source code keeps pure Qt4/Qt5 compatibility from Qt4.6 - Qt5.15. Since NCReport version 2.26 the compatibility has changed to Qt5.0 - Qt6.2