Types of solutions

Universal solutions

A set of tools and components for data visualization, analysis, collection, and presentation, with which you can create, print, and export any documents.

Report generators for .NET

Sets of components that streamline and automate the process of creating reports and documents for various technologies.

Report generators for Delphi/Pascal

Sets of components that streamline and automate the process of creating reports and documents for various technologies.

Service solutions

Ready-made services and client-server systems for fast data visualization and automatic execution of information processing tasks.


May 27, 2024

Upgrading cloud services to version 2024.2

  In the new version of FastReport Cloud and FastReport Corporate Server, we have worked on quality, fixed bugs, and added some new features.   Bulk copying and moving API methods that allow for copying and moving multiple files and folders at once are added. Previously, one had to make multiple queries to copy each file. Now one query is enough. This saves network resources and makes copying faster and more convenient. /api/rp/v1/Templates/{subscriptionId}/CopyFiles /api/rp/v1/Templates/{subscriptionId}/MoveFiles   /api/rp/v1/Reports/{subscriptionId}/CopyFiles /api/rp/v1/Reports/{subscriptionId}/MoveFiles   /api/rp/v1/Exports/{subscriptionId}/CopyFiles /api/rp/v1/Exports/{subscriptionId}/MoveFiles An example of a template copy query: { "$t":"SelectedFilesVM", "isAllSelected":false, "folderId":"634fe7eeaa878f1c59e142367", "searchPattern":"", "useRegex":false, "files":["63d786bdfa2304a349d42f9c","62c75affbd78354cc1dabff5"], "folders":[], "path":"66d38a32fa1b7824ee1fd036", "isBin":false }   Alternative method of uploading files to the cloud An optimized method for uploading templates (/api/rp/v2/Templates/Folder/{id}/File) and reports (/api/rp/v2/Reports/Folder/{id}/File) has been added. The new method, unlike the first version, accepts a binary file and thus saves resources. The v1 download methods are marked as obsolete and are not recommended for use. The method of changing the content of already loaded templates is also updated: /api/rp/v2/Templates/File/{id}/Content.   RichText preview in Online Designer Starting with the current version of FastReport Cloud, Online Designer supports the ability to preview RichText objects.   Style templates for ChartObject in Online Designer You can now select preset style templates when editing charts.   Ability to share files via a link We have added functionality that allows for sharing any files via a link. Previously, it was possible to open access to the file to any anonymous users. Access can now be restricted with a key added to the link. To use the access key, it is enough to pass the accessKey parameter, equal to the value of the Key field of the key, with the query. In this case, the user (even an anonymous one) will receive all the rights that this key grants for the time of the query.   Editing a user’s avatar Added a button to change the user avatar and a default image in case the avatar is unavailable.   New Recycle Bin for deleting files A new page with a Recycle Bin for deleting files has been added. The button to go to the Recycle Bin is placed on the sidebar. The ability to clear sections with templates, reports, and exports at the same time has been added.   The page for working with Tasks has been improved Creation of a report preparation task has been added: Creation of a report export task has been added: The task of saving via FTP has been added: The task of sending files via webhook has been added:   Workspace tags in the admin panel for FastReport Corporate Server Workspace tags for easier searching have been added. For example, when administering a Corporate Server, workspaces for the organization’s employees and customers are created. You can use tags to tag your workspaces and exclude them when searching for client spaces.   Full list of changes [Backend]+ added entity name to worker audit;+ added bulk copy and move files and folders;+ added alternative method to upload reports;+ added RichText and Chart preview in online designer;+ added ability to share access to the file; + added checking and resolving issues when the parent folder has been deleted;+ added more checks when exporting folders; * now corporate server runs in demo mode by default; the license key for demo mode is no longer required; * updated comments for all controllers, fixed returned status codes;* messages about errors 500 became more informative for users;* optimized GetStats method by building a pipeline before the loop;* changed limits of the maximum request body size;- fixed infinite folder creation;- fixed duplicate archive names when exporting;- fixed Online Designer working with compressed templates; - fixed test of critical changes in the QA pipeline;- fixed copying files over the limit;- tasks to export a template from the Recycle Bin now correctly return error 404;- fixed localization error when moving to the Recycle Bin; [Common]+ added exclusion of users and subscriptions to audits; + added tags to subscriptions;+ added articles to documentation for programmers;+ added documentation for FTP sending task;+ added article for report parameters;* added SDK for Kotlin (Android);* updated documentation for tasks in UI;- renamed view models in SDK to shorter names;& updated SDK generator version; & optimized memory consumption; [Frontend]+ added file counter when exporting a folder;+ added cache for charts in admin panel;+ added approximate display of files while uploading them;+ added validation when creating and editing an email task;+ added document type selection in selection dialogs; + added a button to change the user avatar and a button to upload a spare image in case the avatar is unavailable;+ added skeleton placeholders for data sources during upload;+ added animation for file upload;+ added a new page with the Recycle Bin for deleting files;+ added creation of report preparation task;+ added creation of report export task;+ added EmptyContent and Placeholder for folder selection dialog;+ added Placeholder and EmptyContent to file selection dialog;+ added FTP sending component to user panel;+ added webhook task for user panel;+ added space checker;+ added OnInitialized method;* added a redirect to owner from page and workspace board;* added sorting to file pages in the admin panel; * normalized MySQL connection string according to standards;* styled ExportTemplateEditor;* updated task page for admin panel;* changed names of new tasks;* moved common code to a separate component;* changed OutputFileCard;* added new name for webhook;- fixed empty task name after BadRequest error;- fixed incorrect file view when changing export output file;- fixed bug that caused the online designer to sometimes open files twice;- fixed bug that caused CSV connection to ignore parameter names;- fixed error messages when testing a data source before creating it;- fixed bug that breaks data sources page when updating;- fixed error 400 when moving folders;- fixed broken transport card on too long or too short text;- fixed content movement on the task page; - fixed transportation problems.
