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.
The most important features in a nutshell including but not limited to.
Designer GUI Application
Native GUI application for report design. The designer creates the report template file which works with the report engine. The report template format is XML.
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.
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 any data sources. The barcode generetor works with an external C based command line application.
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.
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 Compatibility
The full source code keeps pure Qt4/Qt5 compatibility from Qt4.6 - Qt5.7