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.
Skia support:
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:
FastReport.Core.Skia
FastReport.Web.Skia
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):
SkiaSharp.NativeAssets.Linux
HarfBuzzSharp.NativeAssets.Linux
Read more about Skia support in the next article.
Report validator:
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.
FRX Editor
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.
Exports improvements
PDF export improvements:
Linux version:
support for complex languages (Arabic, Hebrew etc.) in Skia version;
All 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:
Report report = new Report();
PDFExport export = new PDFExport();
export.UseFileStream = true;
report.Export(export, "report.pdf");
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
[Engine]
+ 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;
[Designer]
+ 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;
[Preview]
+ 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;
[Exports]
+ 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;
[WebReport]
* 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;
[.NET Core]
- fixed incorrect search for public-methods in report script;
- fixed problem of creating a fontlist file on Azure;
[CoreWin]
- 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;
[Demos]
+ 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;
[Plugins]
+ implemented connection to Cassandra;
- updated RPTImportPlugin;
[Extras]
- added FastReport.Web (only for .NET Framework) and FastReport.VSDesign libraries for FastReport.Net* packages;
- added an option to import reports using streams;
[Service]
- fixed incorrect version of FastReport.Compat in FastReport.Net packages.
If you are making business software that has to be cross-platform or just run on Linux systems or native operating systems (among which there is also Linux), you will eventually need to create and output electronic documents for printing or export to some format (PDF, office, HTML, etc.). And FastReport VCL will come to the rescue with all of this.
There is now a trial version of FastReport for Lazarus which will help you become familiar with all functions of the product before getting the full version. Previously, we could only issue compiled demo projects. A comparison of editions for Lazarus is available here.
FastReport VCL for Lazarus has now become an independent cross-platform solution. Registered users can now install FastReport for Lazarus directly on Linux using DEB or RPM. Read more about installation in this article.
20% discount on Professional and Enterprise editions of the FastReport VCL report generator.
From August 15 to September 15 get the powerful Delphi report generator FastReport VCL of Professional and Enterprise editions almost at the price of the Standard.
However, unlike the Standard Edition, you will also get:
✓ Visual SQL builder
✓ Source Code
✓ Lazarus support
✓ Linux support and much more.
This is a great opportunity to save money while getting much broader functionality.
Compare editions and choose the most suitable one here.
To take advantage of the offer, click on the following link.
With FastReport VCL 2022.2.8 version new MS Outlook and Gmail transports, an improved script code editor and several changes in objects for Lazarus will become available to you.
New objects in interactive forms
Interactive PDF forms can now be enhanced with new Combobox and Listbox objects. This will make it easier for you to work with interactive PDF documents for creating questionnaires and surveys.
New transports
There are new transports for accessing MS Outlook and Gmail mailboxes via the Webmail API.
Transports can send and receive reports, as well as receive the result in the form of exported documents. See how to use MS Outlook and Gmail from FastReport VCL.
Improved script code editor
Quick commenting of code blocks using the hotkeys “Ctrl + /”.
Quick addition of viewable variables (context menu and hotkeys).
New pop-up tips and step-by-step debugging modes “Step over” and “Run until return”.
Object changes
The TfrxHtmlView object can now also be used in Lazarus. We’ve also added support for output from left to right with the processing of the dir="rtl" parameter.
The new ClearEmptyLines property of the Text object enables to delete empty lines in the object. Combined with the CanShrink and ShiftAlways property, this allows to collapse objects with empty values, shifting up the entire tree of the bottom objects.
The update with new transports is available now to all users with a current subscription.
Instructions for switching from the old version to the new one for FastReport VCL are available at the following link.
FastReport .NET won bronze in the Reader's Choice Awards by Visual Studio Magazine!
Our reporting engine for .NET received the 3rd place in the "Reporting, Analysis and Visualization" nomination.
We are happy to share the stand with Devexpress and SAP Crystal Reports. Thank you for choosing us!
FastReport Online Designer 2022.1 version cаme up with many new objects and features that will significantly speed up the process of creating and optimizing your reports.
New objects
New "Polyline" and "Polygon" objects have been added:
Most often polylines are used to construct logos or other shapes of flowing lines.
The "Polyline" object allows you to build a curve by given points:
The gray lines in the image help you see how the object will look after adding a new point.
You can add new points to an already created polyline:
To stop adding points, press Escape.
Lines can be curvatured:
The "Polygon" object allows you to build a figure by given points:
You can change the number of corners in an already created polygon by adding new points:
Polygon edges can be curvatured:
Also, you can build a polygon with preset points:
New object "Advanced Matrix" has been added:
Note: The component is in the works to improve user experience and fix bugs.
This object is similar to the advanced matrix in the desktop version of the designer. It allows you to build summary reports. You can find it in the objects panel:
Data is transferred to the matrix using drag-and-drop:
You can set the total in the header cell:
Cells can be highlighted:
In order to go to the header cell editing window, you need to double-click on it. You can give an expression to the header cell manually:
You can also set the display text for the header cell:
Header cells can be sorted:
You can set a filter condition in the header cell:
The header cell get Top N grouping:
You can change the visibility of the header cell manually, or using a condition:
Also, you can change the display properties:
For example, this matrix template:
Will generate the following report:
New opportunities
Now you can collapse and expand the panel with report pages
Collapsing and expanding is done by clicking the button on the panel:
Now you can select a nested data source
For example, a JSON structure has a collection. It was not possible to use it as a data source before. Collections are now defined as the data source:
The ability to sort data sources alphabetically has been added:
This саn be done using the sort button:
The ability to collapse and expand all data sources has been added:
In order to expand data sources, click on the "+" button. Click on the "-" button to collapse data sources.
Search in the report tree has been added
In order to find the necessary element in the report tree, you can use the search field on the "Report tree" tab and enter the name of the component:
Now it is possible to add object properties to favorites
In order to add the desired property to "Favorites", you can right-click on it on the properties panel and select the appropriate item:
After that, the selected properties will be marked as favorites:
Each object type can have its own set of favorite properties. Each set of favorite properties is saved for later use in other report templates.
Report template AutoSave feature has been available
Now the report template is automatically saved every two minutes. Now you can’t set the save interval, but this functionality will be available in the future.
The modal report preview window has been replaced with a separate tab
Resizing of the report code editor window has been available
Now the field with the report code automatically changes height, depending on the number of rows:
Full list of changes 2022.1
--------------
+ Polyline object has been added;
+ Polygon object has been added;
+ AdvMatrix object has been added (the desktop version of the designer is not fully developed);
+ Automatic saving of the report template has been added;
+ The ability to use nested data sources has been added;
+ A separate tab for previewing the report has been added;
+ The ability to collapse or expand the panel with report pages has been added;
+ Automatic change in the height of the code editor window;
+ Button for sorting data sources has been added;
+ Buttons to collapse and expand data sources have been added;
+ Search in the report tree has been added;
+ The ability to add properties to "Favorites" has been added;
- Pasting of objects after copying or cutting has been fixed;
* Localization has been improved;
* Some other optimizations.