Types of solutions

FastReport .NET

Sets of components that simplify and automate the process of creating reports and documents in C# for diverse technologies.

FastReport VCL

Sets of VCL, FMX, and Lazarus components with full sources codes for creating reports and documents in Delphi and Pascal.

WEB reporting

Components for cross-platform projects to develop, build, display, print, and export reports directly in the browser.

Solutions for end-users

Independent software solutions for designing, building, converting, and viewing ready-made reports on your computer.

OLAP and Business Graphics

Data presentation and analytical processing tools for obtaining pivot tables with subsequent visualization based on Business Graphics.

Service solutions

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

News

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.
Read
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!
Read

Articles

April 09, 2024

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

We continue the series of articles about working with FastReport Avalonia in Visual Studio Code on various operating systems. In this article, we will analyze in detail how to run FastReport Avalonia on a Linux operating system using the Visual Studio Code IDE. Avalonia UI is a .NET framework that is actively used for developing cross-platform user interfaces. With its universal API for application building, Avalonia supports all major platforms and runtime environments and has its unique interface. This ensures that your business solutions will look identical on every operating system. FastReport Avalonia includes a powerful data processing engine, a familiar report designer, and a viewer for generated reports. Additionally, the new product supports all export formats of the built reports, 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.   Preparatory stage First, we need to install Visual Studio Code from the official website. Download the latest version of Visual Studio Code. The next step is to install .NET 8 itself. To do this, you can go to the official Microsoft website and download the installer for Linux. We need to install Avalonia templates for further work. To do this, we need to open the console and enter the following command: dotnet new install Avalonia.Templates Next, open Visual Studio Code and configure it. Go to the Extensions tab. We need to install the following extensions: .NET Install Tool, Avalonia for Visual Studio Code, and C#. After installing the necessary extensions, we need to connect a private NuGet server to install the required FastReport packages. You can learn how to use a private NuGet server by following this link. Once we have completed these steps, we can start creating the project.   Creating a project To create an Avalonia project, open Visual Studio Code. Since we have installed the necessary templates and extensions, we should have a “Create Avalonia Project” button. Click on it. Then, select “Avalonia App” and specify the project name. Let’s name it “FastReportAvalonia.” Choose the directory where the project will be stored. After creating the project, you may encounter an error when installing .NET 8 in the project. You can fix it by following these steps:1) In the error window, click on “Configure Manager”;2) Explicitly specify the path to .NET 8. For example: /usr/share/dotnet/dotnet. In different distributions, the storage path of .NET 8 may vary, so please take this into account in your project. After that, we need to connect FastReport packages. To do this, open the .csproj file and add the following lines: <PackageReference Include=”FastReport.Avalonia” Version=”2024.1.9” /> <PackageReference Include=”FastReport.Forms.Avalonia” Version=”2024.1.9” /> Our file should look something like this: Next, go to the MainWindow.axaml file and add a button. <Button Click =”ButtonClicked”> Start </Button> The code in the file should look something like this: The next step is to write the logic for the button. To do this, open the MainWindow.axaml.cs file and create an event. using FastReport; ….. public void ButtonClicked(object source, RoutedEventArgs args) { Report report = new Report(); report.Load(“Отчет.frx”); report.Design(); } Now we can run our application. For debugging, we need to use .NET 5+. After launching, a window with a “Start” button will appear. Click on it, and the designer will launch. We can also enable preview and view the report in Preview mode. Thus, we were able to run FastReport Avalonia on Linux using Visual Studio Code. As you can see, there is nothing complicated in the setup and launch process. It is enough to install the SDK packages, and configure private NuGet packages, and then you can use FastReport Avalonia. If you have any questions, please contact our technical support at support@fast-report.com. Enjoy using FastReport Avalonia!
Read
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="1.0.0.0"> <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.
Read

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.
Trustpilot