Changelog
New features and fixes in every NCReport release. The latest version is 2.35.1, released 29 Jun 2026.
Fixed
- Replaced old-style signal/slot connections in many places
- Internal engine fixes and algorithm security fixes
- Version number is now defined in one location (info.h)
- Polish translation update
- Occasionally wrong page count in two-pass mode
- The Designer’s internal data mappers in settings dialogs were replaced with a custom solution for full macOS compatibility
- macOS deployment script
Added
- Preview dialog improvements (T112)
- Optional Zint temp file path (#116)
- Logo update
- Optional custom XML attributes in the Designer (#113)
Fixed
- Preview dialog fixes (T112)
- Label item translated labels (#115)
- Group page break (#117)
- Rounded rectangle item (#120)
- Save dialog on Debian Linux
- Test pass page end registration location (#116)
- Designer sub-window selection
- Minor file strategy update (#121)
- Designer message boxes did not work properly in some places (#122)
Added
- Updated old form classes in the Designer (T103)
- The Designer supports WASM mode, with new dialog management (T103)
- Dynamic report name for PDF (T110)
- Dynamic output base file name for PDF (T110)
- Markdown support in text document mode (T108)
Fixed
- Table item resolution (T111)
- Barcode generator temp file mode file path (T109)
- HTML text rendering in the old preview function (T107)
- Reports with grouping sometimes crashed the application (T106)
- Designer: private SQL connection was not saved on macOS (T105)
- Designer: item alignment issue when a line is included (T102)
- Other minor fixes and improvements
Added
- Data formatting callback function (#100)
Fixed
- Label printing bug (#101)
- Text item alignment problem (#99)
- HTML text rendering in the old preview (#98)
- A semicolon caused an issue in SQL queries (#97)
- Crash in the section director (#96)
- JS script fix and other fixes (#95)
- Other minor fixes
Added
- New preview system and preview dialog
- Barcode alignment
- Build configuration updates (config.pri)
- Demos are no longer compiled by default
The new preview dialog renders pages with a quality that exactly matches the PDF and printer output. To use it, call NCReport::runReportToModernPreview(QWidget* parent);. The function is modal: the application loop waits until the dialog is closed. The old preview function is still available.
The barcode item now supports full alignment options, like label items, and the alignment is saved in the report. Horizontal: left, center, right. Vertical: top, center, bottom.
The barcode and preview systems are now modules, enabled by default in config.pri: EXTENSIONS += designer runner consoleapp preview barcode
Fixed
- Minor internal fixes
Added
- Printer full-page mode can be set in the report
Fixed
- Documentation paragraph issues
- Minor performance improvement (section director management)
- Demos turned off in the default build
- Warning message removed for missing dynamic image files
- Other minor internal fixes
Fixed
- File descriptor leak in barcode rendering
- Designer: unsaved position change of report items
Added
- Smaller differences in the XML structure when the Designer saves a report template
- Improved PDF metadata options (title, XMP metadata)
- The JS engine is now the default script engine
Fixed
- Elided text mode now works correctly in high-resolution outputs
- QJS script engine limitations removed, evaluation function fixed
- Label/Field text options dialog
- Zint library: avoid a crash when the barcode color changes
- Other internal fixes
Added
- Optional Zint file mode, enabling Zint in special embedded environments (ARM systems)
- Designer: renewed “open report from database” feature
- Elide mode for labels and fields
- Optional use of the old printer output class for special printers (Qt 5 only)
Fixed
- Script expression evaluator in JSScript mode
- JSScript “print when” conditions
- Internal code fixes
Added
- Designer: selection markers are now circles
- Rotated text alignment support
- Correct handling of vertical texts
Fixed
- Rotated text positioning
- File name evaluation
- Qt 6 compatibility fixes
- Other minor fixes
Added
- Designer: default database connections
Fixed
- Text/label font size differences between outputs: preview and Designer are now much closer to the PDF output
- SQL syntax highlighting
- Other fixes
Added
- Barcode item: three Zint options for special barcode features
- Updated documentation (NCReportBook.pdf)
- All
qDebug()calls are now wrapped inNCREPORT_DEBUG_OUTPUT
The e-mail sending functions were removed in this release.
Fixed
- Updated graphics based on the old logo
- Other internal fixes
Added
- iOS compatibility improvements
Fixed
- Other minor internal fixes
Added
- Larger QR code support
- Custom QPrinter configuration with the
customizePrinter(QPrinter*)signal
Fixed
- Zint fixes
- Document name when printing
- Other fixes
Added
- Field: zero-value substitution string
- Programmable font size factor for the preview output (API)
- The Designer no longer produces unnecessary differences when saving a generated XML report template
Fixed
- Conditional formatting when using QJSEngine
- Print preview form font size on macOS
- Zint library with the VC2015 compiler
- Zint MSVC compiler issue
- Other internal fixes
Fixed
- Zint library compiler errors
- Other minor fixes
Added
- Zint library 2.12.0, used as a shared library back end
- Latest Zint barcode symbology support
- Native or fast barcode rendering mode
Fixed
- Additional Qt 4 compatibility fixes
- NCReportSection is now a plain class
- Other minor fixes
Fixed
- Qt 4 compatibility fixes
- SVG output path name
- Cross table crash
Added
- Programmable QLocale setting for number formatting, e.g.
m_report->reportDef()->setLocale(QLocale(QLocale::English, QLocale::UnitedKingdom)); - Currency printing based on QLocale (number format: C)
Fixed
- Qt 6: page size issue in QPdfWriter-based PDF printing
- MSVC compiler issue (version number)
- Version numbering reverted
- Minor internal project fixes
Added
- Qt 4 backward compatibility updates
- Parameter data source improvements
- Zint is compiled as a separate shared library (
-lzint/-lzintd) - Table view item: auto row height and fixed font size
- The debug library of the report engine was renamed from NCReportDebug to NCReportd
Fixed
- Qt 6 compatibility (page size identifiers)
- Table item fixes
- Version number handling
- Other minor internal fixes
Added
- Table item without a table view: print a QStandardItemModel without an item view
- Explicit directory paths for report files (data sources, templates, images) with application properties PATH0–PATH9, set via
qApp->setProperty("PATHx", dirPath); - Report Designer API improvements
- Polish translation (thanks to one of our Polish customers!)
Fixed
- Group header print lock when section auto height is applied
- SQL query failed if the statement ended with a semicolon
- Zint fixes
- Several internal fixes
Added
- Qt 6 compatibility (minor differences compared to Qt 5 may be noticed)
- Optional page break after printing an item (set in the item property dialog)
- Updated Polish translation
- Script function evaluation without <% %>
Fixed
- Justified fields/labels lost their alignment
- Several other internal fixes
Added
- QJSEngine as a member object in the evaluator
- Custom cell drawing in table items
- Progress signal in the table view item
Fixed
- Running a report with a group without a header suspended the program
- Rotated text item issue in the Designer
- Rotated barcode issue in the Designer
- Other internal fixes
Added
- Sub-sections for group headers: sub-details can belong to a group header
- A detail section can be repeated by a variable’s value
- Native Qt Markdown support with Qt 5.14 or later
Fixed
- Labels mode: page break problem when labels span more than one page
- Several minor internal fixes
Added
- Access to batch sub-reports
- Default value in the variable editor
- Dynamic date format
- Insert a unique page after every n pages
Fixed
- Several internal engine fixes
Get NCReport 2.35.1
Fully working evaluation packages for Windows, Linux, macOS, iOS and Raspberry Pi. The only limit is an evaluation label on printed pages.