June 26, 2024

Fast Reports Wins ComponentSource Award

ComponentSource awarded Fast Reports a Top 50 Publisher in the 2024 annual ComponentSource Awards. Once again we are pleased to be included in the Top 50 Best Software Publishers according to ComponentSourse!


April 08, 2024

Using the CreatePage event in FastReport .NET

The new event CreatePage occurs when creating a new page in the FastReport .NET engine. At this stage, you can change the properties of the page. Other events like StartPage, FinishPage, and ManualBuild are triggered before the beginning/end of building the page template. For example, you can alternate between landscape and portrait page orientations. Alternatively, with the help of this event, you can create a separate data source that will contain information about ExportAlias or other page properties. During the event execution, you can set parameters, and at the beginning of the next page, iterate through the data source. The modified demo report using the CreatePage event to define ExportAlias is described in the following example. <?xml version="1.0" encoding="utf-8"?> <Report ScriptLanguage="CSharp" TextQuality="Regular" ReportInfo.Description="Demonstrates a group report. To create it:&#13;&#10;- go to "Report|Configure Bands..." menu;&#13;&#10;- press "Add" button and add a group header (this will add a data band and a group footer as well);&#13;&#10;- return to the report page, doubleclick the group header to show its editor." ReportInfo.Created="01/17/2008 04:31:41" ReportInfo.Modified="03/13/2024 17:32:59" ReportInfo.CreatorVersion=""> <ScriptText> using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; using System.Data; using FastReport; using FastReport.Data; using FastReport.Dialog; using FastReport.Barcode; using FastReport.Table; using FastReport.Utils;   namespace FastReport { public class ReportScript { private void Page1_CreatePage(object sender, EventArgs e) { if(Data1.DataSource.RowCount == 0) Data1.InitDataSource(); Page1.ExportAlias = Data1.DataSource["ProductName"].ToString().Substring(0,1); } } } </ScriptText> <Styles> <Style Name="EvenRows" Fill.Color="OldLace" Font="Arial, 10pt"/> </Styles> <Dictionary> <TableDataSource Name="Products" ReferenceName="NorthWind.Products" DataType="System.Int32" Enabled="true"> <Column Name="ProductID" DataType="System.Int32"/> <Column Name="ProductName" DataType="System.String"/> <Column Name="SupplierID" DataType="System.Int32"/> <Column Name="CategoryID" DataType="System.Int32"/> <Column Name="QuantityPerUnit" DataType="System.String"/> <Column Name="UnitPrice" DataType="System.Decimal"/> <Column Name="UnitsInStock" DataType="System.Int16"/> <Column Name="UnitsOnOrder" DataType="System.Int16"/> <Column Name="ReorderLevel" DataType="System.Int16"/> <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/> <Column Name="EAN13" DataType="System.String"/> </TableDataSource> <Total Name="TotalProducts" TotalType="Count" Evaluator="Data1" PrintOn="GroupFooter1"/> </Dictionary> <ReportPage Name="Page1" Watermark.Font="Arial, 60pt" CreatePageEvent="Page1_CreatePage"> <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="103.95" CanGrow="true"> <TextObject Name="Text1" Top="56.7" Width="718.2" Height="47.25" Text="ALPHABETICAL PRODUCT LIST" HorzAlign="Center" VertAlign="Center" Font="Tahoma, 14pt, style=Bold"/> <TextObject Name="Text11" Top="28.35" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" CanGrow="true" CanShrink="true" Text="[Report.ReportInfo.Description]&#13;&#10;" Padding="4, 4, 4, 4" Font="Tahoma, 8pt"/> <TextObject Name="Text18" Width="718.2" Height="28.35" Anchor="Top, Left, Right" Fill.Color="WhiteSmoke" Cursor="Hand" Hyperlink.Value="http://fast.report/cda2a" Hyperlink.OpenLinkInNewTab="true" Text="Learn how to build this report on the Fast Reports Academy channel" VertAlign="Center" Font="Tahoma, 10pt, style=Bold, Underline" TextFill.Color="Blue"/> </ReportTitleBand> <GroupHeaderBand Name="GroupHeader1" Top="107.15" Width="718.2" Height="37.8" StartNewPage="true" KeepWithData="true" Condition="[Products.ProductName].Substring(0,1)" SortOrder="None"> <TextObject Name="Text7" Left="9.45" Width="699.3" Height="37.8" Border.Lines="All" Border.Color="LightSkyBlue" Fill="LinearGradient" Fill.StartColor="LightSkyBlue" Fill.EndColor="AliceBlue" Fill.Angle="90" Fill.Focus="0.42" Fill.Contrast="1" Text="[[Products.ProductName].Substring(0,1)]" Padding="5, 0, 0, 0" VertAlign="Center" Font="Tahoma, 12pt, style=Bold"/> <DataBand Name="Data1" Top="148.15" Width="718.2" Height="18.9" DataSource="Products" KeepTogether="true"> <TextObject Name="Text2" Left="9.45" Width="604.8" Height="18.9" Border.Lines="Left" Border.Color="LightSkyBlue" Text="[Products.ProductName]" VertAlign="Center" Font="Tahoma, 8pt"> <Highlight> <Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/> </Highlight> </TextObject> <TextObject Name="Text4" Left="614.25" Width="94.5" Height="18.9" Border.Lines="Right" Border.Color="LightSkyBlue" Text="[Products.UnitPrice]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"> <Highlight> <Condition Expression="[Row#] % 2 == 0" Fill.Color="AliceBlue" TextFill.Color="Black" Font="Arial, 10pt" ApplyFill="true" ApplyTextFill="false"/> </Highlight> </TextObject> <Sort> <Sort Expression="[Products.ProductName]"/> </Sort> </DataBand> <GroupFooterBand Name="GroupFooter1" Top="170.25" Width="718.2" Height="47.25" KeepWithData="true"> <TextObject Name="Text8" Left="9.45" Width="699.3" Height="18.9" Border.Lines="Left, Right, Bottom" Border.Color="LightSkyBlue" Text="Total products: [TotalProducts]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt, style=Bold"/> </GroupFooterBand> </GroupHeaderBand> <PageFooterBand Name="PageFooter1" Top="220.7" Width="718.2" Height="28.35" Fill.Color="WhiteSmoke"> <TextObject Name="Text9" Left="614.25" Width="94.5" Height="28.35" Text="[PageN]" HorzAlign="Right" VertAlign="Center" Font="Tahoma, 8pt"/> <TextObject Name="Text12" Left="9.45" Width="217.35" Height="28.35" Cursor="Hand" Hyperlink.Value="https://www.fast-report.com/en/product/fast-report-net/" Text="Generated by FastReport .NET" VertAlign="Center" Font="Tahoma, 8pt, style=Underline" TextFill.Color="Blue"/> </PageFooterBand> </ReportPage> </Report> The result of exporting the report from the example to Excel 2007: Note 1. Engine.CurPage increases after calling a new event, and since CurPage is the index of the page, its value will be 0 when creating the first two pages. Therefore, we recommend using a separate page counter in the report script when using the new event. Note 2. When changing the Visible property to false, the further building of the page stops. Thanks to the new property, you can move to a new data record line and modify the page properties as new pages are added.
March 26, 2024

