| New Features |
|---|
| 1. | The RowNumber() function for dashboards. It returns the row number (1..N) of a row in the final sorted result. |
| 2. | The "Sankey" chart type in reports and dashboards. It shows the flows between categories as links whose width is proportional to the flow value. |
| 3. | The MS SQL data adapter based on the Microsoft.Data.SqlClient provider, which supports strict SQL Server encryption (Encrypt=Strict). It works only on .NET Framework. To use it, create a standard "MS SQL" connection, then select "Microsoft.Data.SqlClient" for the "MS SQL Data Adapter" option on the "Data" page of the report designer options, or set the StiOptions.Dictionary.UseMicrosoftDataSqlClient property to true. The report designer downloads the provider from NuGet. |
| 4. | A new property has been added to the report viewer and designer - AllowLoadingSystemFontsToClientSide. It sends fonts installed on the server to the client side, so reports are displayed with the correct fonts in the browser. |
| 5. | MonthYear, QuarterYear, WeekYear and DayMonthYear functions in reports and dashboards. They group data by the month, the quarter, the week or the day within the year, keeping the chronological order. |
| 6. | The PrimaryKey property has been added to the data columns in the data dictionary. The key columns are taken from the data source schema or from the Key attribute of business objects, shown with a key icon in the dictionary tree, and preselected when creating a relation in the report designer. |
| 7. | Added the "Markdown" component to reports. It renders Markdown text with headings, lists, tables, images, links and code blocks, breaks across pages, is exported to all formats, and has its own editor with color themes in the report designer. |
| 8. | Added the "Micro QR Code" barcode in reports. It supports versions M1-M4 with automatic version selection, numeric, alphanumeric and byte data and the error correction levels L, M and Q; by default the highest level that fits the data is selected. |
| 9. | The relations of the data dictionary are now created from the foreign keys of the database when retrieving columns from a SQL connection of any type: MS SQL, MySQL and MariaDB, PostgreSQL, Oracle, Firebird, SQLite, SQL CE, Access, Teradata, Snowflake, DuckDB, VistaDB, as well as the connections through ODBC and OLE DB. |
| 10. | Added a new GetLabels function for list variables requested from the user. It returns the labels of the selected items instead of their keys, so they can be used in queries and expressions, for example GetLabels("Cities").ToQueryString(); the short form Cities.Labels can be used as well. |
| Enhancements |
|---|
| 1. | Support for VistaDB 6 databases: the VistaDB connection now works through the VistaDB 6 provider, databases of VistaDB 5 are still opened, and the primary keys of the tables are retrieved. |
| 2. | The default value of the AllowLoadingCustomFontsToClientSide property in the Blazor report viewer has been changed to false, to match the default behavior on other platforms. |
| 3. | When exporting a report to OpenDocument Writer, hyperlinks of text components and images are now exported. |
| 4. | Retrieving the database schema of an Informix connection in the report designer, including tables, views, columns, stored procedures with parameters and relations. |
| 5. | When printing a report to PDF in the web viewer, the ImageResolutionMode export setting is now set to Auto by default, so images keep their original resolution. |
| 6. | Retrieving the database schema through an ODBC driver has been reworked: the primary keys and the relations are retrieved, and the system objects are no longer listed among the tables. |
| Fixed Bugs |
|---|
| 1. | No rows in the "View Data" window and in the report for the tables of a Teradata or VistaDB connection created from the database schema in the report designer. |
| 2. | Displaying and saving the value of the "Zip Code" component when a report is rendered in interpretation mode. |
| 3. | Hidden interlacing of a chart area was displayed again after saving a report to an *.mrt file or rendering it in compilation mode. |
| 4. | Applying a condition with an aggregate function when rendering a report in compilation mode might not work if the band is not explicitly specified for the aggregate function. |
| 5. | Filters of the DateTime and Boolean types on the Data band in reports with the VB script language rendered in interpretation mode. |
| 6. | Synchronizing the columns and the primary keys of the data sources of an OData V1-V3 connection with the "Synchronize" command of the data dictionary. These data sources were skipped: their columns were not updated, and a primary key unchecked in a column did not come back. |
| 7. | Retrieving the types of the columns which an ODBC driver names in its own way when reading the database schema: int4, float8 and timestamptz of PostgreSQL, DOUBLE PRECISION of Firebird, datetime2 and the identity columns of MS SQL. Such columns came as strings, the tables with a space in the name came without columns, and the relations of these tables and key columns were lost in the data dictionary. |
| 8. | The data sources added through an ODBC driver failed to build in a report when the name of a table, a view or a stored procedure contained a space or mixed-case letters, or when the table belonged to a schema: the names in the query were quoted the wrong way for the database, and the schema was added twice. |
| 9. | Displaying the views of an Oracle database in the "Select Data" form when connecting through the Devart provider. |
| 10. | Calculating a regular total, such as Sum, in the compilation mode on a page with columns when a column total, such as colSum, is used for the same data band. The regular total was reset on every column and showed the value of the last column only. |
| 11. | Processing line breaks in the expressions of the "Rich Text" component when a report is rendered in interpretation mode. The "
" and "par" sequences in string values were shown as text instead of a line break and a new paragraph. |
| 12. | Displaying a rotated text component with the AllowHtmlTags property enabled: the text was shifted outside a narrow cell or drawn without rotation, depending on the text engine. |
| 13. | Wrapping a one-character word that did not fit at the end of a line in a text component using the SixLabors library: the component did not grow to accommodate the extra line, and the last character was clipped. |
| 14. | Fixed an issue where hyperlinks of chart series did not open in the web viewer unless drill-down was enabled for the series. |
| 15. | When exporting a report to Word with the "Use Page Header and Footer" option enabled, the row height was calculated slightly incorrectly, so the last row on a page could move to the next page. |
| 16. | The height of the "Image" component was calculated incorrectly when the DockStyle and MinSize/MaxSize properties were used together. |
| 17. | The data type of the FLOAT and SMALLFLOAT columns of an Informix data source, FLOAT is now double precision and SMALLFLOAT is single precision. |
| 18. | Missing string columns in the schema of an OData V1-V3 connection in the report designer when the properties are marked as nullable in the service metadata. |
| 19. | Connecting to an IBM DB2 database with the installed IBM Data Server Driver in the report designer; the "DB2" connection is available again in the list of data sources. |
| 20. | Positioning of underline and strikeout lines for text drawn with synthesized fonts when exporting a report to PDF. |
| 21. | Losing the version of an OData connection when saving a report to an *.mrt file with JSON markup or previewing it in the report designer. A connection configured for OData V1-V3 was treated as V4, and the data source remained empty. |
| 22. | Saving the connection parameters of a Google Sheets data source when saving a report to an *.mrt file with JSON markup. |
| 23. | Saving the code page of a dBase data source when saving a report to an *.mrt file with JSON markup. |
| 24. | Displaying page numbers in the "Table of Contents" component when a report with a large number of pages is rendered with the ReportCacheMode property enabled. |
| 25. | Retrieving the database schema through the Oracle ODBC driver no longer crashes the report designer. The columns of the whole database were requested from the driver at once, and it brought the process down; now they are read schema by schema. |