Meet new opportunities for your projects! Support for the SkiaSharp library has been added, checking the report template through a validator, an FRX format editor, converting reports from StimulSoft, improving exports with plugins, and much more.
FastReport.Core now supports graphics and text rendering using the SkiaSharp library which is used instead of System.Drawing.Common + libgdiplus on Linux systems (but also works on other operating systems).
For this, packages with the .Skia suffix are used:
This version has limited support for the .NET Framework and is mainly targeted at .NET Core/.NET projects. To use it in your application, just change the package name FastReport.Core -> FastReport.Core.Skia, and add the following packages to work on Linux (on Windows and macOS, the necessary packages are added automatically):
Read more about Skia support in the next article.
A "Validation" tab has been added to the report designer (on the right, next to the "Data" and "Report Tree" tabs). Here you can check the report template and get a list of errors and warnings.
All this is displayed in a table with the object name (if there is one) and error description. If you select a row in the table, the corresponding object will be highlighted in the designer.
Errors and warnings can be of the following types: unnamed objects, objects with the same name, overlapping objects, objects with zero height or width, and objects that are partially or completely outside the parent object.
Objects without names and objects with the same name are critical errors. They can lead to various errors and even crash the application while preparing a report. Besides, without a validator, these errors are very hard to find.
Intersecting objects is not a serious error. In some cases, they can be useful and used purposefully (e.g., lines or rectangles). Intersecting text objects, in most cases, can lead to incorrect exports. Especially in table exports, such as Excel. The export will result in a lot of extra cells, etc. It is necessary to be careful with such objects.
Objects partially exceeding parent object boundaries (e.g. band or page) can also be useful in rare situations. But in most cases, it causes errors in the preparation and export of the report.
Objects that are completely outside the parent one is a serious error. Finding such objects without a validator is also very hard.
Intersecting objects and objects outside the parent can now be highlighted in color (which you can choose) if the corresponding setting in menu File -> Options is enabled.
It is not necessary to use report validation. But it can be useful when your report doesn't work or look the way you want it to.
Read more about the report validator in the next article.
Sometimes it is necessary to edit the contents of the FRX file using third-party text editors. Now you can do this more conveniently, directly in the report designer. The FRX editor is added for this purpose. By default, it is disabled. You can enable it in the menu «File -> Options».
In the report designer, the FRX tab will appear to the left of the Code tab.
The changes made here, will be immediately applied to the report and displayed on its pages.
Read more about the FRX editor in the following article.
StimulSoft report converter
Added the ability to convert report templates from StimulSoft to FastReport .NET templates.
StimulSoft reports may contain implementation objects that are not supported by the FastReport designer. These objects will not be exported or will be replaced by others in such a way that the generated report is as similar as possible to the one created in StimulSoft. It is important to note that the import of cross-bands is implemented by moving their contents to the parent band.
Read more about converting reports in the article at the following link.
Copying dialog pages
Added the ability to copy dialog pages. Both using the context menu of the dialog page and using the «Report -> Copy Report Page» button.
Copying creates a copy of the dialog page with a unique name. All child objects will also have unique names. However, the event handlers of the objects will be the same as those of the original page. If necessary, you must create new handlers.
Also now dialog pages can be deleted not only with the «Report -> Delete Page» button, but also via the context menu in the form editor and report tree.
Disabling last formatting settings
When creating an object in the designer, its settings will be applied to the next created object of the same type.
For example, if you create a text object, set its font size, borders, fill color, the next text object will be created with the same settings.
This is useful when you need to create several objects with the same or similar settings.
In situations when you don't need this designer behavior you can disable it in «File -> Options».
This will create objects with default settings.
Export all tabs
When viewing interactive reports, you can open detailed reports in new tabs.
You can see three open tabs here. Previously, only the active tab was exported. Now you can export all tabs to one file using the new "Export all tabs" option.
Detailed description of referenced assemblies and installed plugins
Now when you hover your mouse over a dll in the plugins list (File -> Options -> Plugins) and in the list of links to builds- (Report -> Options -> Script), detailed information with description, version, size, creation date, etc. is displayed.
PDF export improvements:
- support for complex languages (Arabic, Hebrew etc.) in Skia version;
- support for Font Fallback (automatic font selection mechanism for displaying characters that are not supported by the current font);
- accurate positioning of special characters such as vowels and accents.
UseFileStream property in PDF export
A new UseFileStream option has been added for PDF export. It can only be used when exporting from code to file. This option is useful when exporting reports with a large number of pages (several tens of thousands) in multiple threads. It allows you to avoid memory shortage errors. In other cases, it does not make much sense to use it. Example:
Export of locale in Word, PowerPoint, Rich Text, OpenOffice Write and OpenOffice Calc exports
You can now select the language of the document in these exports. By default the language selected in the designer is used.
Also added option "Show Gridlines" when exporting to Excel 2007.
Complete list of changes
+ added a report converter from StimulSoft;
+ added changing name of JSON data source in expressions when it's renamed;
+ added converting of PaperSize property when converting reports from StimulSoft;
+ added checking existence of referenced assembly when converting reports from StimulSoft;
+ added PrintOnParent property to Table and Matrix objects;
+ added loading of report parameters when converting reports from RDL;
+ added loading of subreports when converting reports from RDL;
+ optimized speed in reports containing large amount of objects;
+ added the feature to store JSON connection data using the StoreData property;
* changed exception text when calculating and formatting expression if e.InnerException is null;
* when loading RDL report, page width will be equal section width in case when there is no page width;
- fixed length calculation encoding DataMatrix C40 and text;
- handled System.ComponentModel.Win32Exception when printing with disabled "Print Manager";
- fixed hide border of picture when printing with auto size;
- fixed stack overflow error when prepare report with child band of page footer and then start new page option enabled for it;
- fixed a bug with not passing path of base report to current one in Unix OC;
- fixed a bug with creating subreport and page with the same name when converting reports from StimulSoft;
- fixed a bug with invalid names when converting reports from StimulSoft;
- fixed a bug with TotalPages in Page.VisibleExpression that causes an exception when double pass is disabled;
- fixed a bug when band can grow out of page;
- fixed a bug when objects can grow out of band or ContainerObject;
- fixed "back indent" feature in RTF translator;
- fixed line spacing for text converted from RichObject;
- fixed an error with ConnectionString property in JsonDataSourceConnectionStringBuilder class when value was without a request headers;
+ added the report validator that helps to find invalid objects (duplicate names, negative sizes, etc.);
+ added editor for RichObject.Text property;
+ added FRX editor in report designer;
+ added detailed description of referenced builds and installed plugins;
+ added the ability to copy dialog pages;
+ added the ability to delete dialog pages using the context menu;
+ added ability to disable using of last formatting options when creating objects;
+ added integration with FastReport.Id;
+ added call to online-documentation in the report designer;
+ added wizard for visualization of control identification signs;
+ added tooltip about right and bottom indents for guides and objects in designer;
+ added ability to select color of backlight intersecting objects in designer;
+ added possibility to connect bases of Access 2007;
* changed the look of ElasticSearch connection editor form;
* changed the text fields in CISWizardForm with units to text fields that only support numbers;
- fixed a bug leading to System.NullRefereceException when creating calculated column for sub-table JSON;
- fixed a bug leading to System.FormatException when drawing labels of maps;
- fixed a bug leading to the System.NullReferenceException when clicking the "Paste" button in the context menu of dialog pages;
- fixed a bug with scaling zoom controls of designer in HiDPI mode when run from old demo application;
- fixed opening form of save changes after save all report;
- fixed unscalable items in welcome window;
- fixed backlighting intersected charts;
- fixed exception on rename JSON table;
- fixed UpdateStatusBar in DialogWorkspace;
- fixed a bug with localization of "Account..." button in menu "File";
- fixed canceling selection of object if its properties are changed;
- fixed a bug when switching to the "Code" page did not occur after adding an event handler;
+ implemented export of all open tabs;
- fixed a bug leading to System.NullReferenceExteption when preparing report with RichObject on system without printers;
- fixed a bug in the MSChart object in HiDPI mode;
+ added language output when exporting to Word, PowerPoint, Rich Text, OpenOffice Write, and OpenOffice Calc;
+ added encryption of the password of the digital signature certificate in PDF-export when it is saved;
+ added option "Show gridlines" when exporting to Excel 2007;
+ added data types export to DBF;
+ added a new property to the SVG export PrefixStyle, which allows you to set a prefix for all styles inside the SVG export;
+ added option "Use locale formatting of data" when exporting to Excel 2007;
+ added PDFExport.UseFileStream property, which allows to export huge reports on systems with low amount of RAM without System.OutOfMemoryException;
* set UTF-8 as default encoding in DBF export;
- fixed incorrect scaling pictures in layered HTML-export when enabled high quality SVG and zoom more than 1;
- fixed a bug leading to System.IndexOutOfRangeException when exporting font without kerning to PDF;
- fixed a bug with scaling picture in layered HTML-export;
- fixed a bug leading to System.NullReferenceException when exporting report with empty page to Word 2007;
- fixed memory leak in PDF export with some CJK fonts;
- fixed a bug when SVG picture was not rotated to needed angle in HTML/Blazor export;
- fixed repeated rendering of table cell in SVG export;
- fixed incorrect pageStyle when printing from browser for table HTML export;
- fixed exception when export object with negative size in HTML export;
- fixed export to pdf if Compressed = false;
- fixed incorrect record of border-collapse property in table HTML-export;
- fixed a bug in Excel-export, when the fill in the output file did not change the first time;
- fixed export of watermark to PostScript;
- fixed error of font scale when export to PDF;
- fixed a bug where a text object with HtmlTags exported to RTF was not modified by the <br>, <sup>, <sub> tags;
* OnlineDesigner properties are moved to webReport.Designer with maintained backward compatibility;
- fixed a bug when event "CheckedChanged" handled by RadioButton was not performed;
- fixed incorrect scaling of Dialog components in Blazor;
- fixed a bug with incorrect font size in Excel export;
- fixed a bug in Blazor when font of text object with property TextRenderType = HtmlParagraph was always default;
- fixed incorrect search for public-methods in report script;
- fixed problem of creating a fontlist file on Azure;
- fixed behavior of WinForms components in Toolbox for Visual Studio (Design-Time);
- fixed incorrect launch of the browser when clicking on links in CoreWin;
- for FastReport.CoreWin, reports with a script that use the WinForms API have been fixed;
+ added the ability to change the localization of a new demo application without restarting it;
+ added demo on React with FastReport.Core;
- fixed position of one chart in Chart.frx;
+ implemented connection to Cassandra;
- updated RPTImportPlugin;
- added FastReport.Web (only for .NET Framework) and FastReport.VSDesign libraries for FastReport.Net* packages;
- added an option to import reports using streams;
- fixed incorrect version of FastReport.Compat in FastReport.Net packages.