We are pleased to present you with the long-awaited update, in which we have given special attention to user experience and the software code quality. In this release, we tried to listen to the requests of our users. Starting from version 2023.3, we added the following: a new object—RFID tag, support for WebP images, asynchronous report viewing, the toolbar in the context menu, and much more. The changes are available for the following products:
- FastReport .NET,
- FastReport WPF,
- FastReport Mono,
- FastReport Desktop,
- FastCube .NET.
The new version includes a new object—an RFID tag. It enables the identification of goods and closely resembles a barcode, but unlike the barcode, it uses radio signals. This allows for scanning a large number of items in short time intervals.
The tag contains 4 data banks: a reserved bank for storing access and destruction passwords, an electronic product code bank, a tag identifier bank, and a user data bank. In the FastReport .NET product lineup, the RFID tag is represented as a report object. The tag can be customized using a user-friendly editor, accessed by double-clicking.
RFID tags can be created by some Zebra printers, therefore, in addition to the tag object itself, we implemented their export to ZPL. For correct export, the RFID tag must be in a single copy on the page.
There is now a plug-in that supports images in the WebP format. Now you can upload them into a PictureObject using the editor in the report designer and from code. FastReport.Skia supports WebP images without a plugin, but they are converted to PNG format when uploaded.
You can find details about the format and instructions for using the plugin in this article.
Now, you can launch a report preview in the designer window when using the designer in your application. Previously, the preview always started in a separate window. To do this, add the following line in your code:
Config.DesignerSettings.EmbeddedPreview = true;
It will look like this:
In some cases, such a mode can be more convenient.
We have also introduced asynchronous methods for report preparation and viewing: Report.PrepareAsync() and Report.ShowAsync(). They can be used when handling large reports. In that case, you can use the preview window while the report is being prepared. This way, the user will not have the impression that the application is frozen or unresponsive.
The context menu has been improved when right-clicking on an object. A toolbar appeared at the top, which contains frequently used items, such as edit, cut, copy, paste, etc.
The menu used to look like this:
The new menu has become more compact and ergonomic:
We have added the ability to upload prepared and exported reports to the Simple Storage Service (S3 for short). The new export is located in the "Storage" tab of the prepared report saving menu.
During the first export, you will need to enter registration data in the authorization window.
You can get the necessary keys in your S3 account settings. You can find more details in the service documentation.
After successful authorization, you will see an export window.
Here you can select the bucket to save, type, and file name. If you select a file type other than "Ready Report", then the settings for the corresponding export will become available.
The "Font" property is now available for "Barcode" objects. It allows you to set the font parameters used when displaying barcode texts. The default font is Arial, the same font used in previous versions. Now you can choose a different font, change its size, style, etc. As a result, you can create, for example, such barcodes:
However, you should be careful with font settings. Not all scanners may be able to read such barcodes.
Excel 2007 has several data formats, including two that are very similar: general and text.
General is the default. In most cases, numbers in this format appear as entered. But if the cell width is not enough to display the entire number, then it is rounded.
The text format always displays data as entered.
FastReport .NET also has several formats, for example, general, numeric, date, and many others. The appropriate format is selected during export, the numeric is converted to numeric, and the date remains a date.
The general format in FastReport .NET is also used by default. It displays the data exactly as it was entered. The general format is System.String. In turn, there is no separate text format in FastReport .NET.
Excel 2007 export has a new option that allows you to convert the FastReport .NET general format to Excel text format (general is exported as general by default).
Reports created in previous FastReport .NET versions will be exported in the same way in the new version since this option is disabled by default.
FastReport.Core, FastReport.Core.Skia and FastReport.CoreWin now enable partial compilation of a report to speed up its preparation if the report script has not been changed in the report and there are no objects that do not support partial compilation. You can enable it with the following command:
FastReport.Utils.Config.CompilerSettings.ReflectionEmitCompiler = true;
Enabling Reflection.Emit Compiler does not cause any performance degradation. If the new compiler cannot be used in the new report, it will simply use the standard procedure without harming the report.
Previously, you could only view reports opened in the browser using our FastReport.Blazor.Wasm library. This update added support for exports. Now users can export the resulting reports to various formats, just as is in regular WebReport.
Also, Reflection.Emit compilation accelerated the loading and preparation of reports without a script in WebAssembly.
Now you can create elements, such as buttons, dropdowns, and input fields, and add them to the toolbar. These elements can have various options, including images, titles, and styles. You can also implement logic using JavaScript and C#.
An example of adding custom elements to the toolbar:
var button = new ToolbarButton() { Title = "MyCustomButton", OnClickAction = new ElementClickAction() { OnClickAction = async (webreport) => { webreport.LocalizationFile = "MyLocalizationFile"; } }, }; var select = new ToolbarSelect() { Title = "MyCustomSelect", Items = new List<ToolbarSelectItem> { new ToolbarSelectItem() { Title = "MySelectItem", OnClickAction = new ElementScript() { Script = "console.log('My item is working')" } } } }; var input = new ToolbarInput() { InputType = "number", OnChangeAction = new ElementChangeAction() { OnChangeAction = async (webreport, inputValue) => { webreport.Report.Prepare(); webReport.Toolbar.Height = int.Parse(inputValue); } } }; webReport.Toolbar.InsertToolbarElement(button); webReport.Toolbar.InsertToolbarElement(select); webReport.Toolbar.InsertToolbarElement(input);
As a result, these customized elements will appear in your toolbar after changes:
[Engine]
+ added new RFIDLabel object;
+ added GS1 automatic formatting for GS1-128 barcode;
+ added loading tables in cells of other tables when converting RDL templates;
+ added Config.CompilerSettings.ReflectionEmitCompiler property, which, when enabled, speeds up report preparation if the script has not been changed (works only in .NET Core/.NET);
+ added the ability to configure barcode font using the new "Font" property;
* improved work with private font collections;
* demo version—5-page limit removed; the text is randomly replaced with "Demo version";
- fixed an infinite loop when calculating a parameter expression equal to this parameter;
- fixed the problem of reading the DataMatrix barcode by a mobile scanner;
- fixed a bug when line strikethroughs were incorrectly displayed during manual transfers;
- fixed the calculation of the shift of translated RichObject objects;
- fixed conversion of empty Variant to other types;
- fixed deletion of a column after which the column data remained in the report;
- fixed the work of the VisibleExpression property for matrix and table rows and columns;
- fixed deletion of fonts that are no longer present from the font_hash dictionary;
- fixed a bug with unsorted tab stops in RichObject;
- fixed a bug with parsing GSUB table leading to exception;
- fixed loss of stream stop when exporting to PDF with the "Text in curves" option, resulting in System.StackOverflowException;
- fixed a bug with loading object borders when converting RDL templates;
- fixed deletion of the first three characters in the GS1-128 barcode;
- fixed coding table for Code93 Extended barcode;
- fixed text encoding in DataMatrix barcode;
- fixed text rendering bug during word break due to lack of space;
- fixed RightToLeft text conversion when the ConvertRichText option is enabled;
- fixed line break in HtmlTextRenderer;
- fixed a bug when page columns were printed over band columns;
- fixed white highlighting of empty lines between text paragraphs and some paragraphs in RichObject when using fill;
- fixed selection of text parts with white color in RichObject with ConvertRichText = true;
- fixed ignoring ConnectionString if ConnectionStringExpression returned null;
- fixed indents of translated text objects from RichObject;
- fixed positioning of objects when translating RichObject;
- fixed import of tables from JasperReports;
- fixed System.NullReferenceException when clearing TableObject;
- fixed horizontal image alignment in RichObject when ConvertRichText = true;
- fixed System.NotImplementedException when the TextObject tab stop is negative;
- fixed null conversion if the expression contains a function;
- fixed System.ArgumentException when JSON data source host has an empty CharacterSet;
- fixed positioning of TableObject when translating RichObject;
[Designer]
+ added ability to take column names from the first row in Excel connection;
+ added categories for "Barcode" objects;
+ added Config.DesignerSettings.EmbeddedPreview property for report preview in the designer window;
+ added the "Other" category for dialog controls in the "Objects" panel;
+ added the ability to display the translated object in the Online Designer;
+ added the procedure selection page in the form of the data connection wizard;
+ added the toolbar to the context menu;
+ added the ability to use expressions in the "Payment amount" field in the SberbankQr editor;
+ added parsing of parameters from SQL query;
+ added a warning when the names of the request parameters match;
+ added a check for the existence of a file when it is changed in a CSV connection via the CsvFile property;
* changes in the "Query Builder" interface;
* updated "Data Connection Wizard." Improved interface, fixed bugs, and increased speed;
* change in the rendering of tooltips with coordinates/sizes in the designer;
- fixed the problem of connecting to CSV via URL;
- fixed a bug in the "Save as ..." operation for a file opened from the cloud;
- fixed the "Map" object in NET 6.0 (empty polygon labels);
- fixed error with reading values from the designer configuration file;
- fixed a bug when a new report page was created after double right-clicking on the "Code" tab;
- fixed an error after closing the preview window with empty values of numerical parameters;
- fixed a bug when the designer did not respond during the authorization process;
- fixed bugs in the Gauge object editors;
- fixed System.NullReferenceException when merging dictionaries that include parameter connections;
- fixed text highlighting in RichObject when using property ConvertRichText = true;
- fixed a bug with the order of formats when there are several expressions in a text object;
- fixed a scaling error in the designer settings window on the "Plugins" tab;
- fixed incorrect scaling of the data source selection form in Visual Studio;
- fixed incomplete display of pages with infinite width in the preview page adding;
- fixed a bug with password-protected report loading;
- fixed problems with scaling some controls;
- fixed a bug when fields are selected for unselected tables during connection editing;
- fixed a bug when all tables were selected during connection editing, even though only some of them were actually selected;
- fixed a System.IO.FileFormatException when using an incorrect XML report on the FRX page;
- fixed incorrect work of font settings in MSChartObject when the scale is more than 100%;
- fixed a bug when connecting a CSV database via URI;
- fixed a bug when running a report with MSChartObject and SparklineObject on a DataBand with the CanBreak property enabled;
- fixed problems with displaying SVG in the designer;
- fixed a bug with the font size in the "Report Tree" window;
- fixed the behavior of the "About" window when changing scaling;
- fixed ignored MSChartObject rendering if Title is missing;
[Preview]
- fixed text object horizontal alignment when AutoWidth = true;
- fixed problems with displaying SVG in preview;
[Exports]
+ added export to S3;
+ added export of page borders during image export;
+ added "Use page breaks" option in the form of HTML export;
+ added option to enable or disable adding bookmarks to each page when exporting to Word 2007;
+ added creating a new sheet when the number of lines approaches the maximum allowed on one Excel 2007 sheet;
+ added the "Convert general format to text" option in Excel 2007 export;
+ expansion of font names;
+ improved font packaging subsystem for PDF export;
* speeded up export to PDF;
* optimized export of interactive forms to PDF;
- fixed a bug when LineHeight was ignored when exporting using Skia;
- fixed multi-threaded export to PDF and private font collections;
- fixed loading of fonts with traditional Chinese characters;
- fixed kerning of right-to-left fonts when exporting to PDF;
- fixed a bug where fonts smaller than 10 were displayed incorrectly with the ConvertRichText property enabled when exporting to RTF;
- fixed kerning errors in PDF export;
- fixed a bug in PDF export in "Text in curves" mode at high monitor resolution;
- fixed a bug when a dark frame was drawn for some objects in PDF export;
- fixed export of font families registered in FastReport.Utils.FRPrivateFontCollection;
- fixed display of HTML <strike>, <sub> and <sup> tags when exporting to RTF;
- fixed a bug where the export of a report with pictures for Skia ended with an error;
- fixed export of footer objects to RTF and DOCX;
- now single-byte spaces do not disappear from the string after export to Excel 2007;
- added extra text breaks when exporting to CSV;
- fixed a bug with extra separators when exporting to CSV;
- fixed a bug when fonts were damaged during multi-threaded export to PDF;
- fixed a bug when hyphen characters were not processed when exporting to HTML;
- fixed incorrect work of hyperlinks in RichObject when exporting to PDF;
- fixed row height multiplier in RTF export;
- fixed double saving of report in Google Drive;
- fixed API call for saving reports in OneDrive;
- fixed problems with displaying SVG when exporting to PDF;
- fixed errors in the export tree;
- fixed export of text with HTML tags to Word 2007;
[WebReport]
+ added report shadow in WebReport;
+ added support for report export to Wasm;
* changed Toolbar behavior for one-page reports;
* changed the behavior of printing a report from a browser in WebReport. Now a print page closes automatically;
- fixed a bug when click events in WebReport did not work;
- fixed incorrect export to Word 2007 in web reports;
- fixed a bug where some report objects (for example, RichObject) might not be displayed in the Web designer;
- fixed a bug where a single-page report did not export if settings were used;
- fixed a bug when the report was not updated when the parameter was changed;
[.NET Core]
- fixed a bug when the InvariantGlobalization option was enabled;
[Demos]
* changed the script in the "Sort Group By Total" template for the correct work of the report and display of totals when using the "Can grow" and "Can shrink" properties of the "Group Footer" band;
[Extras]
+ added export of page borders when exporting with PDFSimpleExport;
+ added the ability to connect to MariaDB using the MySqlConnection plugin;
+ added .db format to the file filter for connecting SQLite;
+ added a plugin with support for images in WebP format;
* RPTImportPlugin updated to .NET Framework 4.7.2;
- fixed a bug resulting in System.IO.FileLoadException when connecting to ClickHouse and MongoDB;
- fixed the data source selection form, which did not open in the foreground.