How to work with FastReport Avalonia on .NET 8 in Visual Studio for Mac

Avalonia UI is a .NET-based framework widely used for cross-platform user interface development. With a universal API for building applications, Avalonia supports all major platforms and runtime environments and has its unique interface. This ensures that your business solutions will look identical on each operating system. FastReport Avalonia includes a powerful data processing core, a familiar report designer, and a viewer for ready-made reports. Additionally, the new product supports all export formats for the generated report, such as PDF, Excel, MS Word, and many others. The library is fully backward compatible with FastReport WPF, FastReport .NET, and FastReport Mono. It supports Avalonia UI, .NET 7, and .NET 8. In this article, we will explain in detail how to run FastReport Avalonia on the MacOS operating system using the Visual Studio IDE.   Preparatory stage First of all, we need to install Visual Studio for Mac. A specific version of Visual Studio is required for further work with Avalonia templates, namely 17.6.10. You can download it by following this link. It enables you to include .NET 8 support, which we will discuss a little later. The next step will be installing .NET 8 itself. For this, you can go to the official Microsoft website and download the installer for MacOS. After installing SDK 8.0, we need to configure Visual Studio. To work with .NET 8, we need to enable its usage in Visual Studio. To do this, right-click on Visual Studio and select "Preferences". In the opened window, scroll down to the bottom until you reach the "Preview Features" section and check the box next to the "Use the .NET 8 SDK..." option. Click "OK" and restart Visual Studio. After going through the above steps, we need to install Avalonia templates for further work. Once installed, we can choose ready-made templates in Visual Studio to streamline the development process. To do this, open the console and enter the following command: dotnet new install Avalonia.Templates Now we can start creating a project in Visual Studio.   Creating the Application Launch Visual Studio and create a new project. When selecting a template, scroll down to the "Other" group and choose "Custom." In the window, select the "Avalonia .NET app" template. These are the templates we installed using the console command. Click on Continue. Next, we need to configure the template. Choose the .NET and Avalonia versions. We recommend selecting Avalonia version 11.1.0-beta or higher, as many visual bugs have been fixed in this version. For our example, let's stick with .NET 8. Click on "Continue." Now, we have an Avalonia template project in Visual Studio. Next, we need to connect a private NuGet server where we can obtain Avalonia NuGet packages. To do this, right-click on our project and select "Manage NuGet Packages...". In the window that appears, at the very end, there is "Package source: All sources". Expand the list and click on "Configure Sources...". In the window that appears, click on "Add". A window for entering data will appear.- Name: source name without spaces (e.g., FastReport-Nuget);- Location: https://nuget.fast-report.com/api/v3/index.json;- Username: email from your Fast Reports account;- Password: password from your Fast Reports account. Once we have entered all the necessary data, we can close the window. Now, we have a private NuGet server that we can use. The next step is to add the required packages for the project, namely: FastReport.Avalonia and FastReport.Forms.Avalonia. To do this, in the NuGet Package window, select our private NuGet server as the package source. For convenience, we will type "Avalonia" in the search box to display packages with the corresponding name. Select the desired packages and install them. Now that we have configured the project, we can proceed with writing the code. Next, let's consider a simple example to demonstrate the functionality of the FastReport Avalonia packages. First, open the MainWindow.axaml.cs file and fill it in as follows: using Avalonia.Controls; using Avalonia.Interactivity; using FastReport; namespace FRAvalonia; public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } public void ButtonClicked(object source, RoutedEventArgs args) { Report report = new Report(); report.Load("Barcode.frx"); report.Design(); } } So far, we have simply added a method to handle the button and specified which report will be opened in the designer. Next, go to MainWindow.axaml and fill it in as follows: <Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="FRAvalonia.MainWindow" Title="FRAvalonia"> <Button Click="ButtonClicked" >Start Designer!</Button> </Window> Next, we add the button itself, which already has a handler assigned to it. Now, we can run the project. Upon running the project, a window with a button will appear. Click on the button and observe the magic as the FastReport Designer on Avalonia launches. Additionally, we can enable the preview mode and take a look at the report in the Preview. In this way, we managed to run FastReport Avalonia on MacOS using Visual Studio. As you can see, there is nothing complex about the setup and launch process. Just install the SDK packages, configure the private NuGet packages, and you can start using FastReport Avalonia. If you have any questions, please feel free to contact our technical support at support@fast-report.com. Enjoy using it!

Popular questions

What is a report generator?

Why do we need report generators and OLAP analytics tools?

What does Fast Reports Inc. do?

We are trusted

Fast Reports
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.